18 releases
0.6.2 | Nov 6, 2024 |
---|---|
0.6.1 | May 29, 2024 |
0.6.0 | Jan 19, 2023 |
0.5.4 | Sep 24, 2022 |
0.1.0 | Apr 23, 2022 |
#383 in Database interfaces
140 downloads per month
45KB
1K
SLoC
Apache AGE (Rust Driver)
What is Apache AGE
AGE is opensource backend for postgres, that allows user to perform graph related operations on postgres. You can read about it on the official website
This repository will be eventually merged into the age repository. The status of the work needed for PR can be found in the special issue within AGE issue tracker
Important note
This library is just a wrapper around existing postgres libraries. Connection parameters, methods etc. are indentical (unless noted) as in the postgres and tokio-postgres crates.
Driver usage
More examples can be find in documentation (link below)
use apache_age::{NoTls, AgType};
use apache_age::sync::{AgeClient, Client};
use serde::{Deserialize, Serialize};
let mut client = Client::connect_age(
"host=localhost user=postgres password=passwd port=8081",
NoTls
).unwrap();
client.create_graph("my_apache_graph");
#[derive(Debug, Serialize, Deserialize, Clone)]
struct Person {
pub name: String,
pub surname: String,
}
match client.query_cypher::<()>(
"my_apache_graph",
"MATCH (n: Person) WHERE n.name = 'Alfred' RETURN {name: n.name, surname: n.surname}",
None,
) {
Ok(rows) => {
let x: AgType<Person> = rows[0].get(0);
// do whatever you need
}
Err(e) => {
// handle error
}
}
client.drop_graph("my_apache_graph");
Links
Testing
There is a simple docker-compose file within tests directory. Run it to set up an AGE db.
pushd tests
docker-compose up -d
popd
cargo t
Dependencies
~7–17MB
~240K SLoC