Our great sponsors
-
hnsw-rust
HNSW implementation in Rust. Reference: https://arxiv.org/ftp/arxiv/papers/1603/1603.09320.pdf
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
qdrant
Qdrant - High-performance, massive-scale Vector Database for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Happy to see people working on vector search in Rust. Keep it up!
As far as HNSW implementations go, this one appears to be almost entirely unfinished. Node insertion logic is missing (https://github.com/swapneel/hnsw-rust/blob/b8ef946bd76112250...) and so is the base layer beam search.
OP, have you perhaps pushed an outdated branch?
How does this compare to hsnwlib - is it faster? https://github.com/nmslib/hnswlib
Also compare with qdrant's Rust implementation; they tout their performance. https://github.com/qdrant/qdrant/tree/master/lib/segment/src...
I put together a slow (but readable!) HNSW implementation in python to really understand how it works: https://github.com/jbarrow/tinyhnsw
Indexing time isn't great, but query time is surprisingly good for it being written in unoptimized python and numpy.
Related posts
- Building a Vector Database with Rust to Make Use of Vector Embeddings
- Boost Your Code's Efficiency: Introducing Semantic Cache with Qdrant
- Qdrant 1.8.0 - Major Performance Enhancements
- Perform Image-Driven Reverse Image Search on E-Commerce Sites with ImageBind and Qdrant
- Step-by-Step Guide to Building LLM Applications with Ruby (Using Langchain and Qdrant)