#ibc #blockchain #cosmos #data-structures

no-std ibc-data-types

Maintained by ibc-rs, delineates standard data structures and domain types of the Inter-Blockchain Communication (IBC) protocol. Designed for universal application, enabling diverse projects across IBC ecosystem to build using a shared language

12 releases (breaking)

new 0.56.0 Nov 15, 2024
0.55.0 Sep 27, 2024
0.53.0 May 14, 2024
0.51.0 Mar 26, 2024
0.48.1 Nov 27, 2023

#619 in Magic Beans

Download history 133/week @ 2024-08-12 12/week @ 2024-09-16 183/week @ 2024-09-23 23/week @ 2024-09-30 4/week @ 2024-10-07 129/week @ 2024-10-14 8/week @ 2024-10-21 2/week @ 2024-11-04 107/week @ 2024-11-11

127 downloads per month

Apache-2.0

665KB
14K SLoC

IBC Types

This crate serves as a central hub for re-exporting the implemented Inter-Blockchain Communication (IBC) data structures. It simplifies the integration of various IBC domain types into your project. IBC is a distributed protocol facilitating communication between independent sovereign blockchains and The IBC data structures within this crate abstract various IBC specifications, offering a convenient means to encode and decode IBC messages to and from proto types exposed by ibc-proto crate. Additionally, it supports parsing events to and from ABCI event types.

Sub-Crates

This crate organizes data structures into three main modules: core, clients, and apps. Each category further re-exports its respective sub data structures, providing a clear and modular path for easy navigation and usage:

Core

Specification
Crate
ICS-02: Client Semantics ibc-core-client-types
ICS-03: Connection Semantics ibc-core-connection-types
ICS-04: Channel and Packet Semantics ibc-core-channel-types
ICS-24: Host Requirements ibc-core-host-types
ICS-25: Handler Interface ibc-core-handler-types
ICS-26: Routing Module ibc-core-routing-types

Clients

Specification
Crate
ICS-07: Tendermint Client ibc-client-tendermint-types

Apps

Specification
Crate
ICS-20: Fungible Token Transfer ibc-app-transfer-types

Contributing

IBC is specified in English in the cosmos/ibc repo. Any protocol changes or clarifications should be contributed there.

If you're interested in contributing, please take a look at the CONTRIBUTING guidelines. We welcome and appreciate community contributions!

Dependencies

~21MB
~439K SLoC