Inter-Blockchain Communication Protocol (IBC) implementation in Golang.
ibc-go is a Golang implementation of the Inter-Blockchain Communication Protocol (IBC), which enables communication between separate blockchain networks. The project is organized as a multi-module Go implementation supporting both IBC v1 and v2 protocols, with production code organized into IBC core, applications and middleware, and light-client implementations. The codebase is built with Go modules and uses Makefile-driven build and verification workflows, protobuf for data serialization, and a test infrastructure spanning unit tests, integration tests via shared helpers in the `testing/` directory, and Docker-backed end-to-end tests. The project maintains comprehensive documentation built with Docusaurus and records architectural decisions through Architecture Decision Records (ADRs).