Background
crates.io is a central repository for Rust crates (binary applications and libraries).
`iroha` crate name on crates.io with `iroha-derive` and `iroha-internal` were occupied so we need to find another name for our main crate.
Problem
crates.io has no ability to delete already created crates, so the only way is to use new names to be published there.
Solution
As a solution we propose to publish a following set of crates:
- irohad - binary application to start Iroha Peer, this crate's artifacts will be used for docker images
- iroha_peer - library containing Iroha "backend" or peer-side logic
- iroha_client - library containing Iroha Rust clients API
- iroha_client_cli - binary application which provides command line interface on top of iroha_client
- iroha_crypto - library containing Iroha crypto related logic (Key Pairs generators, Hashing algorithms, etc.)
- iroha_crypto_cli - binary application which provides command line interface on top of iroha_crypto
- iroha_data_model - library containing domain entities like Domain and Account, Iroha Special Instructions and Iroha Queries
- iroha_dsl - library containing Domain Language specific entities like macroses, popular compositions of instructions and examples
- iroha_http_server - library containing HTTP related functionality
- iroha_logger - library containing logging related functionality
- iroha_macro - library containing Iroha macroses
Decisions
- use new names for iroha crates
- get on top of crates.io search index by providing a lot of downloads for our crates
Alternatives
- Get in touch with https://crates.io/users/dark-flames and ask to provide credentials for current crates with an ability to put new versions with our Iroha on top of already existing
- Use private cargo registry
Concerns
At start people may use `iroha` crate instead of `irohad`.
Assumptions
We will provide information about this situation on our web pages.
Risks
- 3rd party malicious agent can take `iroha` to fight our reputation.