Introduction
Recently, Iโve been heads-down developing FerresDB Core, a high-performance vector search engine designed specifically for semantic search and RAG (Retrieval-Augmented Generation) applications. The goal was to build a tool that balances raw speed with the reliability and visibility that developers need in production.
Why Rust?
Choosing Rust was essential for this project. It provides:
- Sub-millisecond performance even with large vector collections.
- Thread-safety and memory management without a garbage collector, which is critical for a multi-threaded database server.
- A robust ecosystem to implement complex algorithms like HNSW.
Core Features & Architecture
The project is structured as a modular ecosystem, including the core engine, a REST/gRPC server, and a management dashboard:
- Vector Engine (HNSW): Supports sub-millisecond searches using the HNSW algorithm with Cosine, Euclidean, and Dot Product metrics.
- Persistence & Durability: To ensure data integrity, I implemented a Write-Ahead Log (WAL) and a periodic snapshot system. If the system crashes, it can recover automatically to a consistent state.
- Hybrid Search: FerresDB isn't limited to vectors; it supports hybrid search with BM25 to improve accuracy in RAG pipelines.
- Observability: Built-in support for OpenTelemetry (OTLP) allows for distributed tracing, giving you a hierarchical view of every search request.
The Developer Experience (DX)
I believe that infrastructure shouldn't be a "black box." Thatโs why FerresDB includes:
- Integrated Dashboard: A modern UI built with React and Tailwind CSS to manage collections, API keys, and test queries visually.
- Modern Connectivity: Full support for REST APIs, low-latency gRPC, and WebSockets for real-time log streaming.
-
Docker Ready: You can spin up the entire stack with a single
docker-compose up.
Current Status
I am evolving the project step-by-step. While I plan to make it fully Open Source very soon, it is already in a stage where it can be used for development and testing.
Check it out!
I'd love to get feedback from the community on the performance and the interface. If you're building RAG applications or interested in database internals, let's connect!
๐ FerresDB



Top comments (0)