High-performance embedded graph database with vector search
Project description
RayDB for Python
RayDB is a high-performance embedded graph database with built-in vector search. This package provides the Python bindings to the Rust core.
Features
- ACID transactions with commit/rollback
- Node and edge CRUD operations with properties
- Labels, edge types, and property keys
- Fluent traversal and pathfinding (BFS, Dijkstra, A*)
- Vector embeddings with IVF and IVF-PQ indexes
- Single-file storage format
Install
From PyPI
pip install raydb
From source
# Install maturin (Rust extension build tool)
python -m pip install -U maturin
# Build and install in development mode
cd ray-rs
maturin develop --features python
# Or build a wheel
maturin build --features python --release
pip install target/wheels/raydb-*.whl
Quick start
from raydb import Database, PropValue
with Database("my_graph.raydb") as db:
db.begin()
alice = db.create_node("user:alice")
bob = db.create_node("user:bob")
name_key = db.get_or_create_propkey("name")
db.set_node_prop(alice, name_key, PropValue.string("Alice"))
db.set_node_prop(bob, name_key, PropValue.string("Bob"))
knows = db.get_or_create_etype("knows")
db.add_edge(alice, knows, bob)
db.commit()
print("nodes:", db.count_nodes())
print("edges:", db.count_edges())
Fluent traversal
from raydb import TraverseOptions
friends = db.from_(alice).out(knows).to_list()
results = db.from_(alice).traverse(
knows,
TraverseOptions(max_depth=3, min_depth=1, direction="out", unique=True),
).to_list()
Vector search
from raydb import IvfIndex, IvfConfig, SearchOptions
index = IvfIndex(dimensions=128, config=IvfConfig(n_clusters=100))
training_data = [0.1] * (128 * 1000)
index.add_training_vectors(training_data, num_vectors=1000)
index.train()
index.insert(vector_id=1, vector=[0.1] * 128)
results = index.search(
manifest_json='{"vectors": {...}}',
query=[0.1] * 128,
k=10,
options=SearchOptions(n_probe=20),
)
for result in results:
print(result.node_id, result.distance)
Documentation
https://ray-kwaf.vercel.app/docs
License
MIT License - see the main project LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
raydb-0.1.0.tar.gz
(1.6 MB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file raydb-0.1.0.tar.gz.
File metadata
- Download URL: raydb-0.1.0.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce500129112656f243467936f7e299d10dc5262fc66e7970c8f6fbe9828c3482
|
|
| MD5 |
547465730effca89a77895f172a34ec3
|
|
| BLAKE2b-256 |
b3e121d63140208491133d744bad72f2f8c180cbe4823856f64e58a67a02be92
|
File details
Details for the file raydb-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: raydb-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4ce5abd23f3161dbbfc9fa9cee8383ae01df4feea52b47d61474bade142ba9f
|
|
| MD5 |
cd22c7bf20ef0239fd68b806f3e7db7d
|
|
| BLAKE2b-256 |
0a0558457d523450c39a87638d4bd1632177f5a7a1765e0181127207f5cc662a
|