#couch-db #nosql #orm

couch_rs_derive

Rust的CouchDB库

28个版本

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日

#9 in #couch-db

Download history 892/week @ 2024-05-03 1253/week @ 2024-05-10 1102/week @ 2024-05-17 958/week @ 2024-05-24 1336/week @ 2024-05-31 1330/week @ 2024-06-07 983/week @ 2024-06-14 1017/week @ 2024-06-21 1160/week @ 2024-06-28 1129/week @ 2024-07-05 894/week @ 2024-07-12 765/week @ 2024-07-19 898/week @ 2024-07-26 559/week @ 2024-08-02 414/week @ 2024-08-09 377/week @ 2024-08-16

2,362 每月下载量
couch_rs 中使用

MIT/Apache

8KB

Rust的CouchDB库

Crates.io docs.rs Build License dependency status Downloads

文档

这里: http://docs.rs/couch_rs

安装

在Cargo.toml文件中包含此依赖项

[dependencies]
couch_rs = "0.9"

描述

此包是CouchDB HTTP REST API的接口。适用于稳定版Rust。

此库是基于Yellow Innovation的Mathieu Amiot和其他人基于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

单线程测试非常重要,因为我们需要确保在实际上测试dbs/documents的功能之前,基本功能正在正常工作。

如果您的环境中提供了bash,您还可以使用test.sh脚本,它基本上与上面描述的相同。

许可证

根据以下任一许可证授权

免责声明

请注意:本存储库中的所有内容均以“原样”形式发布,不提供任何类型的保证,包括但不限于它们的安装、使用或性能。我们放弃任何和所有明示或暗示的保证,包括但不限于任何不侵权、适销性、或/和特定目的适用性的保证。我们不保证该技术将满足您的需求,其操作将不间断或无错误,或任何错误都将得到纠正。

使用此库的风险由您自行承担。我们无法保证它已在可比较的环境中经过彻底测试,并且我们不承担使用过程中造成的任何损害或数据丢失的责任。

您在使用任何非测试环境之前,应彻底审查和测试您运行的任何代码。

依赖项

~275–730KB
~17K SLoC