![Crates.io](https://img.shields.io/crates/v/avalanche-proto?logo=rust&style=for-the-badge) https://crates.io/crates/avalanche-proto # `avalanche-proto` Protobuf generated client and server resources for Avalanche gRPC in rust. The generated stubs use the upstream [avalanchego/proto](https://github.com/ava-labs/avalanchego/tree/dev/proto) definitions as the source of truth and versioning will align with avalanchego releases. ## Versions Support for avalanchego protocol version 15+. The release version will align with the [protocol version](https://github.com/ava-labs/avalanchego/blob/v1.9.2/vms/rpcchainvm/vm.go#L21) for avalanchego. In our example linked above avalanchego is currently on protocol version 19. This aligns with the minor version of the avalanche-proto release. Patches to minor releases could include improvements or bug fixes. ```bash avalanche-proto = { version = "0.19", features = [] } // supports avalanchego protocol version 19 ``` ## Usage ```rust use avalanche_proto::{ http::{ http_server::Http, HttpRequest, HandleSimpleHttpResponse, HandleSimpleHttpRequest }, google::protobuf::Empty, }; ``` ```rust use avalanche_proto::grpcutil; grpcutil::default_server() .add_service(VmServer::new(vm)) .serve_with_incoming(TcpListenerStream::new(listener)) .await .map_err(|e| { Error::new( ErrorKind::Other, format!("failed to serve vm service: {}", e), ) }) ```