{"id":13644678,"url":"https://github.com/PLSysSec/rlbox","last_synced_at":"2025-04-21T10:34:03.585Z","repository":{"id":40769828,"uuid":"194337404","full_name":"PLSysSec/rlbox","owner":"PLSysSec","description":"RLBox sandboxing framework","archived":false,"fork":false,"pushed_at":"2025-03-18T17:13:44.000Z","size":7741,"stargazers_count":296,"open_issues_count":25,"forks_count":21,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-19T13:44:29.558Z","etag":null,"topics":["sandboxing","webassembly"],"latest_commit_sha":null,"homepage":"https://rlbox.dev","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PLSysSec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-28T21:48:38.000Z","updated_at":"2025-03-23T05:37:30.000Z","dependencies_parsed_at":"2024-07-08T06:25:25.171Z","dependency_job_id":"c06ad54f-b2f9-403f-891b-da4ffcc59c35","html_url":"https://github.com/PLSysSec/rlbox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLSysSec%2Frlbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLSysSec%2Frlbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLSysSec%2Frlbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLSysSec%2Frlbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PLSysSec","download_url":"https://codeload.github.com/PLSysSec/rlbox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250040622,"owners_count":21365140,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sandboxing","webassembly"],"created_at":"2024-08-02T01:02:10.657Z","updated_at":"2025-04-21T10:33:58.575Z","avatar_url":"https://github.com/PLSysSec.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# RLBox\n\n[![Tests](https://github.com/PLSysSec/rlbox_sandboxing_api/actions/workflows/cmake.yml/badge.svg)](https://github.com/PLSysSec/rlbox_sandboxing_api/actions/workflows/cmake.yml)\n\nRLBox sandboxing framework. This code has been tested on 64-bit versions of Linux, Mac OSX, and Windows.\n\n## Reporting security bugs\n\nIf you find a security bug, please do not create a public issue. Instead, file a security bug on bugzilla using the [following template link](https://bugzilla.mozilla.org/enter_bug.cgi?component=Security%3A%20RLBox\u0026defined_groups=1\u0026groups=core-security\u0026product=Core\u0026bug_type=defect).\n\n## Using this library\n\nRLBox is a general purpose sandboxing API that can be used to interact with\nlibrary sandboxed with different backends --- WebAssembly, Native Client, OS\nprocessess, etc. Support for each backend is provided by a separate plugin that\nmust also be downloaded separately.\n\nSee the [online docs](https://rlbox.dev) for more details.\n\nThe RLBox library is a header only library, so you can directly download this repo and use include the contents of `code/include/` in your application. On Linux/Mac machines, you can optionally install the headers as well with `make install`.\n\nSupport for cmake's `find_package` API is also included (see [this example](https://github.com/PLSysSec/rlbox-book/blob/main/src/chapters/examples/noop-hello-example/CMakeLists.txt)).\n\n## Running the tests\n\n1. Setup a build folder and then build.\n\n   ```bash\n   cmake -S . -B ./build -DCMAKE_BUILD_TYPE=Release\n   ```\n\n   You can build with cmake:\n\n   ```bash\n   cmake --build ./build --config Release --parallel\n   ```\n\n   or make:\n\n   ```bash\n   cd build \u0026\u0026 make -j\n   ```\n\n2. To test:\n\n   With cmake:\n\n   ```bash\n   cd build \u0026\u0026 ctest -V\n   ```\n\n   or with make (on Linux/Mac):\n\n   ```bash\n   cd build \u0026\u0026 make test\n   ```\n\n   When running with ASAN and UBSAN:\n\n   ```bash\n   cd build \u0026\u0026 cmake -E env LSAN_OPTIONS=suppressions=../leak_suppressions.txt UBSAN_OPTIONS=suppressions=../ub_suppressions.txt ctest -V\n   ```\n\nCurrently RLBox has been tested and should work with gcc-7 or later and\nclang-5, Visual Studio 2019 (possibly previous versions as well) or later.  If\nyou are using other compilers/compiler versions (like mingw), these may also be\nsupported.  Simply run the test suite and check that everything passes.\n\nIf you want to disable building tests, you can add `-DBUILD_TESTING=OFF` when invoking cmake the first time. This will also remove the Catch2 dependency.\n\n   ```bash\n   cmake -S . -B ./build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF\n   ```\n\n## Install the library (Linux/Mac only)\n\nThe recommended use of RLBox is to make a copy of this library in your source tree.\nHowever, if you want to install the library, you can do so by following the below steps.\n\nConfigure the build with cmake in the same way that previous paragraph. Then simply run:\n\n   ```bash\n   cd build\n   make install\n   ```\n\n## Contributing Code\n\n1. To contribute code, it is recommended you install clang-tidy which the build\nuses if available. Install using:\n\n   On Ubuntu:\n\n   ```bash\n   sudo apt install clang-tidy\n   ```\n\n   On Arch Linux:\n\n   ```bash\n   sudo pacman -S clang-tidy\n   ```\n\n2. It is recommended you use the dev mode for building during development. This\ntreat warnings as errors, enables clang-tidy checks, runs address sanitizer etc.\nAlso, you probably want to use the debug build. To do this, adjust your build\nsettings as shown below\n\n   ```bash\n   cmake -DCMAKE_BUILD_TYPE=Debug -DDEV=ON -S . -B ./build\n   cd build\n   make\n   ```\n\n3. After making changes to the source, add any new required tests and run all\ntests (as described earlier).\n\n4. If you don't already have clang-format installed, install it:\n\n   On Ubuntu:\n\n   ```bash\n   sudo apt install clang-format\n   ```\n\n   On Arch Linux:\n\n   ```bash\n   sudo pacman -S clang-format\n   ```\n\n6. Format code with the format-source target:\n\n   ```bash\n   cmake --build ./build --target format-source\n   ```\n\n7. Submit the pull request!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPLSysSec%2Frlbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPLSysSec%2Frlbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPLSysSec%2Frlbox/lists"}