Dependencies
tools/dev/Dockerfile in the repository lists the Debian packages. On macOS, brew install protobuf-c libnghttp2 provides the last two.
Build
build/filetrace and build/filetrace-agent.
The C code generated from the protobuf schemas is committed under
gen/, so building needs neither Buf nor network access.
Run the tests
unit tests run on Linux and macOS. integration-auto and integration-kprobe need root and a kernel that supports the probes, and are skipped otherwise. They start the agent with the probe set the kernel prefers and with the kprobe set, generate real transfers, and check exact byte counts, rates, confidence levels and the output of every command.
Develop on macOS
Collection needs a Linux kernel. From macOS,tools/dev/linux.sh <command> runs a command in a Linux container with the source tree mounted at /src, and this runs the demo, which builds the project, starts the agent, generates transfers and walks through the commands: