Exonum
Exonum is an extensible open-source framework for
creating blockchain applications. Exonum can be used to create cryptographically
powered distributed ledgers in virtually any problem domain, including FinTech,
GovTech, and LegalTech. The Exonum framework is oriented towards creating
permissioned blockchains, that is, blockchains with the known set of blockchain
infrastructure providers.
If you are using Exonum in your project and want to be listed on our website &
GitHub list — write us a line to contact@exonum.com.
Contents
This is the main Exonum repository containing the bulk of Rust crates
used in Exonum. Rust crates for Exonum are intended to be reasonably
small and reusable, hence there is relatively large number of them.
Main Crates
Upstream Dependencies
- Cryptographic library
- Database backend for merkelized data structures
- Key management
- Derive macros
- Protobuf helpers
- Protobuf support for build scripts
- High-level HTTP API abstraction
Tools for Building Services
Services and Node Plugins
- Explorer service and explorer library
- Middleware service
- Supervisor service
- Time oracle service
- System API plugin
Examples
Versioning Policy
Exonum crates follow semantic versioning.
The exonum
crate and its re-exported dependencies
(exonum-crypto
, exonum-merkledb
and exonum-keys
) are released
at the same time; their version is considered the version of the Exonum framework.
On the other hand, the crates downstream of exonum
(e.g., exonum-node
)
or independent of it (e.g., exonum-api
) may evolve at different speeds,
including major releases not tied to a major Exonum release.
Throughout the Exonum codebase, certain APIs are described in the API docs
as unstable or experimental. Such APIs may be removed or changed
in a semantically non-breaking release (for example, a minor release)
of the corresponding crate.
Similarly, nominally public APIs that are hidden from the docs
via #[doc(hidden)]
are considered unstable and thus exempt from semantic
versioning limitations.
Contributing
To contribute to Exonum, please see CONTRIBUTING.
See Also
Some Exonum stuff that is not in this repository: