Prerequisites
Before you begin, ensure you have the following installed on your host machine:- Docker 20.10 or later — for the recommended Docker-based workflow
- Git — to clone the repository
- Python 3 with
pip— required only for building from source outside Docker
Basis currently targets Ubuntu Focal (20.04) as its primary build platform. This is the last Ubuntu release with ROS 1 (Noetic) support. The Docker image is built on
ubuntu:focal.Option 1: Docker (recommended)
The repository ships with two Docker image targets:| Image | Description |
|---|---|
basis-env | Core build environment with CMake, Clang 18, protobuf, and Python tooling |
basis-env-ros | Extends basis-env with ROS Noetic (roscpp_serialization, std_msgs, sensor_msgs) |
Build the Docker images
Run the provided build script from the repository root. By default it builds both To build only the base image without ROS, set the
basis-env and basis-env-ros.BASIS_ENABLE_ROS environment variable to 0:Start a development shell
Use the run script to launch an interactive container. It mounts the repository root at If a container named
/basis inside the container.basis is already running, the script attaches to it instead of starting a new one. You can pass additional arguments directly through to bash:The run script passes
--privileged to Docker and mounts the repository at /basis. The working directory inside the container is /basis.Option 2: Build from source
If you need to build outside of Docker, you must install all dependencies manually.Required dependencies
Optional: ROS 1 support
To enable therosmsg serialization plugin and use ROS 1 message types:
Configure and build
Configure with CMake
| Option | Default | Description |
|---|---|---|
BASIS_INSTALL_DIR | /opt/basis | Installation prefix |
BASIS_ENABLE_ROS | OFF | Enable ROS 1 (Noetic) integration |
BASIS_ENABLE_TESTING | ON when top-level | Build unit tests |
Sourcing the environment
After installation, source the environment script to add Basis binaries and libraries to your shell’s search paths:Verifying the installation
After sourcing the environment, confirm that the coordinator binary is available:BASIS_ROOT/bin is in your PATH and that cmake --install completed successfully.
Next steps
Quickstart
Write your first Unit, run code generation, and connect to the coordinator
Unit YAML schema
Full reference for the
.unit.yaml handler declaration format