rbbuild is a suite of software engineering tools covering many important aspects of the whole product life-cycle. The suite comes with convenient user interfaces for various tasks:
- Configuration and credential management for web services, including: Artifactory, Jira, Bitbucket, GitHub, FossID and SonarQube.
- Easy-to-use CLI wrappers for different tools, e.g., package/dependency managers (uv, pip, npm, Conan), build tools (GCC, clang, MSVC, Python build), documentation tools (Sphinx, Pandoc), and test tools (CTest, PyTest). All provided interfaces aim at hiding complex mechanisms behind simple yet powerful command-lines, designed for the needs of developers and (automated) build users.
- Integration of various toolchains (e.g., from an embedded SDK/BSP), allowing on-the-fly execution of build steps for different targets.
- Profiles and Channels enable powerful configuration of projects on various levels, e.g., per user, per project, or per repository.
rbbuild is implemented in Python and supports Linux and Windows host systems (experimental support for MacOS).
rbbuild requires Python 3.14 or newer. Install Python with the method of your choice, e.g.,
from python.org, with the package manager of your
operating system, or with uv (uv python install).
rbbuild can be installed with any Python package installer, such as pip or uv. We recommend the use of uv.
If your organization provides package mirrors or a dedicated rbbuild installation guide, follow those instructions to configure your package installer.
A venv (virtual environment) is a dedicated folder for your rbbuild installation.
Multiple installations with different versions are possible. In this text, it is assumed that
.cache/rbbuild is your rbbuild venv path.
Linux
uv venv ~/.cache/rbbuild
source ~/.cache/rbbuild/bin/activate
# To use rbbuild CLI programs outside a venv, update PATH permanently
echo 'export PATH=$HOME/.cache/rbbuild/bin:$PATH' >> ~/.bashrc
source ~/.bashrcWindows (PowerShell)
uv venv ~/.cache/rbbuild
~/.cache/rbbuild/Scripts/Activate.ps1
# To use rbbuild CLI programs outside a venv, update PATH permanently
[System.Environment]::SetEnvironmentVariable('PATH', "$([System.Environment]::GetEnvironmentVariable('PATH','User'));$env:USERPROFILE\.cache\rbbuild\Scripts", 'User')
$env:PATH += ";$HOME\.cache\rbbuild\Scripts"Install rbbuild into the venv:
uv pip install rbbuildTo upgrade later, re-run the same command with --upgrade.
For full profile configuration details see rbbconf.md.
If you are contributing to rbbuild itself, rbbuild needs to be installed in the so-called Development Mode. To do so:
- With a checked out rbbuild git repository, execute:
# Create and enter venv, if not already done
uv venv ~/.cache/rbbuild
source ~/.cache/rbbuild/bin/activate # Linux
~/.cache/rbbuild/Scripts/Activate.ps1 # Windows PowerShell
cd ~/git/rbbuild # git source code path
uv pip install -e .[ui] --group dev- To run the rbbuild test suite after setting up the developer environment, see Tests.
rbbuild covers the whole build workflow with a few short commands, whatever language and build system is used underneath:
rbbuild -g . # scaffold a new project
rbbuild -FI # fetch and install dependencies
rbbuild # set up and build (same as rbbuild -sb)
rbbuild -T # run tests and generate reports (test + coverage)
rbbuild --sca # run static code analysis
rbbuild -p # package the results
rbbuild --publish # upload the packages to PyPI or ArtifactoryThe steps in the middle can be repeated as often as needed:
flowchart LR
G["rbbuild -g<br/>scaffold"]
F["rbbuild -FI<br/>dependencies"]
P["rbbuild -p<br/>package"]
U["rbbuild --publish<br/>PyPI / Artifactory"]
subgraph dev ["Develop (repeat as needed)"]
S["rbbuild -s<br/>setup"]
B["rbbuild -b<br/>build"]
T["rbbuild -T<br/>test"]
A["rbbuild --sca<br/>analyze"]
end
G --> F
F --> S
S --> B
B --> T
T --> A
A --> S
A --> P
P --> U
Each use case is available as a ready-to-run project with its own README in documentation/examples:
- C/C++ with CMake: keep your plain
CMakeLists.txt. Build, package and cross-compile with the same commands (rbbuild -t <toolchain>;rbbuild -llists the toolchains of your profile). See basic-cpp, and zlib for building a third-party library from its upstream sources. - Python: build wheels and source distributions, even several wheels from one repository. See basic-python.
- C and Python together: one
rbbuild -sbpcompiles the C code and packs it into a platform-specific wheel. See python-ctypes-c and python-cext-c. - Custom build scripts: run any script instead of a build system. See custom-build-scripts.
- Dependencies: declare packages from channels or plain URLs in rbbuild.toml. rbbuild resolves the versions and reports conflicts.
- SBOM and licenses: every package comes with a
manifest.jsonand a CycloneDX SBOM.rbbuild --licensesshows the license information.
- pkq: query channels and packages, compare versions, search reverse dependencies.
rbbuild-gui: graphical command center for browsing packages and editing dependencies and SBOM metadata.- rbfoss: FossID integration for OSS scans.
- rbbconf: profiles, channels and service configuration.
The material in this repository is licensed under MIT License.
Third-party licenses are available after packaging as machine-readable CycloneDX or
manifest.json files in the build folder (obj).
A textual representation can be obtained via this call:
rbbuild --licenses
This repository contains code generated by GenAI:
- GitHub Copilot Enterprise
- Models: Claude Sonnet [4.6, 5, 5.5]
Authors and Maintainers of this repository are: