1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
#![doc(html_root_url = "https://docs.rs/rustmann/")] //! # Rustmann //! //! Rustmann is the rust client for [riemann](https://riemann.io), a popular //! event aggregator and processor for distributed system. //! //! This implementation is based on tokio and using async-await style API. //! //! ## Features //! //! * Full async-await API //! * TCP/UDP/TLS transport support //! * Auto reconnect //! * Send and query API //! * EventBuilder //! * A usable Cli in example //! //! ## Quick Start //! //! ```no_run //! use rustmann::{EventBuilder, RiemannClient, RiemannClientError, RiemannClientOptions}; //! //! #[tokio::main] //! async fn main() -> Result<(), RiemannClientError> { //! // create client with default configuration (to localhost:5555) //! let mut client = RiemannClient::new(&RiemannClientOptions::default()); //! //! // create a riemann event using evnet builder API //! let event = EventBuilder::new() //! .service("riemann_test") //! .state("ok") //! .metric_f(123.4) //! .build(); //! //! // send event to server //! let response = client.send_events(vec![event]).await?; //! println!("{:?}", response); //! //! // query riemann //! let query_response = client.send_query("service = \"riemann_test\"").await?; //! println!("{:?}", query_response); //! Ok(()) //! } //! ``` //! //! See [examples](https://github.com/sunng87/rustmann/tree/master/examples) for //! more usage demo. //! mod client; mod codec; mod error; mod event; mod options; pub mod protos { pub mod riemann { include!(concat!(env!("OUT_DIR"), "/riemann.rs")); } } mod state; #[cfg(feature = "tls")] mod tls; mod transport; pub use crate::client::RiemannClient; pub use crate::error::RiemannClientError; pub use crate::event::EventBuilder; pub use crate::options::{RiemannClientOptions, RiemannClientOptionsBuilder}; #[cfg(feature = "tls")] pub use tokio_rustls::rustls::ClientConfig;