RLBox API
RLBox sandboxing API (in C++ 17). See the online docs. This code has been tested on 64-bit versions of Ubuntu and Mac OSX.
Reporting security bugs
If you find a security bug, please do not create a public issue. Instead, file a security bug on bugzilla using the following template link.
Setup
Configure cmake to setup a build folder. This is needed to run tests or build the docs.
cmake -S . -B ./build
Running the tests
-
Go through Setup listed above first
-
To build and test:
cmake --build ./build --target check
Alternatively, you can run the build and test targets separately
cmake --build ./build --target all
cmake --build ./build --target test
Running the tests
Currently rlbox has been tested and should work with gcc-7 or later and clang-5 or later.
Using/Building docs
You can view the pre-built docs checked in to the repo in the docs folder. Alternatively, you can build these yourself with the steps listed below.
-
Go through Setup listed above first
-
You need to install doxygen and then the sphinx and breathe python packages (e.g., with pip3).
On Ubuntu:
sudo apt install doxygen python-sphinx python-breathe
On Arch Linux:
sudo pacman -S doxygen python-sphinx python-breathe
- Build the docs:
cmake -S . -B ./build
cmake --build ./build --target docs
- Open the doc file in your favorite browser:
firefox `pwd`/docs/sphinx/index.html
Contributing Code/Docs
-
To contribute code, it is recommended you install clang-tidy which the build uses if available. Install using:
On Ubuntu:
sudo apt install clang-tidy
On Arch Linux:
sudo pacman -S clang-tidy
- It is recommended you use the dev mode for building during development. This treat warnings as errors, enables clang-tidy checks, runs address sanitizer etc. Also, you probably want to use the debug build. To do this, adjust your build settings as shown below
cmake -DCMAKE_BUILD_TYPE=Debug -DDEV=ON -S . -B ./build
-
After making changes to the source, add any new required tests and run all tests as described earlier.
-
Modify the docs as appropriate and rebuild docs as described earlier. Rebuilding is required if you have added new APIs.
-
To make sure all code/docs are formatted with, we use clang-format. Install using:
On Ubuntu:
sudo apt install clang-format
On Arch Linux:
sudo pacman -S clang-format
- Format code with the format-source target:
cmake --build ./build --target format-source
- Submit the pull request.