#clickhouse #sql-database #sql #tokio

klickhouse

Clickhouse 是一个纯 Rust SDK,用于在异步环境中以原生协议与 Clickhouse 交互,具有最少的模板代码和最大的性能。

40 个版本 (12 个重大更新)

0.13.0 2024 年 5 月 8 日
0.11.2 2024 年 2 月 28 日
0.10.2 2023 年 10 月 28 日
0.9.0 2023 年 7 月 8 日
0.2.1 2021 年 5 月 31 日

#166数据库接口

Download history 143/week @ 2024-04-30 316/week @ 2024-05-07 345/week @ 2024-05-14 263/week @ 2024-05-21 195/week @ 2024-05-28 461/week @ 2024-06-04 332/week @ 2024-06-11 373/week @ 2024-06-18 278/week @ 2024-06-25 531/week @ 2024-07-02 290/week @ 2024-07-09 203/week @ 2024-07-16 236/week @ 2024-07-23 588/week @ 2024-07-30 188/week @ 2024-08-06 214/week @ 2024-08-13

每月下载量 1,262

MIT/Apache

325KB
8K SLoC

Clickhouse

Clickhouse 是一个纯 Rust SDK,用于在异步环境中以原生协议与 Clickhouse 交互,具有最少的模板代码和最大的性能。

使用示例

请参阅 示例使用方法

不支持的功能

  • Clickhouse 的 Enum8Enum16 类型 -- 使用 LowCardinality 代替。

运行测试

运行集成测试需要 Clickhouse 服务器。可以轻松地在 Docker 容器中启动一个

$ docker run  --rm --name clickhouse -p 19000:9000 --ulimit nofile=262144:262144 clickhouse
$ export KLICKHOUSE_TEST_ADDR=127.0.0.1:19000
$ # export KLICKHOUSE_TEST_USER=default
$ # export KLICKHOUSE_TEST_PASSWORD=default
$ # export KLICKHOUSE_TEST_DATABASE=default
$ cargo nextest run

(由于日志记录器的初始化,目前不支持同时运行测试和 cargo test)

功能标志

  • derive: 启用 [klickhouse_derive],提供 [Row] 特质的 derive 宏。默认。
  • compression: 客户端/服务器通信的 lz4 压缩。默认。
  • serde: 对各种对象的 serde::Serializeserde::Deserialize 进行推导,并支持 JSON。默认。
  • tls: 通过 tokio-rustls 支持 TLS。
  • refinery: 通过 refinery 进行迁移。
  • geo-types: 将地理类型转换为/从 geo-types crate。
  • bb8: 启用由 bb8 管理的 ConnectionManager

致谢

klickhouse_derive 是通过复制/粘贴/简化 serde_derive 来制作的,以在最低的时间成本下获得最大的功能和性能。在一个原型中,直接使用了 serde,但由于 serde 数据模型的锁定,这被放弃了。

依赖项

~8–21MB
~303K SLoC