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
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
.
Please check the following steps before contributing to the project:
- 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
- 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.
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
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.