Velr (Rust driver)
Velr is an embedded property-graph database from Velr.ai, written in Rust, built on top of SQLite3 (persisting to a standard SQLite database file) and queried using the openCypher language.
Vector data and time-series support are actively in development and will ship after openCypher support has stabilized.
This crate provides the Rust driver for Velr. It links against a bundled native runtime with a C ABI, implemented in Rust.
Questions, feedback, or commercial licensing: tomas@velr.ai
Release status
This release is pre-beta.
- The API and query support are still evolving.
- Beta is expected in Q1 - 2026.
If you hit a missing feature (see below), please reach out — it helps us prioritize.
Installation
Add to Cargo.toml:
[]
= "0.1"
Enable Arrow IPC support (binding Arrow arrays + exporting result tables as Arrow IPC):
[]
= { = "0.1", = ["arrow-ipc"] }
Quick start
use ;
Query language support
Velr supports most of openCypher, but some features are not yet implemented.
Notable missing features:
-
Classic UNWIND list literals, e.g.
UNWIND [1,2,3] AS r-
Use
UNWIND BIND('name') AS rinstead, with data provided via:- Arrow (
bind_arrow,bind_arrow_chunks)
- Arrow (
-
-
DELETE / DETACH DELETE / removal of nodes or edges (any form of deleting)
-
Patterns in
WHEREclauses (pattern predicates)
Streaming multiple result tables
A single exec() can yield multiple result tables (e.g. multiple statements):
let db = open?;
let mut stream = db.exec?;
while let Some = stream.next_table?
Transactions and savepoints
let db = open?;
let tx = db.begin_tx?;
tx.run?;
tx.commit?;
Dropping an active transaction without commit() will roll it back (RAII).
Arrow IPC (optional)
With features = ["arrow-ipc"] you can:
- Bind Arrow arrays as a logical table (
bind_arrow,bind_arrow_chunks) - Export a result table as an Arrow IPC file (
to_arrow_ipc_file())
Supported functions
Velr currently supports these openCypher functions:
Scalars
id()type()length()nodes()relationships()coalesce()labels()properties()keys()
Aggregates
count()sum()avg()min()max()collect()
Platform support
This crate links against a bundled native runtime.
Currently bundled targets:
- macOS universal (arm64 + x86_64)
- Linux x86_64
- Linux aarch64
- Windows x86_64
License
This project is licensed under the Velr Beta Test License v1.0.
- Evaluation / beta use only
- No production use
- No redistribution
See LICENSE for the full terms.