cosmos-sdk/core
Julien Robert 6fc677faec
docs(core): add core documentation and principles (#21511)
Co-authored-by: Aaron Craelius <aaronc@users.noreply.github.com>
2024-09-03 22:20:05 +00:00
..
address refactor!: mv AddressCodecs aliases from runtime -> core (#19747) 2024-03-14 14:19:15 +00:00
appmodule docs(core): add core documentation and principles (#21511) 2024-09-03 22:20:05 +00:00
branch feat(core): add Branch.ExecuteWithGasLimit API (#18457) 2023-11-14 10:07:55 +00:00
comet refactor(core,x/**): simplify core service api and embed environment in keepers (#20071) 2024-04-17 18:18:16 +00:00
context docs(core): add core documentation and principles (#21511) 2024-09-03 22:20:05 +00:00
event refactor: zerodep core (#21239) 2024-08-12 12:57:44 +00:00
gas docs(core): add core documentation and principles (#21511) 2024-09-03 22:20:05 +00:00
genesis docs(core): add core documentation and principles (#21511) 2024-09-03 22:20:05 +00:00
header chore: various cleanup (#20864) 2024-07-18 09:12:58 +00:00
legacy docs(core): add core documentation and principles (#21511) 2024-09-03 22:20:05 +00:00
log feat(log): remove core dependency and update core interface to be dependency free (#21045) 2024-07-26 11:00:27 +00:00
registry docs(core): add core documentation and principles (#21511) 2024-09-03 22:20:05 +00:00
router refactor(core,stf,x)!: remove InvokeTyped from router (#21224) 2024-08-23 21:38:06 +00:00
server chore: cleanup core/app (#21368) 2024-08-27 09:55:16 +00:00
store feat(schema/appdata)!: efficiency & data model improvements aligned with server/v2 (#21305) 2024-08-20 14:49:06 +00:00
testing fix(core/gas): Add consumed API for GasMeter (#21443) 2024-08-29 15:16:33 +00:00
transaction docs(core): add core documentation and principles (#21511) 2024-09-03 22:20:05 +00:00
CHANGELOG.md feat(core/store): make KVStore structurally typed (#21222) 2024-08-08 13:14:59 +00:00
go.mod build(deps): use Go 1.23 instead of Go 1.22 (#21280) 2024-08-15 08:43:08 +00:00
go.sum refactor: zerodep core (#21239) 2024-08-12 12:57:44 +00:00
Makefile feat: add core module with app config support (#11914) 2022-05-10 14:41:52 -04:00
README.md docs(core): add core documentation and principles (#21511) 2024-09-03 22:20:05 +00:00
sonar-project.properties chore: force reload sonar cloud (#20480) 2024-05-29 11:12:09 +00:00

Cosmos SDK Core

The cosmossdk.io/core Go module defines essential APIs and interfaces for the Cosmos SDK ecosystem. It serves as a foundation for building modular blockchain applications.

Key features and principles:

  1. Provides stable, long-term maintained APIs for module development and app composition.
  2. Focuses on interface definitions without implementation details.
  3. Implementations are housed in the runtime(/v2) or individual modules.
  4. Modules depend solely on core APIs for maximum compatibility.
  5. New API additions undergo thorough consideration to maintain stability.
  6. Adheres to a no-breaking-changes policy for reliable dependency management.
  7. Aimed to have zero dependencies, ensuring a lightweight and self-contained foundation.

The core module offers the appmodule and appmodule/v2 packages that include APIs to describe how modules can be written. Additionally, it contains all core services APIs that can be used in modules to interact with the SDK, majoritarily via the appmodule.Environment struct. Last but not least, it provides codecs and packages for the Cosmos SDK's core types (think of, for instance, logger, store interface or an address codec).

Developers and contributors approach core API design with careful deliberation, ensuring that additions provide significant value while maintaining the module's stability and simplicity.