31个版本 (破坏性更新)
0.24.0 | 2024年1月10日 |
---|---|
0.23.2 | 2023年11月2日 |
0.23.1 | 2023年10月22日 |
0.23.0 | 2023年1月31日 |
0.4.0 | 2020年7月30日 |
#797 in 数据库接口
每月476次 下载
在 3 crates 中使用
435KB
9K SLoC
Rust Firebird客户端
一个用于 Firebird 的客户端库,用于 Rust 编程语言
如何使用
示例
目标
- Rust Api
- 与fbclient的动态链接
- 动态加载fbclient(.dll或.so)
- ARM支持
- Firebird嵌入式支持
lib.rs
:
Rust Firebird客户端
如何使用它
1. 首先选择你想要的lib版本
// To use the offcial ('native') Firebird client .dll/.so/.dylib
// (needs to find dll at build time)
rsfbclient::builder_native().with_dyn_link()
// Or using dynamic loading
rsfbclient::builder_native().with_dyn_load("/my/firebird/here/lib/libfbclient.so")
// Or using the pure rust implementation
rsfbclient::builder_pure_rust()
2. 设置你的连接参数
// For a remote server, using a dynamically linked native client
let mut conn = rsfbclient::builder_native()
.with_dyn_link()
.with_remote()
.host("my.host.com.br")
.db_name("awesome.fdb")
.connect()?
// Or if you need a embedded/local only access
let mut conn = rsfbclient::builder_native()
.with_dyn_link()
.with_embedded()
.db_name("/path/to/awesome.fdb")
.connect()?
你还可以选择一个字符串连接配置
// Using the native Firebird client
rsfbclient::builder_native()
.from_string("firebird://SYSDBA:[email protected]:3050/awesome.fdb?charset=ascii")
// Or using the pure rust implementation
rsfbclient::builder_pure_rust()
.from_string("firebird://SYSDBA:[email protected]:3050/awesome.fdb?charset=ascii")
3. 现在你可以使用这个库了
let rows = conn.query_iter("select col_a, col_b, col_c from test", ())?;
...
简单的连接/事务
有时你需要将 Connection 和 Transaction 类型存储在结构体字段中,而不必关心Firebird客户端的变体。为此,你可以使用 SimpleConnection 和 SimpleTransaction 类型。
要使用,只需要使用 From 特性,调用 into()
方法。示例
let mut conn: SimpleConnection = rsfbclient::builder_native()
.with_dyn_link()
.with_remote()
.host("my.host.com.br")
.db_name("awesome.fdb")
.connect()?
.into();
Cargo特性
如果需要,所有特性都可以同时使用。
链接
在运行时和编译时将使用官方 fbclient
的动态库。用于已经安装和配置了firebird客户端的系统。
动态加载
可以在运行时通过路径找到官方 fbclient
原生库,不需要在编译时使用库。当需要在未安装firebird客户端的系统上构建时很有用。
纯Rust
使用Firebird线协议的纯Rust实现,根本不需要原生库。对于交叉编译非常有用,允许单个二进制文件部署,无需安装Firebird客户端。
依赖
~8–15MB
~199K SLoC