This is the multi-page printable view of this section. .
Community
- 1: Contributing to `pgvecto.rs`
- 2: Roadmap
- 3: Adopters
1 - Contributing to `pgvecto.rs`
We welcome all kinds of contributions from the open-source community, individuals, and partners. If you’re interested in contributing, hopefully, this document makes the process for contributing clear.
Contributors and people new to open source alike will find the following guides especially useful:
Code of conduct
A code of conduct is a document that establishes expectations for behavior for the project’s participants. Adopting, and enforcing, a code of conduct can help create a positive social atmosphere for the community.
If you do not know what code of conduct is, please have a look at Your Code of Conduct | Open Source Guides.
Get involved
Our community is always looking for enthusiasts to help in all different ways.
âŊ Simply start using pgvecto.rs
Go through the Getting Started guide. Does everything work as expected? If not, we’re always looking for improvements. Chat with us on đŦ Discord or file an issue on GitHub.
đ Triaging Issues and Pull Requests
One great way you can contribute to the project without writing any code is to help triage issues and pull requests as they come in.
- Ask for more information if you believe the issue does not provide all the details required to solve it.
- Suggest labels that can help categorize issues.
- Flag issues that are stale or that should be closed.
- Ask for test plans and review code.
đ¨âđģ Contribute to pgvecto.rs
If you find an issue you would like to fix, open a pull request. Please read development tutorials to get started.
đ Improve documentation
Everyone loves documentation. If you find anything that is confusing or can be improved, you can click “Edit this page” at the bottom of most docs, which takes you to the GitHub interface to make and propose changes.
đŦ Discuss pgvecto.rs on Discord
Chat with us on đŦ Discord.
2 - Roadmap
We strongly suggest you explore our new VectorChord implementation, offering enhanced stability and performance. Users are advised to transition to VectorChord. Refer to the migration guide for assistance.
Midterm Plan
Sparse Vector Support
Sparse vectors have shown excellent performance in tasks such as RAG and text retrieval, and can improve the results of dense vectors. Therefore, we plan to support sparse vector indexing.
Better support for streaming workloads
As a database, it is important to support flexible insertion and deletion of vector data. However, the current mainstream algorithm HNSW does not have good support for deletion because it requires rebuilding the index. Therefore, we plan to follow the DiskANN article and support the Vamana algorithm. The Vamana algorithm is an incremental indexing algorithm based on Graph that can support deletion and insertion of vectors without rebuilding the index.
More vectors on a single machine
Supporting more vectors under the same resources is very important for users to save costs. Currently, we have supported users to store vectors in fp16 format, which requires only half of the memory and space with little loss of accuracy. We also plan to support more vector formats, such as fp8 and int8, to further reduce storage and memory consumption. At the same time, we are also exploring SSD-based vector indexing algorithms such as DiskANN.
Physical and Streaming Replication
pgvecto.rs is currently an independent storage system separate from PostgreSQL, managing index memory and storage on its own. Therefore it doesn’t support physical replication out of the box. We plan to implement a custom WAL resource manager to meet the requirements of physical replication and make it easier for users to use replication in PG.
Longterm plan
1B vectors inside PostgreSQL
Our ultimate goal is to support 1 billion vectors in PostgreSQL. However, there are many challenges that need to be overcome to reach this goal. It may be necessary to implement a custom vector storage solution using the table access method, or to use a distributed shard such as Citus. We have not yet explored this area extensively, so interested developers are encouraged to discuss it with us.
Talk with us
Want to jump in? Welcome discussions and contributions!
- Chat with us on đŦ Discord
- Have a look at
good first issue đissues! - More on contributing page
These items are not essential for an MVP, but are a part of our longer term plans. Feel free to jump in on these if you’re interested!
To be added in the future.
3 - Adopters
- immich is a self-hosted photo and video backup solution directly from your mobile phone. it is using pgvecto.rs to search.
- postgresql_embedded is a set of utilities for installing, running and managing PostgreSQL and extensions in Rust with support for installing pgvecto.rs.
Add your app here
If you are using pgvecto.rs in your app, please edit this page. We are glad to get your feedback and help you to improve your experience with pgvecto.rs.