rsmgclient
is Memgraph database adapter for Rust
programming language. rsmgclient
crate is the current implementation of the
adapter. It is implemented as a wrapper around
mgclient, the official Memgraph C/C++
client library.
Once prerequisites are met, if you want to use rsmgclient
as library for your
own Rust project, you can install it by using cargo
:
bash
cargo install rsmgclient
To contribute into rsmgclient
or just looking closely how it is made,
you will need:
Once rsmgclient
is cloned, you will need to build it and then you can run
the test suite to verify it is working correctly:
```bash git submodule update --init cargo build
cargo test ```
Online documentation can be found on docs.rs pages.
src/main.rs
is an example showing some of the basic commands:
```rust use rsmgclient::{ConnectParams, Connection, MgError, Value};
fn executequery() -> Result<(), MgError> { // Connect to Memgraph. let connectparams = ConnectParams { host: Some(String::from("localhost")), ..Default::default() }; let mut connection = Connection::connect(&connect_params)?;
// Create simple graph.
connection.execute_without_results(
"CREATE (p1:Person {name: 'Alice'})-[l1:Likes]->(m:Software {name: 'Memgraph'}) \
CREATE (p2:Person {name: 'John'})-[l2:Likes]->(m);",
)?;
// Fetch the graph.
let columns = connection.execute("MATCH (n)-[r]->(m) RETURN n, r, m;", None)?;
println!("Columns: {}", columns.join(", "));
for record in connection.fetchall()? {
for value in record.values {
match value {
Value::Node(node) => print!("{}", node),
Value::Relationship(edge) => print!("-{}-", edge),
value => print!("{}", value),
}
}
println!();
}
connection.commit()?;
Ok(())
}
fn main() { if let Err(error) = execute_query() { panic!("{}", error) } } ```