/iota-rdb

Primary LanguageRustMIT LicenseMIT

README

Table of Contents

Usage

Since we are using git submodules system, additional steps to work with the repository are required. To correctly clone the repository you should add --recursive argument:

$ git clone --recursive https://github.com/iotacommunity/iota-rdb

To correctly pull changes from the upstream, run the following commands:

$ git pull
$ git submodule update --init --recursive

Make sure Docker and Docker Compose are installed.

Edit docker-compose.yml file for configuration.

Run the service with the following command:

$ docker-compose up --build

Building

The project is written in Rust programming language. To install it, run the following command:

$ curl https://sh.rustup.rs -sSf | sh

You may need to relogin to update your environment variables.

We are using nightly channel of rust. If you haven't checked it in the previous step, install it with the following command:

$ rustup install nightly

Currently, the project requires ZeroMQ 3.2 or newer. For example, on recent Debian-based distributions, you can use the following command to get the prerequisite headers and library installed:

$ apt-get install libzmq3-dev pkg-config

Once you installed all required dependencies, run the following command in the project root to build executable:

$ rustup run nightly cargo build --release

The binary will be located at target/release/iota-rdb.

Contributing

Please check the following steps before contributing to the project:

  1. Follow syntax guidelines.

We are using rustfmt tool to automatically style the code. You can install it with the following command:

$ rustup run nightly cargo install rustfmt-nightly

To format the source codes run the following command:

$ rustup run nightly cargo fmt
  1. Check that the linter produces no warnings.

We are using clippy rust linter as a development dependency. To check the lints run the following commands:

$ rustup run nightly cargo build --features "clippy"

The output should not contain warnings.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.