This crate is a top-level library that re-exports implementations of Inter-Blockchain Communication (IBC) applications. It serves as a meta-crate, simplifying the process of importing and integrating various IBC applications into your blockchain. IBC is a distributed protocol that enables communication between distinct sovereign blockchains. IBC applications abstract away the core transport, authentication, and ordering (TAO) layers, letting blockchain app developers focus solely on implementing business logic.
The structure within the ibc-apps
crate is designed to provide flexibility for
external users. It allows users to either utilize the entire ibc-apps
crate,
or selectively import specific sub-crates, whether they need a certain IBC
application (e.g. ibc-app-transfer
crate) or only its associated data
structures (e.g. ibc-app-transfer-types
). This versatility empowers hosts,
including chain integrators, relayers, or any IBC tooling projects, to build
their solutions on top of the layers that best suit their requirements.
The ibc-apps
crate contains the implementation of the following IBC
applications:
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!