A Year of Rust in ClickHouse
a year ago
- #ClickHouse
- #Programming
- #Rust
- 将Rust集成到ClickHouse的初衷是充分利用Rust的优势,同时避免重写现有的C++代码。
- 首个Rust组件是BLAKE3哈希函数,后来被LLVM的C++实现所取代。
- 后续增加的Rust组件包括用于终端改进的'skim'工具和替代查询语言PRQL。
- Delta Kernel的集成标志着Rust首次实际应用于Delta Lake支持,取代了不稳定的C++代码。
- 面临的挑战包括供应链安全、复杂的C++/Rust互操作、异常处理机制以及检测工具集成。
- 通过解决交叉编译和库链接问题,保持了ClickHouse的可移植性优势。
- 需要谨慎处理Rust与C++规范的兼容性以及依赖管理问题。
- 尽管存在挑战,Rust集成最终取得成功,并吸引了更多Rust开发者参与贡献。