- 🔎 Content
- 🤔 About
- 🏁 Getting Started
- 🔧 Development
- ⚙️ Run the application
- 🚀 Deployment
- 🎉 Acknowledgements
- 📝 License
This repository implements a networked application comprising a single binary called omni-node
capable of functioning as either a server or a client.
To use your host system as development environment install the following prerequisites.
curl
,git
- Rust
Tip
In any case, you can check below for suggestions on how to install the prerequisites on your system.
Linux (Debian/Ubuntu)
If you are using Debian or a derivative (e.g. Ubuntu, Linux Mint), it is recommended to install Rust using the standard installation script. You could install all the development prerequisites by running the following commands.
sudo apt install curl git
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
macOS
If you are using macOS you could install all the development prerequisites using Homebrew by running the following commands.
brew install curl git
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Windows
If you are using Windows, you could install all the development prerequisites using the
winget
CLI tool by running the following commands.
winget install --id Git.Git
winget install --id Rustlang.Rust.MSVC
Once you have a development environment configured with all the necessary prerequisites, you can perform any of the following tasks.
Quickly check the package and all of its dependencies for possible errors
cargo check
To build the packages use
cargo build
Now we can run all the default tests
cargo test
or just a specific group of tests, by adding -- <pattern>
to filter.
To run the networked application, let's start by running the omni-node
binary in server mode
cargo run --release -- --mode server
and from here let's execute as many processes in client mode as we want by
cargo run --release
Tip
To check out all the options available on the command line use cargo run --release -- --help
.
You can use any of the tarballs in the Releases section to deploy the software according to your requirements. These are automatically generated using the release workflow after tagging a new version.
Thanks to all the developers of the libraries used throughout the project.
This project is licensed under the MIT license.