Installation

Official releases

You can download a binary from the download page, where you will also find the compiled packages for the installation on your system using a package manager.

Linux

In case you want to install the pre-compiled versions of rudof for Linux, you can take a look at the rudof_vX.X.X_x86_64_linux_gnu executable, where vX.X.X corresponds to the version to be installed. By executing the following instructions you can get the pre-compiled binaries of the tool.

Remember to change the vX.X.X thing to the corresponding version.

curl -o rudof https://github.com/rudof-project/rudof/releases/download/vX.X.X/rudof_vX.X.X_x86_64_linux_gnu
chmod +x rudof

Nix

rudof ships a flake.nix that exposes a package, apps, a development shell, and NixOS/home-manager modules, so it can be consumed by other Nix projects without any extra work. It supports x86_64-linux, aarch64-linux and aarch64-darwin.

Prerequisites

You need Nix with the flakes and nix-command experimental features enabled.

Try it without installing

You can run rudof directly from the flake without permanently installing anything:

nix run github:rudof-project/rudof#rudof -- <rudof-flags>

For example, to print the help message:

nix run github:rudof-project/rudof#rudof -- --help
Install into your profile

To install rudof persistently into your user profile, run:

nix profile install github:rudof-project/rudof#rudof

After this, rudof will be available in your $PATH for the current user.

To later upgrade to a newer version, run:

nix profile upgrade '.*rudof.*'
Available outputs

The flake exposes the following outputs:

OutputDescription
packages.defaultSame as packages.rudof
packages.rudofThe main CLI binary
apps.defaultSame as apps.rudof
apps.rudofRuns the rudof binary
apps.rudof-generateRuns the rudof-generate utility bundled in the rudof package
devShells.defaultDevelopment shell with the full Rust toolchain
devShells.rudofDevelopment shell with the flake packages.rudof available
nixosModules.defaultNixOS module exposing programs.rudof (See reference)
homeModules.defaulthome-manager module exposing programs.rudof (See reference)

You can list all available outputs with:

nix flake show github:rudof-project/rudof
Using the flake as an input in your project

Add rudof as a flake input:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    rudof.url = "github:rudof-project/rudof";
    rudof.inputs.nixpkgs.follows = "nixpkgs";
  };
}

Reference the package for your system directly, for example in a devShell, a NixOS configuration, or anywhere else pkgs-like values are built:

{ inputs, system, ... }:
{
  environment.systemPackages = [ inputs.rudof.packages.${system}.rudof ];
}
NixOS module

Import nixosModules.default and enable programs.rudof:

{
  imports = [ rudof.nixosModules.default ];

  programs.rudof = {
    enable = true;
    # package = <override the default rudof package>;
    settings = {
      # any rudof setting, e.g.:
      # version = "0.0.0";
    };
    extraArgs = [ "--some-flag" ];
  };
}
home-manager module

Same config, via homeModules.default:

{
  imports = [ rudof.homeModules.default ];

  programs.rudof = {
    enable = true;
    settings = {
      # ...
    };
  };
}

Windows

You can download the Windows binary from the releases page.

As in the case of Linux, the name of the file will be something like rudof_vX.X.X_x86_64_windows_msvc.exe, where vX.X.X corresponds to the version to be installed. In systems whose version is Windows 10 and above, one can run the following snippet:

Remember to change the vX.X.X thing to the corresponding version.

curl -o rudof.exe https://github.com/rudof-project/rudof/releases/download/vX.X.X/rudof_vX.X.X_x86_64_windows_msvc.exe

Mac

As in the two previous cases, the MacOS binaries are available at the download page.

However, in the case of this operating system, two different executables are provided; namely, rudof_vX.X.X_x86_64_apple for Intel-based machines, and rudof_vX.X.X_aarch64_apple for the new M chips.

Remember to change the vX.X.X thing to the corresponding version, and the <<platform>> tag to the corresponding platform.

curl -o rudof https://github.com/rudof-project/rudof/releases/download/vX.X.X/rudof_vX.X.X_<<platform>>_apple.exe

Once downloaded, you have to change the permissions of the file as:

chmod +x rudof_vX.X.X_<<platform>>_apple

Using a Package Manager

Debian

rudof is also bundled as a Debian package that is available in the download page. To obtain it you can follow the following steps, which are similar to the ones described in the previous sections.

Remember to change the vX.X.X thing to the corresponding version.

curl -o rudof.deb https://github.com/rudof-project/rudof/releases/download/vX.X.X/rudof_vX.X.X_amd64.deb
sudo dpkg -i rudof.deb

Compiling from source

Another alternative is to build the binaries on your own using cargo, as rudof has been implemented in Rust. To do so, you just have to clone the Github repository and build it using the appropiate command. The workflow could be as follows:

If you want to get the most efficient binary, at the cost of a longer compile time, you can pass the --release flag to the last command.

git clone https://github.com/rudof-project/rudof.git
cd rudof
cargo build

Creating your own Debian package

By installing the cargo-deb utility you can follow the same steps as defined in the Debian section. To do so, you just have to follow the steps below:

cargo install cargo-deb

Once you have it installed, you can call the cargo deb command to compile the project to a Debian project which can be installed using the dpkg package manager.

Remember to change the X.X.X thing to the corresponding version.

cargo deb
sudo dpkg -i target/debian/rudof_X.X.X_amd64.deb

Docker

TBD