Hacking on Irdest
Hey, it's cool that you want to hack on Irdest :) We recommend you install nix to handle dependencies. Depending on the directory you are in you can fetch development dependencies:
$ cd irdest/
$ nix-shell # install the base dependencies
...
$ cd docs/
$ nix-shell # install documentation dependencies
With lorri and direnv installed transitioning from one directory to another will automatically load additional dependencies!
Alternatively, make sure you have the following dependencies installed:
- rustc
- cargo
- rustfmt
- rust-analyzer
- clangStdenv
- pkg-config
- protobuf
- cargo-watch
- binutils
- yarn
- reuse
- jq
Building Ratman
Ratman provides several binaries in the ratman
package. The name of the binary is ratmand
. You can build the entire package with cargo
. By default, the ratman-dashboard will be included, which requires you to build the sources with yarn
first.
$ cd ratman/dashboard
$ yarn && yarn build
$ cd ../..
$ cargo build -p ratmand --all-features
Alternatively you can disable the dashboard
feature. Unfortunately cargo
doesn't allow selective disabling of features, so you will need to disable all default features, then select a new set of features as follows:
$ cargo build -p ratmand --release --disable-default-features \
--features "cli datalink inet lan lora upnp"
...
[cargo goes brrr]
Building irdest-echo
irdest-echo
is a demo application built specifically to work with Ratman as a networking backend. Build it via the irdest-echo
package with cargo.
$ cargo build -p irdest-echo --release
...
Building irdest-mblog
irdest-mblog
is probably the most complete user-facing application that is native to the Irdest network. You can build it with Cargo, as long as you have gtk4
installed on your system (or using the Nix environment).
$ cd client/irdest-mblog
$ cargo build --release --bin irdest-mblog-gtk --features "mblog-gtk"
...
What now?
Check the issue tracker for "good first issues" if you are completely new to Irdest, and additionally "help wanted" issues if you already have some experience with the code-base.
Please also don't hesitate to ask us any questions! We're very happy to help :)