issun-db
Health Uyari
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
A fast embedded graph database for AI applications and graph analytics
IssunDB is a fast embedded graph database, written in Rust.
It can be embedded in Rust applications without the need for a server, and can be used for a wide range of applications such as building
GraphRAG pipelines and querying knowledge graphs.
You can download the latest binaries (for IssunDB CLI, MCP and HTTP servers) from here.
Key Features
- Rust graph engine built with ACID, property graph model, and Cypher query language support
- Fast graph traversal and analytics using sparse matrix operations
- Fast vectorized query execution with multi-core parallelism and serializable transactions
- Built-in vector, text, and hybrid search and retrieval
- Provides a wide range of APIs, including native Rust, Python bindings, CLI, HTTP (REST), and MCP
- Fully cross-platform; supports Linux, macOS, and Windows
[!IMPORTANT]
This project is still in early development, so bugs and breaking changes are expected.
Please use the issue page to report bugs or request features.
Quickstart
To use IssunDB in your Rust project, add the dependency to your Cargo.toml:
[dependencies]
issundb = "0.1.0-alpha.10"
serde_json = "1.0"
[!NOTE]
IssunDB needs Rust 1.85.0 or newer.
Here is a basic example showing how to open a database, insert nodes, establish relationships, and query the graph using Cypher:
use std::path::Path;
use issundb::{Graph, GraphQueryExt};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Open a graph database (with a 1 GB memory map size limit)
let graph = Graph::open(Path::new("./issundb-data"), 1)?;
// Add two nodes with properties
let alice_props = serde_json::json!({ "name": "Alice", "age": 30 });
let alice_id = graph.add_node("Person", &alice_props)?;
let bob_props = serde_json::json!({ "name": "Bob", "age": 28 });
let bob_id = graph.add_node("Person", &bob_props)?;
// Add an edge between the nodes
let edge_props = serde_json::json!({ "since": 2021 });
graph.add_edge(alice_id, bob_id, "KNOWS", &edge_props)?;
// Optional: rebuild CSR snapshot manually after bulk writes
graph.rebuild_csr()?;
// Run a Cypher query and print the results
let result = graph.query(
"MATCH (a:Person)-[r:KNOWS]->(b:Person) RETURN a.name, b.name, r.since"
)?;
for record in result.records {
println!(
"Match: {} knows {} since {}",
record.values[0],
record.values[1],
record.values[2]
);
}
Ok(())
}
# Output:
Match: "Alice" knows "Bob" since 2021
Running IssunDB in a Container
CLI
# Run IssunDB with the CLI
docker run --rm -it -v issundb-data:/data ghcr.io/issundb/issundb:latest
HTTP (REST)
# Run IssunDB with the HTTP API on port 7474
docker run --rm -p 7474:7474 -v issundb-data:/data ghcr.io/issundb/issundb:latest issundb-rest
MCP
# Run IssunDB with the MCP API on port 8000
docker run --rm -p 8000:8000 -v issundb-data:/data ghcr.io/issundb/issundb:latest issundb-mcp
Documentation
The project documentation is available here.
The Rust API documentation is available on docs.rs/issundb.
Rust Examples
Check out the issundb-examples crate for more examples using IssunDB using the Rust API.
Python Examples
See the issundb-py/examples directory for example usage of the Python API.
Contributing
See CONTRIBUTING.md for details on how to make a contribution.
License
IssunDB is available under either of these licenses:
- MIT License (LICENSE-MIT)
- Apache License, Version 2.0 (LICENSE-APACHE)
Acknowledgements
- The logo is from SVG Repo with some modifications.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi