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. 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 ratman --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 ratman --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 :)