Crates.io | abci2 |
lib.rs | abci2 |
version | 0.1.3 |
source | src |
created_at | 2019-11-16 02:53:34.92225 |
updated_at | 2022-07-14 22:33:07.745374 |
description | Low-level ABCI protocol server |
homepage | |
repository | |
max_upload_size | |
id | 181693 |
size | 82,581 |
Low-level ABCI protocol server
This crate provides low-level access to the ABCI protocol, via a Connection
type which exposes read()
and write()
methods which return or accept ABCI request or response structs.
Currently supports Tendermint 0.32.
Add this crate as a dependency:
[dependencies]
abci2 = "0.1"
Example:
// listen for ABCI connections from Tendermint
let server = abci2::Server::listen("localhost:26658").unwrap();
// wait for Tendermint to connect (note that we will need to accept the 3
// separate connections that Tendermint makes). this function blocks until
// a connection comes in.
let connection = server.accept().unwrap();
loop {
// get an incoming request
let req = connection.read().unwrap();
// handle the request somehow
let res = process_request();
// send back the response
connection.write(res).unwrap();
}
For a more complete example, see examples/simple.rs (you can run it via cargo run --example simple
).
If you are updating this crate to protobuf definitions for a newer version of Tendermint, you can regenerate the code by running: cargo run --bin codegen --features codegen
.