Expand description
Bindings to Kuzu: an in-process property graph database management system built for query speed and scalability.
§Example Usage
use kuzu::{Database, SystemConfig, Connection};
let db = Database::new(path, SystemConfig::default())?;
let conn = Connection::new(&db)?;
conn.query("CREATE NODE TABLE Person(name STRING, age INT64, PRIMARY KEY(name));")?;
conn.query("CREATE (:Person {name: 'Alice', age: 25});")?;
conn.query("CREATE (:Person {name: 'Bob', age: 30});")?;
let mut result = conn.query("MATCH (a:Person) RETURN a.name AS NAME, a.age AS AGE;")?;
println!("{}", result);
§Building
By default, the kuzu C++ library will be compiled from source and statically linked.
If you want to instead link against a pre-built version of the library, the following environment variables can be used to configure the build process:
KUZU_SHARED
: If set, link dynamically instead of staticallyKUZU_INCLUDE_DIR
: Directory of kuzu’s headersKUZU_LIBRARY_DIR
: Directory containing kuzu’s pre-built libraries.
§Using Extensions
By default, binaries created using this library will not work with kuzu’s extensions (except on Windows/MSVC, where the linker works differently).
If you want to use extensions in binaries (binary crates or tests) using this library, you will need to add the following (or a similar command; see build-scripts) to your build.rs (or create one) so that the binary produced acts like a library that the extension can link with. Not doing this will produce undefined symbol errors when the extension is loaded:
println!("cargo:rustc-link-arg=-rdynamic");
Structs§
- Arrow
Iterator - Produces an iterator over a QueryResult as RecordBatches
- CSVOptions
- Options for writing CSV files
- Connection
- Connections are used to interact with a Database instance.
- Database
- The Database class is the main class of KuzuDB. It manages all database components.
- InternalID
- Stores the table_id and offset of a node/rel.
- NodeVal
- NodeVal represents a node in the graph and stores the nodeID, label and properties of that node.
- Prepared
Statement - A prepared stattement is a parameterized query which can avoid planning the same query for repeated execution
- Query
Result - Stores the result of a query execution
- RelVal
- RelVal represents a relationship in the graph and stores the relID, src/dst nodes and properties of that rel
- System
Config - Configuration options for the database.
Enums§
- Error
- Logical
Type - Type of Values produced and consumed by queries.
- Value
- Data types supported by Kuzu
Constants§
- VERSION
- The version of the Kuzu crate as reported by Cargo’s CARGO_PKG_VERSION environment variable
Functions§
- get_
storage_ version - Returns the storage version of the Kuzu library