45 个版本
0.10.1 | 2024年5月6日 |
---|---|
0.10.0 | 2024年3月22日 |
0.9.4 | 2023年11月15日 |
0.9.2 | 2023年3月10日 |
0.8.25 | 2020年11月16日 |
#69 在 数据库接口 中
2,558 每月下载
用于 couch_rs_test
165KB
3K SLoC
CouchDB 的 Rust 库
文档
安装
在 Cargo.toml 文件中包含此依赖项
[dependencies]
couch_rs = "0.9"
描述
此 crate 是 CouchDB HTTP REST API 的接口。与稳定 Rust 兼容。
此库是基于 Mathieu Amiot 和 Yellow Innovation 团队在 Sofa 库上所做的出色工作而衍生出来的。原始项目可以在 https://github.com/YellowInnovation/sofa 找到
Sofa 库不支持异步 I/O,并且缺少我们在项目中需要的一些基本操作。因此,我决定基于原始 Sofa 代码创建一个新项目。
rust-rs 库已更新到 Rust 2018 版本标准,使用异步 I/O,并针对最新的 serde 和 reqwest 库进行编译。
尚未是 1.0 版本,因此请期待变化
支持 CouchDB 2.3.0 及以上版本。已与包括 3.2.2 在内的各种 CouchDB 版本在生产中使用。
请务必详细查看 CouchDB 的文档,以了解可能的功能。
用法
一个典型的查找操作看起来像这样
use couch_rs::types::find::FindQuery;
use std::error::Error;
use serde_json::Value;
use couch_rs::document::DocumentCollection;
const DB_HOST: &str = "https://127.0.0.1:5984";
const TEST_DB: &str = "test_db";
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let client = couch_rs::Client::new(DB_HOST, "admin", "password")?;
let db = client.db(TEST_DB).await?;
let find_all = FindQuery::find_all();
let docs = db.find_raw(&find_all).await?;
Ok(())
}
示例
您可以使用以下命令启动包含的示例
cargo run --example basic_operations
运行测试
确保您有一个运行中的 CouchDB 2.0+ 实例,无论是通过提供的 docker-compose.yml
文件还是自行运行。它必须监听默认端口。由于 Couch 3.0,"Admin Party" 模式不再受支持。这意味着您需要在启动时提供用户名和密码。测试和示例假设有一个名为 "admin" 的 CouchDB 用户和一个名为 "password" 的 CouchDB 密码。Docker 运行命令
docker run --rm -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password couchdb:3
然后 cargo test --features=integration-tests -- --test-threads=1
将测试单线程化非常重要,因为我们需要在实际上测试 db/documents 的功能之前确保基本功能正常工作。
如果您的环境中可用bash,您还可以使用test.sh
脚本,该脚本基本上与上面描述的相同。
许可证
以下任一许可证下授权
- Apache License, Version 2.0, (LICENSE-APACHE或https://www.apache.org/licenses/LICENSE-2.0
- MIT许可证 (LICENSE-MIT或https://opensource.org/licenses/MIT)
免责声明
请注意:本存储库中所有内容均按“原样”发布,不提供任何类型的保证,包括但不限于它们的安装、使用或性能。我们放弃任何明示或暗示的保证,包括但不限于不侵权、适销性和/或适用于特定目的的保证。我们不保证该技术将满足您的需求,其操作将不间断或无错误,或错误将得到纠正。
您使用此库的风险自负。我们无法保证它在类似环境中经过彻底测试,我们不承担任何使用过程中产生的任何损坏或数据丢失的责任。
您有责任在使用任何非测试环境之前,彻底审查和测试您运行的任何代码。
依赖项
~6–21MB
~340K SLoC