Package Layout
This page describes the public source checkout and the installed runtime layout.
Public Source Checkout
The published source surface is split by role.
r2kernel- entry repository withinstall.sh,r2kernel.repos, and release metadata.r2kernel-sdk- Python/C++ SDK source, public specs, C ABI headers, guided tutorials, runnable transport tutorials, managed package tutorials, and benchmark runners.r2kernel-docs- documentation source for the published docs site.- published docs site - user-facing documentation.
The public checkout focuses on SDKs, tutorials, benchmarks, specs, and docs.
Runtime implementation binaries are installed through the installer.
r2kernel-demo is a separate robotics application demo repository, not a source
tree exported by the core release pipeline.
Installed Runtime Layout
The published installer places runtime artifacts under the selected prefix,
normally /opt/r2kernel.
<prefix>/runtime/bin- user-facing runtime CLIs such asr2kernel,r2kernel-control,r2kernel-config,r2kernel-package,r2kernel-launch,r2kernel-subsystem,r2kernel-resourced,r2kernel-doctor, andr2kernel-timesync.<prefix>/runtime/lib- native runtime libraries used by the SDKs and tutorials.<prefix>/runtime/config.yaml- installed runtime config.<prefix>/runtime/spec- installed fallback copy of public specs.<prefix>/runtime/frontend- packaged Web Console frontend assets, when present in the target bundle.<prefix>/sdk/python- platform-specific Python wheel payloads.<prefix>/sdk/cpp- installed C++ SDK payload.<prefix>/tutorials- installed guided tutorial source and runnable tutorial fixtures.<prefix>/benchmarks- installed benchmark runners for transport and timing measurement.<prefix>/licenses- runtime EULA, open-source license documents, third-party notices, and download/install data notice.<prefix>/systemd- R2Kernel service unit sources linked from/etc/systemd/system.<prefix>/var- R2Kernel-owned state, logs, and service home directories.<prefix>/var/lib/packages- managed package registry and unpacked packages for product installs. The system service helper prepares this path for the non-rootr2kernel-control.serviceuser.<prefix>/env.sh- shell helper that exportsR2KERNEL_PREFIX,R2KERNEL_RUNTIME_ROOT,R2KERNEL_SPEC_ROOT, and related paths.<prefix>/bin/r2kernel-uninstall- uninstaller for service links and the selected prefix.
Top-level entry points point into the runtime tree.
<prefix>/bin -> <prefix>/runtime/bin<prefix>/spec -> <prefix>/runtime/spec<prefix>/config.yaml -> <prefix>/runtime/config.yaml
SDK Notes
The Python SDK source package is Apache-2.0 and can be installed from a public checkout with this command.
python3 -m venv .venv
. .venv/bin/activate
. /opt/r2kernel/env.sh
pip install -e sdk/python
Python wheel outputs are platform-specific but CPython ABI-independent
(py3-none-<platform>). Use the editable source install path above when working
from a public checkout or when the active Python environment needs to build
directly from source.
The installed-user SDK surface is Python and C++. Runtime implementation languages and internal package layout are not part of the public SDK contract.
Public Specs
Public loaders resolve specs from external roots first.
R2KERNEL_SPEC_PATH, when setR2KERNEL_SPEC_ROOT, normally from<prefix>/env.sh- installed fallback roots such as
<prefix>/spec - packaged fallback specs inside the Python SDK
This lets users overlay custom YAML specs while keeping the installed public spec tree available as a fallback.
Source Boundary
The installed tree is sufficient for normal tutorial and benchmark use. Public source checkouts are still the supported editable source surface for SDK changes, advanced benchmark matrix tooling, demos, specs, and docs. Runtime binaries are installed through the installer rather than built by ordinary application users.