#protobuf #serialization #amino #buffer #prost #details #github

prost-amino

An implementation of the Amino serialization for Tendermint/Cosmos in the Rust Language. See https://github.com/tendermint/go-amino for details.

3 releases (breaking)

Uses old Rust 2015

0.6.0 Jun 23, 2020
0.5.0 Jan 19, 2020
0.4.1 Jan 19, 2020
0.4.0 Oct 17, 2018

#4 in #amino

Download history 212/week @ 2024-07-22 444/week @ 2024-07-29 607/week @ 2024-08-05 358/week @ 2024-08-12 415/week @ 2024-08-19 445/week @ 2024-08-26 751/week @ 2024-09-02 309/week @ 2024-09-09 80/week @ 2024-09-16 403/week @ 2024-09-23 104/week @ 2024-09-30 912/week @ 2024-10-07 237/week @ 2024-10-14 1076/week @ 2024-10-21 677/week @ 2024-10-28 296/week @ 2024-11-04

2,303 downloads per month
Used in 4 crates (via stdtx)

Apache-2.0

66KB
1.5K SLoC

Rust Amino

This is a work in progress implementation of the Amino serialization for Tendermint/Cosmos in the Rust Language. For details on amino, see: https://github.com/tendermint/go-amino.

It is based on the Protocol Buffers implementation prost! by @danburkert.

Like prost! for protobuf, it uses Rust's type-directed metaprogramming to add support for amino's registered types.

Registered types can be annotated via #[aminoName="registered/name/goes/here"] to derive encoding and decoding. As amino allows to register type aliases of primitive types (e.g. bytes via ed25519.Pubkey), you can also annotate fields.

You can find a complete example which uses both, a registered type (or message) and a registered scalar type (bytes or Vec<u8>) in the kms repository.

Dependencies

~340KB