feat(clients): add nim-allographer client with BaraDB driver support
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled

- Pure Nim wire protocol client (async + sync, no C FFI)
- Query Builder: fluent API, SQL generator, execution, transactions
- Schema Builder: create/alter/drop tables, column operations
- Connection pool with aging and timeout handling
- ORM integration via compile-time DB_BARADB switch
- Tests: test_open, test_query
- Documentation: README.md, PLAN_BARADB.md
This commit is contained in:
2026-05-21 15:49:11 +03:00
parent 2d310a33a1
commit 6bfc5b3a3c
654 changed files with 109419 additions and 0 deletions
@@ -0,0 +1,3 @@
FROM adminer:4.8.1-standalone
USER root
COPY login-password-less.php /var/www/html/plugins-enabled/login-password-less.php
@@ -0,0 +1,9 @@
<?php
require_once('plugins/login-password-less.php');
/** Set allowed password
* @param string result of password_hash
*/
return new AdminerLoginPasswordLess(
$password_hash = password_hash("pass", PASSWORD_DEFAULT)
);
@@ -0,0 +1,28 @@
FROM nimlang/nim:1.6.2-alpine-regular
RUN echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories
RUN apk update && \
apk upgrade --no-cache && \
apk add --no-cache \
curl \
gcc \
musl-dev \
bsd-compat-headers \
openssh-client \
git \
lcov \
sqlite \
libpq \
mariadb-dev \
openssl \
pcre \
&& \
rm /usr/lib/mysqld* -fr && \
rm /usr/bin/mysql* -fr
ENV PATH $PATH:/root/.nimble/bin
WORKDIR /root/project
COPY ./allographer.nimble .
RUN nimble install -y
RUN nimble install -y \
bcrypt \
progress
@@ -0,0 +1,48 @@
FROM ubuntu:24.04
# prevent timezone dialogue
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update
RUN apt upgrade -y
RUN apt install -y \
# for build Nim and make
build-essential \
# for unzip tar.xz
xz-utils \
# for https
ca-certificates \
# for nim regex
libpcre3-dev \
vim \
curl \
git \
sqlite3 \
libpq-dev \
libmariadb-dev
WORKDIR /root
# Nim
ARG NIM_VERSION="2.0.0"
RUN curl https://nim-lang.org/choosenim/init.sh -o init.sh
RUN sh init.sh -y
RUN rm -f init.sh
ENV PATH $PATH:/root/.nimble/bin
RUN choosenim ${NIM_VERSION}
# nimlangserver
# https://github.com/nim-lang/langserver/releases/latest
WORKDIR /root
RUN curl -o nimlangserver.tar.gz -L https://github.com/nim-lang/langserver/releases/latest/download/nimlangserver-linux-amd64.tar.gz
RUN tar zxf nimlangserver.tar.gz
RUN rm -f nimlangserver.tar.gz
RUN mv nimlangserver /root/.nimble/bin/
WORKDIR /application
COPY ./allographer.nimble .
RUN nimble install -y -d
RUN git config --global --add safe.directory /application
WORKDIR /application
@@ -0,0 +1,40 @@
FROM ubuntu:24.04
# prevent timezone dialogue
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update
RUN apt upgrade -y
RUN apt install -y \
gcc \
xz-utils \
ca-certificates \
libpcre3-dev \
curl \
git \
sqlite3 \
libpq-dev \
libmariadb-dev
# gcc... for Nim
# xz-utils... for unzip tar.xz
# ca-certificates... for https
# libpcre3-dev... for nim regex
WORKDIR /root
# Nim
ARG NIM_VERSION="2.0.0"
RUN curl https://nim-lang.org/choosenim/init.sh -o init.sh
RUN sh init.sh -y
RUN rm -f init.sh
ENV PATH $PATH:/root/.nimble/bin
RUN choosenim ${NIM_VERSION}
WORKDIR /root/project
COPY ./allographer.nimble .
RUN nimble install -y -d
RUN git config --global --add safe.directory /root/project
WORKDIR /root/project