Releases: XRPLF/clio
2.7.0-rc2
Release notes
Note: Please remember that this is a release candidate and it is not recommended for production use.
Clio development build (nightly-20251219)
Release notes
Note: Please remember that this is a development release and it is not recommended for production use.
Changelog (including previous releases): https://github.com/XRPLF/clio/commits/nightly-20251219
2.7.0-rc1
Release notes
Note: Please remember that this is a release candidate and it is not recommended for production use.
2.7.0-b2
Release notes
Note: Please remember that this is a release candidate and it is not recommended for production use.
2.7.0-b1
Release notes
Note: Please remember that this is a release candidate and it is not recommended for production use.
2.6.0
Release notes
Clio, an XRP Ledger API server optimized for HTTP and WebSocket API calls, is under active development.
This release adds new features and bug fixes.
Proxy Support
Clio now supports extracting the client's original IP address from the Forwarded HTTP header. This behavior is enabled only if the request meets one of the following conditions:
- The request originates from an IP address defined in the
server.proxy.ipsconfiguration list. - The request includes an
X-Proxy-Tokenheader, and its value matches a token specified in theserver.proxy.tokensconfiguration list.
Logger changes
In this release, there are significant changes to the logging system and log configuration.
Clio has been migrated from Boost.Log to spdlog, which offers better performance and maintainability. Additionally, the configuration schema has been restructured to group all logging-related settings under a single log object.
Some additional resources:
Configuration Migration Required:
log_format→log.format, also changed fromBoost.Logformat tospdlogformat patterns, please see the documentationlog.is_asyncwas added; controls whether logging is asynchronous (default:true)log_directory_max_sizewas removed; replaced bylog.directory_max_fileslog_rotation_hour_intervalwas removed; time-based rotation is no longer supportedlog_level→log.levellog_to_console→log.enable_consolelog_directory→log.directorylog_rotation_size→log.rotation_sizelog_directory_max_files→log.directory_max_fileslog_tag_style→log.tag_stylelog_channels→log.channelslog_channels.[].log_level→log.channels.[].level
Config validation
Now, Clio will fail to start, if a field is present in configuration file, while Clio's config schema doesn't support it.
Whats's changed
🚀 Features
- Use mold linker on Linux (#2304) by @mathbunnyru
- Use spdlog logger (#2372) by @mathbunnyru
- Validate unexpected config values (#2457) by @mathbunnyru
- Generate Debian packages with CPack (#2282) by @legleux
- Do not print critical errors in stdout (#2468) by @mathbunnyru
- Proxy support (#2490) by @kuznetsss
- Add network id to ledger feed (#2505) by @kuznetsss
- Cache state endpoint (#2642) by @godexsoft
- Support Keyspace (#2454) by @PeterChen13579
- Support new types in ledger_entry (#2654) by @emreariyurek
🐛 Bug Fixes
- Do not link to several boost::stacktrace implementations because… (#2329) by @mathbunnyru
- Fix default bool value print in config definition (#2397) by @mathbunnyru
- Remove tight loop in ETLng (#2398) by @godexsoft
- ETLng more cpu usage fixes (#2399) by @godexsoft
- MPT test object producing ASAN error (#2406) by @godexsoft
- Remove 'count' from logger level (#2408) by @PeterChen13579
- Do not log shutdown message in LogService (#2424) by @mathbunnyru
- Fix GCC 15 discovered bugs (#2425) by @mathbunnyru
- Fix default severity in Logger (#2449) by @mathbunnyru
- Add trustline locking flag to account_info (#2338) by @PeterChen13579
- Print error and help on unknown arg (#2460) by @mathbunnyru
- Shutdown LogService after exceptions are printed (#2464) by @mathbunnyru
- Fix package issues (#2469) by @mathbunnyru
- ASAN issues in CommunicationService (#2480) by @godexsoft
- ASAN issues from runSpawnWithTimeout (#2482) by @godexsoft
- Add nft_id and offer_id to txn stream (#2335) by @PeterChen13579
- Change error style in Config (#2314) by @emreariyurek
- Support canonical names for type in account_objects (#2437) by @emreariyurek
- Fix data race in ClusterCommunication (#2522) by @kuznetsss
- Add MPT to txn JSON (#2392) by @PeterChen13579
- Remove global static loggers (#2557) by @mathbunnyru
- Remove MPTIssuanceID from tx (#2569) by @PeterChen13579
- ETLng task manager stops queue on run (#2585) by @godexsoft
- Keep spdlog loggers valid between tests (#2614) by @mathbunnyru
- Workaround large number validation and parsing (#2608) by @godexsoft
- Mpt_issuance_id not in tx for MPTIssuanceCreate (#2630) by @PeterChen13579
- Print out error details of web context (#2351) by @emreariyurek
- ASAN issue with AmendmentBlockHandler test (#2674) by @godexsoft
- Add gRPC Timeout and keepalive to handle stuck connections (#2676) by @rrmanukyan
- Drop dynamic loggers to fix memory leak (#2686) by @mathbunnyru
- Address AmendmentBlockHandler flakiness in old ETL tests (#2694) by @godexsoft
- Add mpt_issuance_id to meta of MPTIssuanceCreate (#2701) by @PeterChen13579
🚜 Refactor
- Refactor Logger.hpp and LoggerFixtures.hpp (#2356) by @mathbunnyru
- Refactor Logger::init() into multiple functions (#2357) by @mathbunnyru
- Put log options in log section in config (#2440) by @mathbunnyru
- Add kCONFIG_DESCRIPTION_HEADER (#2463) by @mathbunnyru
- Output struct (#2456) by @PeterChen13579
- Use expected<void, error> instead of optional (#2565) by @emreariyurek
- Keyspace comments (#2684) by @PeterChen13579
📚 Documentation
- Fix some doxygen issues (#2370) by @mathbunnyru
- Set
ws_portto 6006 in example config (#2377) by @godexsoft - Delete logging.md (#2450) by @mathbunnyru
- Update information about minimum compilers (#2448) by @mathbunnyru
- Add log format description (#2461) by @mathbunnyru
- Fix some doxygen issues in LedgerFeed (#2556) by @emreariyurek
- Update conan lockfile docs to work on all machines the same way (#2607) by @mathbunnyru
- Update doxygen-awesome-css to 2.4.0 (#2647) by @mathbunnyru
- Build docs using doxygen 1.14.0 (#2681) by @mathbunnyru
- All files are .hpp (#2683) by @mathbunnyru
- Update doxygen-awesome-css to 2.4.1 (#2690) by @mathbunnyru
⚡ Performance
- Add benchmark for Logger (#2407) by @mathbunnyru
- Optimize bench logger code for more realistic scenario (#2412) by @mathbunnyru
- Pass const reference Input into handlers (#2409) by @emreariyurek
🎨 Styling
- Update pre-commit hooks (#2384) by @github-actions[bot]
- Mark spdlog fwd declararations as NOLINT(readability-identifie… (#2423) by @mathbunnyru
- Fix JSON colon style in C++ code (#2484) by @mathbunnyru
- Fix JSON indent style in C++ code (#2485) by @mathbunnyru
- Update pre-commit hooks (#2491) by @github-actions[bot]
- Update pre-commit hooks (#2658) by @mathbunnyru
- Rename workflows to use dash and show reusable (#2667) by @mathbunnyru
- Rename actions to use dash (#2669) by @mathbunnyru
🧪 Testing
- Fix prometheus tests (#2312) by @kuznetsss
- Write more data to fill socket buffer (#2433) by @mathbunnyru
- Move prettyPath to its own file and test it (#2486) by @mathbunnyru
- Run LoggerFixture::init in integration tests (#2636) by @mathbunnyru
- Enable address sanitizer testing (#2628) by @mathbunnyru
⚙️ Miscellaneous Tasks
- Pin docker image to commit hash (#2354) by @mathbunnyru
- Update boost usages to match 1.88 (#2355) by @godexsoft
- Improve RC release notes (#2361) by @mathbunnyru
- Do not add sha256 checksums to release notes (#2362) by @mathbunnyru
- Use artifactory DNS name (#2363) by @mathbunnyru
- Use image with artifactory DNS name (#2364) by @mathbunnyru
- Verify version of the binary on release (#2365) by @mathbunnyru
- Provide fetch-tags and ref when using actions/checkout (#2366) by @mathbunnyru
- [DEPENDABOT] Bump ytanikin/pr-conventional-commits from 1.4.1 to 1.4.2 (#2368) by @dependabot[bot]
- Pass expected_version to build_impl.yml (#2367) by @mathbunnyru
- Do not generate source files and use target_compile_definition… (#2369) by @mathbunnyru
- Add option to force conan upload (#2376) by @mathbunnyru
- Move config definition to cpp file (#2371) by @mathbunnyru
- Specify conan profile in check_libxrpl (#2381) by @mathbunnyru
- Call prepare_runner right after checkout (#2383) by @mathbunnyru
- [DEPENDABOT] Bump docker/metadata-action from 5.7.0 to 5.8.0 in /.github/actions/build_docker_image (#2385) by @dependabot[bot]
- Hash-pin docker/login-action (#2386) by @mathbunnyru
- Enable CMake 4 support (#2387) by @mathbunnyru
- Use an image with CMake 4 in CI (#2388) by @mathbunnyru
- Bump libuv recipe version (#2389) by @mathbunnyru
- Update conan recipe revisions (#2390) by @mathbunnyru
- Fix concurrency settings to allow parallel workflows on develop branch (#2391) by @Copilot
- Rewrite clio Dockerfile so it's more clear (#2395) by @mathbunnyru
- Make clio_server executable (#2394) by @mathbunnyru
- Build benchmark code in CI (#2404) by @mathbunnyru
- Update trufflehog max depth (#2405) by @godexsoft
- [DEPENDABOT] Bump docker/login-action from 3.4.0 to 3.5.0 (#2416) by @dependabot[bot]
- [DEPENDABOT] Bump docker/login-action from 3.4.0 to 3.5.0 in /.github/actions/build_docker_image (#2415) by @dependabot[bot]
- [DEPENDABOT] Bump actions/download-artifact from 4 to 5 (#2414) by @dependabot[bot]
- Remove trufflehog (#2427) by @godexsoft
- Build GCC 15.2 (#2426) by @mathbunnyru
- Use GCC 15.2 (#2428) by @mathbunnyru
- Add GDB to docker image (#2429) by @mathbunnyru
- Use image with GDB (#2430) by @mathbunnyru
- Make CI work well in forks (#2434) by @mathbunnyru
- Start using apple-clang 17 in CI (#2432) by @mathbunnyru
- Fix docker CI in forks (#2435) by @mathbunnyru
- Add dependencies for Debian packages (#2436) by @legleux
- Fix nightly docker image in forks (#2438) by @mathbunnyru
- Use main repo release tag in forks (#2439) by @mathbunnyru
- [DEPENDABOT] bump actions/checkout from 4 to 5 (#2443) by...
2.6.0-rc5
Release notes
Note: Please remember that this is a release candidate and it is not recommended for production use.
2.6.0-rc4
Release notes
Note: Please remember that this is a release candidate and it is not recommended for production use.
2.6.0-rc3
Release notes
Note: Please remember that this is a release candidate and it is not recommended for production use.
2.6.0-rc2
Release notes
Note: Please remember that this is a release candidate and it is not recommended for production use.