Welcome to RayforceDB Rust!¶
Built for Rust
rayforce-rs provides safe, ergonomic Rust bindings for RayforceDB - the ultra-fast columnar database.
Why Rust?¶
RayforceDB is written in pure C for maximum performance. rayforce-rs brings that performance to Rust with:
- Memory Safety - No null pointers, no buffer overflows, no data races
- Zero-Cost Abstractions - Idiomatic Rust API that compiles to efficient C calls
- Fearless Concurrency - Share data safely across threads
- Type Safety - Catch errors at compile time, not runtime
Quick Overview¶
use rayforce::{Rayforce, RayI64, RayVector, RayTable};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize RayforceDB runtime
let ray = Rayforce::new()?;
// Create typed values
let price = RayI64::from_value(100);
let prices: RayVector<i64> = RayVector::from_iter([100, 200, 300]);
// Evaluate expressions
let result = ray.eval("(+ 1 2 3)")?;
println!("1 + 2 + 3 = {}", result);
Ok(())
}
Feature Highlights¶
-
Blazing Fast
Sub-millisecond query performance on analytical workloads through columnar storage and vectorized operations.
-
Rust Idiomatic
Familiar patterns:
From/Intotraits, iterators,Resulterror handling, and smart pointers. -
Full API Coverage
All RayforceDB types: scalars, vectors, lists, dicts, tables. All queries: select, update, insert, upsert, joins.
-
IPC Support
Connect to remote RayforceDB instances with async-ready networking.
What's Next?¶
- Installation - Add rayforce-rs to your project
- Quick Start - Build your first application
- API Reference - Explore the full API
System Requirements¶
- Rust: 1.70 or later
- OS: Linux, macOS (Windows support coming soon)
- Build Tools: C compiler (gcc/clang) for building the RayforceDB C library
Need Help?
Join the RayforceDB Zulip community or open an issue on GitHub.