Hi everyone!
On behalf of ZemResearch, I am excited to announce the v0.2.0 release of FiktarDB.jl — a lightweight, 100% pure Julia in-memory vector database designed specifically to serve as a high-performance long-term memory module for local LLMs, AI agents, and Edge RAG systems.
GitHub Repository: https://github.com/ZemResearch/FiktarDB.jl
Why FiktarDB.jl?
We love Julia’s ecosystem, but many production-grade vector engines rely heavily on heavy C++ binaries or Python wrappers (via PyCall). FiktarDB was built from the ground up to leverage Julia’s native performance without any external package dependencies. It runs smoothly anywhere Julia is supported—including resource-constrained environments like Android/Termux.
Key Features in v0.2.0:
100% Native & Type-Stable: Zero external package dependencies. Built entirely using standard libraries (LinearAlgebra, etc.) with strictFloat32array constraints for optimal memory footprint.
Metadata Pre-Filtering: Pair vector queries with strict scalar conditions via Dict{String, Any}payloads. The search engine isolates relevant scopes before executing similarity math, drastically saving CPU cycles.
Optimized Bulk Ingestion: Leverages native array sizehint!memory pre-allocation to bypass garbage collection overhead during massive document injections (bulk_add_items!).
Stream-based Persistence: Fast, collision-resistant string/binary serialization for safe local disk storage (save_db/load_db) featuring automatic type re-hydration.
Quick Start Code Snippet
using FiktarDB
# 1. Initialize DB
db = DB()
# 2. Bulk ingest items with metadata payloads
bulk_add_items!(db, [
VectorItem("doc_1", "Julia is a fast programming language.", [0.9f0, 0.1f0, 0.1f0], Dict{String, Any}("lang" => "julia")),
VectorItem("doc_2", "Python is popular for ML.", [0.8f0, 0.3f0, 0.1f0], Dict{String, Any}("lang" => "python"))
])
# 3. Perform a conditionally filtered semantic search
query_embedding = [0.85f0, 0.15f0, 0.1f0]
my_filter = Dict{String, Any}("lang" => "julia")
results = search(db, query_embedding; top_k=1, filter_dict=my_filter)
println("Top Match: ", results[1].item.text)
Roadmap (Towards v0.3.0)
We have highly ambitious plans to bridge the gap between lightweight utility and production-grade scale. For the upcoming v0.3.0 release, we are actively designing:
- HNSW Graph Indexing (ANN) to replace flat scans, achieving O(\log N) search latency.
- Disk-Backed Storage (
Mmap) to handle gigabyte-scale datasets without consuming substantial RAM. - Write-Ahead Logging (WAL) for atomic real-time checkpoints and crash resilience.
- Product Quantization (PQ) for advanced vector space compression.
We would love to hear your feedback, architectural suggestions, or code contributions! Feel free to check out our repo, leave a
if you like the direction, or open an issue/PR to help us grow the Julia AI ecosystem together.
Happy coding!