Git Product home page Git Product logo

pgvecto.rs's Introduction

pgvecto.rs

discord invitation link trackgit-views all-contributors

pgvecto.rs is a Postgres extension that provides vector similarity search functions. It is written in Rust and based on pgrx. It is currently in the beta status, we invite you to try it out in production and provide us with feedback. Read more at ๐Ÿ“our launch blog.

Why use pgvecto.rs

  • ๐Ÿ’ƒ Easy to use: pgvecto.rs is a Postgres extension, which means that you can use it directly within your existing database. This makes it easy to integrate into your existing workflows and applications.
  • ๐Ÿ”— Async indexing: pgvecto.rs's index is asynchronously constructed by the background threads and does not block insertions and always ready for new queries.
  • ๐Ÿฅ… Filtering: pgvecto.rs supports filtering. You can set conditions when searching or retrieving points. This is the missing feature of other postgres extensions.
  • ๐Ÿงฎ Quantization: pgvecto.rs supports scalar quantization and product qutization up to 64x.
  • ๐Ÿฆ€ Rewrite in Rust: Rust's strict compile-time checks ensure memory safety, reducing the risk of bugs and security issues commonly associated with C extensions.

Comparison with pgvector

pgvecto.rs pgvector
Transaction support โœ… โš ๏ธ
Sufficient Result with Delete/Update/Filter โœ… โš ๏ธ
Vector Dimension Limit 65535 2000
Prefilter on HNSW โœ… โŒ
Parallel HNSW Index build โšก๏ธ Linearly faster with more cores ๐ŸŒ Only single core used
Async Index build Ready for queries anytime and do not block insertions. โŒ
Quantization Scalar/Product Quantization โŒ

More details at ./docs/comparison-pgvector.md

Documentation

For users, we recommend you to try pgvecto.rs using our pre-built docker image, by running

docker run --name pgvecto-rs-demo -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d tensorchord/pgvecto-rs:pg16-latest

Development with envd

For developers, you could use envd to set up the development environment with one command. It will create a docker container and install all the dependencies for you.

pip install envd
envd up

Contributing

We need your help! Please check out the issues.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

Alex Chi
Alex Chi

๐Ÿ’ป
AuruTus
AuruTus

๐Ÿ’ป
Avery
Avery

๐Ÿ’ป ๐Ÿค”
Ben Ye
Ben Ye

๐Ÿ“–
Ce Gao
Ce Gao

๐Ÿ’ผ ๐Ÿ–‹ ๐Ÿ“–
Jinjing Zhou
Jinjing Zhou

๐ŸŽจ ๐Ÿค” ๐Ÿ“†
Keming
Keming

๐Ÿ› ๐Ÿ’ป ๐Ÿ“– ๐Ÿค” ๐Ÿš‡
Mingzhuo Yin
Mingzhuo Yin

๐Ÿ’ป โš ๏ธ ๐Ÿš‡
Usamoi
Usamoi

๐Ÿ’ป ๐Ÿค”
odysa
odysa

๐Ÿ“– ๐Ÿ’ป
yihong
yihong

๐Ÿ’ป
็›็ฒ’ Yanli
็›็ฒ’ Yanli

๐Ÿ’ป
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

Acknowledgements

Thanks to the following projects:

  • pgrx - Postgres extension framework in Rust
  • pgvector - Postgres extension for vector similarity search written in C

pgvecto.rs's People

Contributors

usamoi avatar vovallen avatar kemingy avatar allcontributors[bot] avatar silver-ymz avatar beautyyuyanli avatar gaocegege avatar bo0tzz avatar averyqi115 avatar odysa avatar skyzh avatar yeya24 avatar yihong0618 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.