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 在 数据库接口
每月下载量 1,262
325KB
8K SLoC
Clickhouse
Clickhouse 是一个纯 Rust SDK,用于在异步环境中以原生协议与 Clickhouse 交互,具有最少的模板代码和最大的性能。
使用示例
请参阅 示例使用方法。
不支持的功能
- Clickhouse 的
Enum8
和Enum16
类型 -- 使用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::Serialize 和 serde::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