abci2

Crates.ioabci2
lib.rsabci2
version0.1.3
sourcesrc
created_at2019-11-16 02:53:34.92225
updated_at2022-07-14 22:33:07.745374
descriptionLow-level ABCI protocol server
homepage
repository
max_upload_size
id181693
size82,581
Matt Bell (mappum)

documentation

README

abci2

Low-level ABCI protocol server

Crate API

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.

Usage

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).

Rebuild Protobuf

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.

Commit count: 0

cargo fmt