feat: initial BaraDB — multimodal database engine in Nim

- LSM-Tree storage engine with WAL, bloom filter, MemTable
- BaraQL query language: lexer (80+ tokens), recursive descent parser, AST
- Vector engine: HNSW + IVF-PQ indexes, 4 distance metrics
- Graph engine: adjacency list, BFS/DFS, Dijkstra, PageRank
- Full-Text Search: inverted index, BM25 ranking, stemming, stop words
- Type system: 17 types (int/float/string/uuid/json/vector/...)
- Async TCP server
- 21 passing tests
This commit is contained in:
2026-05-06 00:22:12 +03:00
commit 6935889877
18 changed files with 2676 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
type
BaraConfig* = object
address*: string
port*: int
dataDir*: string
maxConnections*: int
walEnabled*: bool
compactionStrategy*: CompactionStrategy
CompactionStrategy* = enum
csSizeTiered = "size_tiered"
csLeveled = "leveled"
proc defaultConfig*(): BaraConfig =
BaraConfig(
address: "127.0.0.1",
port: 5432,
dataDir: "./data",
maxConnections: 1000,
walEnabled: true,
compactionStrategy: csLeveled,
)
proc loadConfig*(): BaraConfig =
result = defaultConfig()