mini-lsm 是一个用现代 C++(C++23)实现的轻量级 LSM(Log-Structured Merge-Tree)存储引擎原型。该项目根据 mini-lsm 课程进行开发。
app/:示例程序mini_lsm.cpp(演示如何 open/put/get/iterate)src/:存储引擎实现(mini-lsm/*)test/:单元测试(基于 gtest)third_party/:第三方依赖(fmt, nlohmann-json, gtest)
- CMake >= 3.20
- 支持 C++23 的编译器(例如 GCC 11+ 或 Clang 12+)
- Ninja 或 GNU Make(可选)
在仓库根目录执行:
mkdir -p build
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -- -j这会在 build/ 下生成可执行文件 mini_lsm(示例程序)。
构建完成后,在构建目录运行:
./mini_lsm示例程序会创建一个基于当前工作目录的 mini-lsm 实例,执行若干 put/get 操作并打印结果(参见 app/mini_lsm.cpp)。
构建后运行测试:
cmake --build build --target test
# 或者使用 ctest
ctest --test-dir build --output-on-failure- fmt (bundled under
third_party/fmt) - nlohmann-json (bundled under
third_party/nlohmann-json) - GoogleTest (bundled under
third_party/gtest)
这些依赖已通过仓库内的 third_party/ 目录添加并在 CMake 配置中启用。
欢迎提交 issue 和 PR。简要流程:
- Fork 仓库并新建分支
- 编写代码并添加/更新测试
- 提交 PR,描述变更与理由
在提交代码前请确保本地通过了构建与相关测试。
本项目基于 MIT 许可证,详情见 LICENSE 文件。