驱动总览
| 语言 | 驱动 | 当前版本 | 一句话能力 |
|---|---|---|---|
| Rust | taibai-rust | v0.1.0 | tokio 异步驱动:连接池、TLS、二进制列式解码、列式批量导入、变更订阅 |
| C++ | taibai-cpp | v0.1.0 | C++17 驱动:仅依赖 zlib,静态/动态库,列式批量插入(含 NULL) |
| Python | taibai | v0.1.0 | asyncio 驱动:零第三方依赖,全量线协议,pipeline 批量导入、连接池、TLS |
| Java | taibai-jdbc | v1.0.4 | JDBC 4.2 驱动:PreparedStatement、事务、连接池、TLS、高性能批量插入 |
| Go | taibai-go | 随源码分发 | 标准 database/sql 接口 + 原生 API:DSN 直连、列式二进制批量导入、负载均衡 |
驱动版本以各仓库构建清单为准(核对于 2026-10)。Rust / C++ / Python / Go 驱动随官方源码仓库分发, 暂未上架公共包管理平台;JDBC 驱动已发布到自建 Maven 仓库。图形化管理请用官方桌面客户端 Taibai UI。
Rust 驱动(taibai-rust)
tokio 异步 TCP 客户端:登录、查询与执行、文本/二进制列式结果、19 种 wire 数据类型、预处理语句、 事务、flush、列式批量导入与 pipeline、变更订阅、连接池,可选 TLS(rustls)。
接入
- 未发布到 crates.io,从官方源码仓库获取后以路径依赖引入
Cargo.toml - 默认连接
127.0.0.1:5151,用户root,数据库main
use taibai_rust::{Client, ClientOptions};
#[tokio::main]
async fn main() -> taibai_rust::Result<()> {
let mut client = Client::connect_with_options(ClientOptions::default()).await?;
let rows = client.query("SHOW TABLES").await?;
println!("{rows:?}");
Ok(())
}
C++ 驱动(taibai-cpp)
C++17 实现,仅依赖 zlib,CMake 构建,可编静态或动态库;对齐服务端 0.1.4+ 协议,
支持列式批量插入(含 NULL 值),自带示例命令行客户端 taibai_query。
构建与安装
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build --prefix /usr/local
下游工程引用
find_package(taibai_cpp CONFIG REQUIRED)
target_link_libraries(app PRIVATE taibai::taibai_cpp)
Python 驱动(taibai)
官方 asyncio 驱动,零第三方依赖(仅 Python 标准库),要求 Python 3.10+。
实现线协议完整能力:连接认证、文本/二进制查询结果、预处理语句、事务、
列式批量导入(BulkImporter pipeline)、连接池、TLS 与连接级 zlib 压缩。
pip 里的 taibai 不是这个驱动
PyPI 上名为 taibai 的包是一个与 Taibai 数据库无关的第三方命令行工具,
不要用它连接 Taibai。官方 Python 驱动目前随源码仓库分发:
获取源码后在项目目录执行 pip install -e . 安装。
import asyncio
from taibai import Client
async def main():
client = await Client.connect("127.0.0.1", 5151,
user="root", password="taibai", database="main")
result = await client.query("SELECT symbol, COUNT(*) FROM ticks GROUP BY symbol")
print(result.dicts())
await client.close()
asyncio.run(main())
JDBC 驱动(taibai-jdbc)
完整 JDBC 4.2 API:基于 Taibai 二进制 Wire 协议通信,支持 PreparedStatement 参数绑定、
事务、TaibaiDataSource 连接池、SSL/TLS 连接、TaibaiBulkInsert
高性能批量插入,以及标准 SQLSTATE 错误码映射。要求 Java 11+。
Maven 依赖(自建 Maven 仓库)
<dependency>
<groupId>com.taibai</groupId>
<artifactId>taibai-jdbc</artifactId>
<version>1.0.4</version>
</dependency>
- 仓库地址:
http://maven.tarzip.com/releases(Reposilite) - JDBC URL 格式:
jdbc:taibai://host:port/database, 支持ssl=require、connectTimeout、readTimeout等连接属性
try (Connection conn = DriverManager.getConnection(
"jdbc:taibai://localhost:5151/main", "root", "taibai");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(
"SELECT symbol, AVG(price) FROM ticks GROUP BY symbol")) {
while (rs.next()) {
System.out.println(rs.getString(1) + " " + rs.getDouble(2));
}
}
Go 驱动(taibai-go)
兼容 Go 标准 database/sql,同时提供面向高性能场景的原生 API:
DSN 直连(taibai://user:password@host:port/database)、服务端预处理语句、
事务、原生连接池、TLS、列式二进制批量导入、重试、健康检查与负载均衡。要求 Go 1.21+。
- 获取:
go get gitlab.tarzip.com/liutian/taibai-go(官方源码仓库,随源码分发) - 零第三方依赖,仅使用 Go 标准库
import (
"database/sql"
_ "gitlab.tarzip.com/liutian/taibai-go"
)
db, err := sql.Open("taibai", "taibai://root:taibai@127.0.0.1:5151/main")
rows, err := db.Query("SELECT symbol, price FROM ticks LIMIT 10")
选型建议
| 你的场景 | 推荐 |
|---|---|
| Java / 大数据生态(Spark、Flink、自研 Java 服务) | JDBC 驱动,连接池 + 批量插入都齐 |
| 数据分析、算法、脚本灌数 | Python 驱动(BulkImporter pipeline 吞吐优先) |
| Go 微服务、行情落地、日志采集端 | Go 驱动(database/sql 或原生 API) |
| 高性能服务端组件、嵌入式采集 | Rust(异步 + 连接池)或 C++(列式批量插入) |
| 不想写代码,想点开就用 | 桌面客户端 Taibai UI(图形界面) |