Crates.io | coreemu |
lib.rs | coreemu |
version | 0.1.5 |
source | src |
created_at | 2021-07-13 10:21:49.910599 |
updated_at | 2022-09-14 09:02:46.132999 |
description | Rust client library for gRPC interface of coreemu https://github.com/coreemu/core |
homepage | |
repository | https://github.com/gh0st42/coreemu-rs |
max_upload_size | |
id | 422242 |
size | 7,199,999 |
This is a client library to use the gRPC interface of coreemu from rust. All gRPC functions are exposed in their raw form as produced by tonic-build but there are is also a thin (and incomplete) wrapper to make the API a bit more usable.
The main branch of this repository and the version published on crates.io is build for coreemu 7.5.2, there is a branch coreemu8 which has support for the changed gRPC interface.
To use this library add the following dependency to your Cargo.toml
:
coreemu = "*"
or just call:
cargo add coreemu
The following example connects to the local coreemu instance and prints all node information from the first running instance found.
use coreemu::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut client = Client::connect("http://127.0.0.1:50051").await?;
let response = client.get_sessions().await?;
println!("RESPONSE={:?}", response);
let session_id = response[0].id;
let response = client.get_session(session_id).await?.unwrap();
for n in response.nodes {
if n.name.starts_with("n") {
println!("RESPONSE={:#?}", n.position.unwrap());
}
}
Ok(())
}