Turbo is a C++ basic library developed in compliance with the C++17 standard, serving as the fundamental infrastructure for the Kumo product. Built and refined over years of hands-on experience in search and server-side development by the team, Turbo has been proven stable and reliable in tens of thousands of applications.
turbo is the fundamental of kumo, it serves with no dependencies, stability is the most
import, secondary is performance.
It will carefully to add new feature. for example, the utf8 conversion, turbo's performance is lower than vamos, but it is stable, some case, we do not need that high performance in production.
This project uses kmpkg for dependency management and build integration.
kmpkg automatically handles third-party library downloads, dependency resolution, and compiler flag configuration, avoiding the need to manually maintain complex CMake settings.
- Linux (Ubuntu 20.04+ / CentOS 7+ Recommended)
- CMake >= 3.20
- GCC >= 9.4 / Clang >= 12
- Make sure
kmpkgis installed correctly, documents see installation guide
- For the complete dependencies, refer to
kmpkg.json - To update the dependency baseline, modify the
baselineindefault-registryofkmpkg-configuration.json - the
baselinecan be obtained viagit log.
Run in the project root directory:
cmake --preset=defualt
cmake --build build -j$(nproc)If you manage dependencies yourself, you can build the project with standard CMake commands:
mkdir build
cd build
cmake ..
make -j$(nproc)Note
--preset=defaultrequires that the corresponding CMake preset is defined in the project root directory.- When managing dependencies manually, make sure CMake’s find_package can locate all required libraries.
Run in the project root directory:
ctest --test-dir buildturbo has some code integrate from below:
- Abseil licensed byApache 2
- Brpc licensed byApache 2
- Folly licensed byApache 2
- EASTL licensed byBSD 3
- CLI11 licensed byNEW BSD 3
Kumo offical release as Apache 2.