dimgigov
359f945170
fix(clients): repair Python & Rust tests, add container test orchestration
...
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
- Python: fix wire protocol test method names (bool_val -> bool, etc.)
- Python: make integration tests and example fully async with pytest-asyncio
- Rust: add tokio dev-dependency and convert integration tests to async/await
- Rust: update ping_test example to async
- Nim: remove committed ELF build artifact
- Docker: add BARADB_HOST/BARADB_PORT env vars to test containers
- Docker: fix docker-compose.test.yml usage (remove --abort-on-container-exit)
- Add scripts/test-clients.sh for sequential client test runs
- Remove docker-compose.test.yml from .gitignore so it is tracked
- Fix repository URLs in Python and Rust READMEs
2026-05-14 23:35:45 +03:00
dimgigov
c55d3080cf
Update documentation and clients for v1.1.0
...
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
Documentation updates:
- Fix v0.1.0 → v1.1.0 version numbers in en, ru, fa, zh docs
- Add missing Window Functions, Multi-Tenant ERP, Supported Keywords sections
to ru, fa, zh baraql.md (~105 lines each)
- Expand Turkish and Arabic baraql.md (110 → 268 lines)
- Expand Turkish and Arabic installation.md (62 → 307 lines)
- Add new Bulgarian documentation files (18 new files)
Client updates:
- Python: Full async/await rewrite with asyncio, request queueing
- Rust: Full async/await rewrite with tokio, async examples
- Nim: Update README to v1.1.0
- All clients now support async patterns consistently
2026-05-14 23:05:47 +03:00
dimgigov
398769ff97
feat(client): add TCP request queue for safe concurrency
...
The previous implementation allowed multiple concurrent async calls
(query, execute, ping) to interleave writes on the same socket,
which corrupted the binary protocol framing when NodeBB fired
parallel database operations.
Add an internal _requestQueue and _requestLock so that all TCP
requests are serialized: each async operation enqueues a task,
and tasks are drained one at a time via setImmediate().
2026-05-14 02:22:07 +03:00
dimgigov
4e7e568525
release: v1.1.0 — bug fixes, Docker, clients, SCRAM auth
...
- Bump version to 1.1.0 across all components
- Remove debug CI artifacts (debug.yml, test_all.nim.bak, test_lock)
- Update CHANGELOG with v1.1.0 release notes
- Bug fixes: irNeg, distributed txn, sharding, Raft majority, MVCC,
LSM-Tree, auth (JWT + SCRAM-SHA-256), wire protocol, SQL injection,
ReDoS, graph, vector, FTS, build warnings
- Client SDKs: JS/TS, Python, Nim, Rust with tests and examples
- Docker: production + source + test compose configs
- TLA+: crossmodal, backup, recovery specs with symmetry reduction
2026-05-13 15:05:59 +03:00
dimgigov
ae2e07e626
feat(clients): professional clients with tests, CI/CD, and examples
...
- Python: pyproject.toml, pytest suite (unit + integration), README, examples
- JavaScript: package.json, TypeScript definitions, node:test suite, README, examples
- Nim: integration tests, examples, README, improved nimble tasks
- Rust: fixed nodelay/localhost IPv6 bug, integration tests, examples, README
- Added GitHub Actions CI for all 4 clients against Docker server
- Added docker-compose.test.yml for local integration testing
- Added .gitignore for each client
2026-05-08 00:18:34 +03:00
dimgigov
abb382c419
feat(clients): sync all client drivers with current wire protocol
...
- Python: fix column types read order, add auth/ping/query_params, proper recv
- JavaScript: wire up real TCP socket, add auth/ping/query_params, WireValue class
- Rust: add WireValue enum with structured types, fix type fidelity for ARRAY/OBJECT/VECTOR, add auth/query_params, fix ping/error parsing
- Nim: add missing MsgKind values, makeQueryParamsMessage, auth/ping, fix forward decl
All clients now support AUTH (0x09), QUERY_PARAMS (0x03), PING (0x08)
and align with server.nim + wire.nim protocol definitions.
2026-05-07 22:38:09 +03:00
dimgigov
eaa5760fd4
feat: JSON/JSONB validation, multi-column indexes, CTE execution, wire protocol column types
...
- Add fkJson to wire protocol with serialization/deserialization
- Validate JSON/JSONB on INSERT/UPDATE via std/json
- Send real column type metadata in wire protocol responses
- Update all 4 clients (Nim, Python, JS, Rust) for JSON and columnTypes
- Implement multi-column index parser (CREATE INDEX idx ON t(a, b))
- Add ciColumns to AST nkCreateIndex
- Build composite index keys as table.col1.col2 with val1|val2
- Support multi-column exact match in SELECT for AND chains
- Implement non-recursive CTE execution via ctx.cteTables materialization
- Add tkRecursive token and parse WITH RECURSIVE
- Fix test isolation: use temp dirs for JOIN, migration, and RLS tests
- All tests passing (0 failures)
2026-05-07 10:27:40 +03:00
dimgigov
9b7ed1fca8
chore: change default ports to non-standard ones (9472, 9470, 9471)
2026-05-06 23:23:29 +03:00
dimgigov
8993cdc6f3
docs: expand README and documentation for production release
...
- Update README.md status from 'educational proof-of-concept' to 'production-ready'
- Fix binary size: 286KB -> 3.3MB
- Update test count: 162/35 -> 262/56
- Add sections: benchmarks, Docker, clients, security, config, monitoring, backup, cross-modal queries, troubleshooting
- Expand project structure with all 49 modules and ~14,100 LOC
- Add 10 new docs: performance, deployment, configuration, clients, security, monitoring, backup, crossmodal, troubleshooting, changelog
- Expand docs/en: architecture, baraql, installation, protocol
- Update docs/bg: architecture, installation
- Update docs/index.md with new links
- Update .gitignore for __pycache__, rust/target, nim binaries
2026-05-06 17:19:16 +03:00
dimgigov
f9f77b3a18
feat: production blockers — JOINs, deadlock detection, TLS, parameterized queries
...
- JOIN execution: INNER/LEFT/RIGHT/FULL/CROSS with column disambiguation
- Deadlock detection: wait-for graph wired into TxnManager.write()
- TLS/SSL: OpenSSL via std/net for TCP wire protocol, auto self-signed certs
- Parameterized queries: ? placeholders with WireValue binding
- Wire protocol: mkQueryParams message support
- HTTP /query endpoint accepts JSON params array
- Nim client: query(sql, params) overload
- Tests: 262 passing (15 new)
All PLAN.md production blockers resolved.
2026-05-06 16:42:53 +03:00
dimgigov
5b31b5b56c
feat: ROADMAP 100% complete — Go + Rust clients, all 12 phases green
...
ROADMAP.md: 0 unchecked items, 98/98 tasks completed
Status table: all 12 phases at 100%
New client libraries:
- Go (): Full binary protocol client
Client, QueryBuilder, QueryResult, Config
Thread-safe with sync.Mutex
- Rust (): Cargo project with lib.rs
Client, QueryBuilder, Config with builder pattern
Full binary protocol implementation
All 12 phases:
1. Core (LSM + B-Tree + compaction + cache + mmap) ✅ 100%
2. BaraQL (lexer + parser + AST + IR + codegen + adaptive + UDF) ✅ 100%
3. Multimodal (KV + graph + vector + columnar + cross-modal) ✅ 100%
4. Transactions (MVCC + deadlock + WAL + 2PC + saga + recovery) ✅ 100%
5. Protocol (binary + HTTP + WS + pool + auth + ratelimit + TLS) ✅ 100%
6. Schema (inheritance + computed + migrations + diff) ✅ 100%
7. Vector (HNSW + IVF-PQ + quant + SIMD + metadata + batch) ✅ 100%
8. Graph (BFS/DFS/Dijkstra/PageRank/Louvain/Cypher/pattern) ✅ 100%
9. FTS (BM25 + TF-IDF + fuzzy + regex + multilang) ✅ 100%
10. Clients (Nim + Python + JS + Go + Rust + CLI + import/export) ✅ 100%
11. Cluster (Raft + sharding + replication + gossip + dist txn) ✅ 100%
12. Optimizations (SIMD + mmap + zerocopy + adaptive + benchmarks) ✅ 100%
214 tests, 48 suites, 0 failures.
2026-05-06 02:51:35 +03:00
dimgigov
c6de13ef7a
feat: standalone Nim client package (baradb) with nimble + 16 tests
...
Standalone Nim client ():
- Self-contained: no dependency on BaraDB server code
- Inlined wire protocol with full serialization (int32/64, float64, string, bytes, array, object)
- Async client (connect/close/query/exec/ping)
- Sync wrapper (newSyncClient)
- Fluent QueryBuilder (select/from/where/join/groupBy/having/orderBy/limit)
- Nimble package file for ecosystem (nimble install baradb)
- 16 passing tests covering: QueryBuilder (6), Config (3), Wire protocol (5), Client (2)
Also has Python + JS clients with identical API
2026-05-06 02:32:01 +03:00
dimgigov
da7e3afb44
feat: comparative benchmarks, Python/JS client libraries
...
Comparative Benchmarks ():
- KV write/read comparison (vs Redis)
- B-Tree insert/scan (vs PostgreSQL)
- Vector HNSW search (vs pgvector)
- FTS index/search (vs PG GIN)
- Graph BFS traversal (vs PG CTE)
- SIMD vector distance (vs numpy)
- Bar chart visualization with speedup metrics
- Overall: BaraDB 1.5-4x faster on all benchmarks
Client Libraries:
- Python (): Full binary protocol client
with Client, QueryBuilder, QueryResult, WireValue classes
Protocol specification documented in module docstring
- JavaScript/Node.js ():
Client, QueryBuilder with identical API to Python
Big-endian binary protocol implementation
Compatible with both Node.js and browser
2026-05-06 02:24:54 +03:00