Developing with RF Swift
Compile RF Swift from source, write YAML recipes and build your own images.
This section is for people who want to go beyond the official toolboxes: compile the rfswift binary yourself, build your own images, or contribute to the project.
What you can do
- Compile the binary from source, for your machine or another architecture.
- Build your own images with a short YAML recipe, or with a Dockerfile.
- Contribute new features or fixes to the project.
Your own image in two steps
A YAML recipe lists the base image, the packages and a few commands. For example:
# my-custom-image.yaml
base_image: "ubuntu:24.04"
tag: "my-custom-sdr:latest"
packages:
- rtl-sdr
- hackrf
- gqrx-sdr
python_packages:
- numpy
- scipy
run_commands:
- "echo 'Custom image ready!'"Build it with one command:
rfswift image build -r my-custom-image.yamlRecipes are quick to prototype, easy to share and to keep in version control, and you do not need to know how to write a Dockerfile. The YAML recipe guide covers every field and has complete examples.
What you need
- Go 1.27 or later, to compile the RF Swift binary and the Workbench.
- Docker or Podman, to build and test container images (the Nix engine needs Nix instead).
- BuildX, for cross-platform image builds.
- Git, for the source code.
Building for several platforms
RF Swift runs on several operating systems and architectures. When you develop for it:
- test on more than one operating system when you can;
- use BuildX for cross-platform container builds; the YAML build system handles multi-architecture builds once BuildX is configured;
- keep ARM64 and RISC-V in mind when you tune a build.
Getting help
- Discord: join the server to ask questions.
- GitHub issues: report a bug or request a feature.
- API reference: planned on the project wiki.
More development documentation is on its way. Contributions are welcome, especially for specialised development setups and custom image recipes.