Building Oryx from source gives you full control over the binary and is the only way to make local modifications. Oryx is a Rust workspace with an embedded eBPF component (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/pythops/oryx/llms.txt
Use this file to discover all available pages before exploring further.
oryx-ebpf) that compiles to BPF bytecode. This requires the Rust nightly toolchain and a specialised BPF linker — standard stable Rust is not sufficient.
Prerequisites
Before you start, ensure the following are available on your system:- Linux kernel 6.10 or higher. Some features depend on kernel capabilities introduced in 6.10. If you are on Debian, version 13 (Trixie) or newer is required; on Ubuntu, version 24.04 (Noble) or newer.
- Rust nightly toolchain with the
rust-srccomponent (installed in step 1 below). - bpf-linker — the LLVM-based linker used to produce BPF ELF objects. See the bpf-linker installation instructions.
- git to clone the repository.
Build steps
Install the Rust nightly toolchain
Install nightly Rust and the
rust-src component, which is required to cross-compile the eBPF crate:Install bpf-linker
bpf-linker links the eBPF object files produced by the Rust compiler. Follow the official installation guide for your distribution:https://github.com/aya-rs/bpf-linker?tab=readme-ov-file#installationBuild the release binary
The The resulting binary is written to
xtask helper orchestrates the two-stage build: it first compiles oryx-ebpf for the BPF target and then compiles oryx-tui for the host, embedding the eBPF object at link time.target/release/oryx.Workspace structure
The repository is a Cargo workspace. Understanding the layout helps when navigating or modifying the code:oryx-ebpf is not a member of the top-level workspace (it has its own [workspace] section with an empty members list) because it compiles for a different target. The xtask crate handles invoking cargo build for it separately before building the rest of the workspace.
Development helpers
TheJustfile at the repository root provides convenience targets: