2 个版本

使用旧的 Rust 2015

0.1.1 2018年5月31日
0.1.0 2018年4月15日

#2942数据库接口


4 个 Crates 中使用 (2 直接)

Apache-2.0

585KB
14K SLoC

Rincon 客户端

Crates.io Docs.rs Apache-2.0 Join the chat

与 ArangoDB REST API 类型安全的交互

rincon_client crate 提供了类型和函数,用于与 ArangoDB 服务器端的 REST API 交互。

rincon_client 中,REST 方法由结构体表示。使用所需的参数和数据实例化一个方法以获取方法调用。方法调用在由连接器提供的连接上对 ArangoDB 服务器执行。这种概念允许应用程序排队、分配或批量处理方法调用。

例如,将新文档插入现有集合看起来像这样

#[derive(Debug, Clone, Serialize, Deserialize)]
struct Customer {
    name: String,
    age: u8,
}

let customer = Customer {
    name: "Jane Doe".to_owned(),
    age: 42,
};

// create a new document with the customer struct as content
let new_document = NewDocument::from_content(customer);

// create the method call to insert new_document into the 'customers' collection.
let method = InsertDocument::new("customers", new_document);

// execute the method call
let document = core.run(connection.execute(method)).unwrap();

ArangoDB 的 REST API 包含许多方法。目前实现的方法概述可以在这里找到 here

rincon_client crate 是 Rincon ArangoDB Rust 驱动项目的一部分 Rincon ArangoDB Rust driver project

用法

crate 功能

rincon_client crate 可以编译带有可选功能以适应要使用的 ArangoDB 服务器配置。这些可选功能支持方法调用及其结果上的特定于相关 ArangoDB 配置的属性。

提供的 crate 功能包括

  • mmfiles : 支持特定于 MMFiles 存储引擎的属性(可选)
  • rocksdb : 支持特定于 RocksDB 存储引擎的属性(可选)
  • cluster : 支持特定于集群的属性(可选)
  • enterprise : 支持特定于 ArangoDB 的属性(可选)

注意1:已部署的ArangoDB服务器使用MMFiles或RocksDB存储引擎。因此,只能激活mmfilesrocksdb特征之一,但不能同时激活。

注意2:如果rincon_client编译时启用了cluster特征,一些返回特定于集群字段的API方法将无法在未配置为集群的ArangoDB服务器上工作。这是由于ArangoDB服务器在单个服务器配置中不返回特定于集群的字段。

如果应用程序不需要访问与特征相关的属性,则没有必要激活任何可选的crate特征。

示例

使用MMFiles存储引擎

如果您想使用与MMFiles相关的属性,并且ArangoDB服务器配置为使用MMFiles存储引擎,则rincon_client可以编译带有mmfiles特征的版本以支持API方法中的MMFiles特定属性和字段。

[dependencies]
rincon_client = { version = "0.1", features = ["mmfiles"] }

使用RocksDB存储引擎

如果ArangoDB服务器配置为使用RocksDB存储引擎,则rincon_client可以编译带有rocksdb特征的版本以支持API方法中的RocksDB特定属性和字段。

[dependencies]
rincon_client = { version = "0.1", features = ["rocksdb"] }

使用ArangoDB集群

要使用API的ArangoDB集群特定功能,必须启用rincon_clientcluster特征。

[dependencies]
rincon_client = { version = "0.1", features = ["cluster"] }

使用ArangoDB企业功能

要在客户端API中添加对ArangoDB企业功能的支持,请将以下内容添加到依赖项中

[dependencies]
rincon_client = { version = "0.1", features = ["enterprise"] }

使用带有企业功能的ArangoDB集群

可选功能可以组合使用,但一次只能启用一个存储引擎功能。

要使用企业、集群和MMFiles特定功能,请将以下内容添加到依赖项中

[dependencies]
rincon_client = { version = "0.1", features = ["mmfiles", "enterprise", "cluster"] }

要使用企业、集群和RocksDB特定功能,请将以下内容添加到依赖项中

[dependencies]
rincon_client = { version = "0.1", features = ["rocksdb", "enterprise", "cluster"] }

连接器和核心类型

在任何情况下,我们还需要一个连接器,如由rincon_connector crate提供的连接器,以及一些在rincon_core crate中定义的类型。这意味着我们需要添加额外的依赖项

[dependencies]
rincon_core = "0.1"
rincon_connector = "0.1"
# plus dependency as explained above
rincon_client = "0.1" 

许可证

Apache License,版本2.0许可
有关详细信息,请参阅LICENSEhttp://www.apache.org/licenses/LICENSE-2.0

贡献

除非您明确声明,否则您提交给工作的任何贡献,根据Apache-2.0许可证定义,应按上述方式许可,不附加任何额外条款或条件。

依赖项

~6MB
~155K SLoC