8 个版本 (2 个重大变更)
1.0.0-alpha.4 | 2020年8月26日 |
---|---|
1.0.0-alpha.3 | 2020年2月4日 |
1.0.0-alpha.2 | 2019年6月9日 |
1.0.0-alpha.1 | 2019年5月12日 |
0.1.1 | 2017年1月30日 |
#1112 in 数据库接口
每月 28 次下载
用于 kcore
1MB
25K SLoC
Couchbase Rust SDK
这是官方、社区支持的 Couchbase Rust SDK 的仓库。它目前正在开发中,并基于 libcouchbase 构建。
要求
确保满足所有 libcouchbase 要求以正确构建。还需要满足 bindgen 要求。您需要 rust 版本为 1.77.2 或更高版本,因为此 SDK 严重使用了 async/await
。
安装
[dependencies]
couchbase = "1.0.0-alpha.5"
用法
在 examples
文件夹中还有更多示例,但这里是一个基本的 kv 操作入门示例
pub fn main() {
// Connect to the cluster with a connection string and credentials
let cluster = Cluster::connect("couchbase://127.0.0.1", "Administrator", "password");
// Open a bucket
let bucket = cluster.bucket("travel-sample");
// Use the default collection (needs to be used for all server 6.5 and earlier)
let collection = bucket.default_collection();
// Fetch a document
match block_on(collection.get("airline_10", GetOptions::default())) {
Ok(r) => println!("get result: {:?}", r),
Err(e) => println!("get failed! {}", e),
};
// Upsert a document as JSON
let mut content = HashMap::new();
content.insert("Hello", "Rust!");
match block_on(collection.upsert("foo", content, UpsertOptions::default())) {
Ok(r) => println!("upsert result: {:?}", r),
Err(e) => println!("upsert failed! {}", e),
};
}
示例
更多示例可以在 examples
文件夹中找到。如果某些示例不存在或无法展示您需要的内容,请提交一个工单。
不安全代码
此代码包含 unsafe {} 代码块。深呼吸,冷静下来,一切都会好起来的。我们使用不安全代码的原因是可以调用 libcouchbase
,这是一个 C 库。唯一的不安全代码位于 IO 模块的 lcb 部分。因此,如果您遇到段错误,它很可能是从这里来的。我们正在努力将不安全代码保持在最低限度,但由于其本质,它无处不在。我们还在努力开发一个没有不安全代码的纯 Rust SDK(希望如此),但在它发货并成熟之前,我们必须忍受这个。
依赖
~5.5–9MB
~178K SLoC