graph LR; RWAPI --- buildbox-worker CAS --- buildbox-worker subgraph Worker; buildbox-worker -- 1 --> buildbox-run-hostools buildbox-worker -- 2 --> buildbox-run-bbwrap buildbox-worker -- 3 --> buildbox-run-userchroot buildbox-run-hostools -.- buildbox-casd buildbox-run-bbwrap -.- buildbox-casd buildbox-run-userchroot -.- buildbox-casd end; buildbox-casd --- CAS classDef nodes stroke:black
The overall architecture rests on two main modules:
buildbox-worker, implementing the RWAPI bot logic and delegating build execution to one of the runner submodules:
buildbox-run-hostools, performing non-sandboxed build using the worker host-tools.
buildbox-run-bbwrap, relying on
bbwrapto perform fully sandboxed builds.
buildbox-run-userchroot, relying on
userchrootto perform isolated builds if
bbwrapis not available.
buildbox-casd, acting as a local CAS cache able to expose/stage its content on the local file system. It can rely on a separate
buildbox-fusesubmodule for optimal staging.
Operation modes by use cases are described on a dedicated page.
buildbox-casd module exposes a gRPC+protobuf interface know as
the LocaCAS protocol. All the other modules are using a specific CLI
interface for communication or configuration. These are described on
the interfaces page.