2 个版本
使用旧的 Rust 2015
0.1.1 | 2018年5月31日 |
---|---|
0.1.0 | 2018年4月15日 |
#2942 在 数据库接口
585KB
14K SLoC
Rincon 客户端
与 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存储引擎。因此,只能激活mmfiles
和rocksdb
特征之一,但不能同时激活。
注意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_client的cluster
特征。
[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许可
有关详细信息,请参阅LICENSE或http://www.apache.org/licenses/LICENSE-2.0。
贡献
除非您明确声明,否则您提交给工作的任何贡献,根据Apache-2.0许可证定义,应按上述方式许可,不附加任何额外条款或条件。
依赖项
~6MB
~155K SLoC