RLP is built for environments where correctness is not a feature — it is a constraint. Every transformation is deterministic. Every byte has a reason to exist. There are no hidden allocations, no implicit conversions, and no undefined behavior hiding behind convenience. The library favors structure over heuristics:
- types are mapped explicitly, not guessed
- encoding is canonical, not context-dependent
- failures are surfaced, not deferred
Performance follows from this:
| OS / Compiler | GCC 13 | GCC 14 | GCC 15 | Clang 17 | Clang 18 | Clang 19 | Clang 20 |
|---|---|---|---|---|---|---|---|
| Ubuntu 22.04 | |||||||
| Ubuntu 24.04 |
cmake -DCMAKE_BUILD_TYPE=Debug -DRLP_BUILD_TESTS=ON -S . -B build # configure (debug + tests)
cmake --build build --parallel # build everything
cd build && ctest --output-on-failure # run tests
cmake --build build --target docs_build # install mkdocs locally
cmake --build build --target docs_serve # run webserver @ http://127.0.0.1:9000/sudo apt install build-essential cmake
cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
cmake --build build --parallel
sudo cmake --install buildAfter installation, RLP is available as a standard CMake package:
find_package(rlp REQUIRED)
add_executable(app main.cpp)
target_link_libraries(app PRIVATE rlp::rlp)