[−][src]Crate gremlin_client
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
ⓘThis example is not tested
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
ⓘThis example is not tested
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(()) }) }
Modules
process | |
structure | |
utils |
Structs
ConnectionOptions | |
Edge | |
GResultSet | |
GremlinClient | |
IntermediateRepr | |
List | |
Map | Represent a Map<GKey,GValue> which has ability to allow for non-String keys. TinkerPop type here |
Metric | |
Path | |
Property | |
TlsOptions | |
Token | |
TraversalExplanation | |
TraversalMetrics | |
Vertex | |
VertexProperty |
Enums
Cardinality | |
GID | |
GKey | Possible key types in a Map |
GValue | Represent possible values coming from the Gremlin Server |
GraphSON | |
GremlinError |
Traits
ToGValue |
Type Definitions
GremlinResult |