Crate gremlin_client
source ·Expand description
Experimental Rust client for Apache Tinkerpop Gremlin Server. The driver supports the execution of raw Gremlin queries and GLV traversal
You can use gremlin-client this lines in your Cargo.toml
[dependencies]
gremlin-client = "*"
For async support via async-std
[dependencies]
gremlin-client = { version = "*", features = ["async_std"] }
Here it is an usage example:
Synchronous
use gremlin_client::{GremlinClient, Vertex};
fn main() -> Result<(), Box<std::error::Error>> {
let client = GremlinClient::connect("localhost")?;
let results = client
.execute("g.V(param)", &[("param", &1)])?
.filter_map(Result::ok)
.map(|f| f.take::<Vertex>())
.collect::<Result<Vec<Vertex>, _>>()?;
println!("{:?}", results);
Ok(())
}
Asynchronous
ⓘ
use gremlin_client::{aio::GremlinClient, Vertex};
use async_std::task;
use async_std::prelude::*;
fn main() -> Result<(), Box<std::error::Error>> {
task::block_on(async {
let client = GremlinClient::connect("localhost").await?;
let results = client
.execute("g.V(param)", &[("param", &1)]).await?
.filter_map(Result::ok)
.map(|f| f.take::<Vertex>())
.collect::<Result<Vec<Vertex>, _>>().await?;
println!("{:?}", results);
Ok(())
})
}
Here it is an example with traversal:
Synchronous
use gremlin_client::{GremlinClient, Vertex, process::traversal::traversal};
fn main() -> Result<(), Box<std::error::Error>> {
let client = GremlinClient::connect("localhost")?;
let g = traversal().with_remote(client);
let results = g.v(()).has_label("person").has(("name","Jon")).to_list()?;
println!("{:?}", results);
Ok(())
}
Aynchronous
ⓘ
use gremlin_client::{aio::GremlinClient, Vertex, process::traversal::traversal};
use async_std::task;
use async_std::prelude::*;
fn main() -> Result<(), Box<std::error::Error>> {
task::block_on(async {
let client = GremlinClient::connect("localhost").await?;
let g = traversal().with_remote_async(client);
let results = g.v(()).has_label("person").has(("name","Jon")).to_list().await?;
println!("{:?}", results);
Ok(())
})
}
Re-exports§
pub use conversion::BorrowFromGValue;
pub use conversion::FromGValue;
pub use structure::Cardinality;
pub use structure::Edge;
pub use structure::GKey;
pub use structure::GResultSet;
pub use structure::GValue;
pub use structure::IntermediateRepr;
pub use structure::List;
pub use structure::Map;
pub use structure::Metric;
pub use structure::Path;
pub use structure::Property;
pub use structure::Token;
pub use structure::TraversalExplanation;
pub use structure::TraversalMetrics;
pub use structure::Vertex;
pub use structure::VertexProperty;
pub use structure::GID;