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日 |
#1961 在 数据库接口
每月37次下载
用于 2 个Crates(通过 couchbase)
3.5MB
82K SLoC
Couchbase Rust SDK
这是官方社区支持的Couchbase Rust SDK的仓库。它目前正在开发中,并建立在 libcouchbase 之上。
要求
确保满足所有 libcouchbase 要求,以正确构建它。还需要满足 bindgen 要求。您需要一个版本号不小于或等于 1.77.2
的rust版本,因为此SDK大量使用 async/await
。
安装
[dependencies]
couchbase = "1.0.0-alpha.5"
用法
示例文件夹中有更多示例,但这里是一个基本的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 {} 代码块。慢慢呼吸,冷静下来,一切都会好起来的。我们使用不安全代码的原因是我们可以调用C库 libcouchbase
。唯一的非安全代码位于IO模块的lcb部分。因此,如果遇到段错误,很可能来自那里。我们正在努力将不安全代码保持在最小化,但根据其性质,它无处不在。我们还在开发一个没有不安全代码的纯Rust SDK(希望如此),但在此SDK发货并成熟之前,我们不得不忍受它。