2 个版本 (1 个稳定版本)
1.0.0 | 2020年10月20日 |
---|---|
0.1.0 | 2020年10月20日 |
#1604 在 数据库接口
58KB
983 行
HarperDB 的 Rust 客户端
简介
HarperDB 是一个 SQL/NoSQL 数据管理平台。它全面索引,不重复数据,可在任何设备上运行——从边缘到云端。
它作为一个微服务集合原生前置构建,使得开发和集成变得简单且无缝。HarperDB 使用单个端点进行所有操作。HarperDB 的 RESTful 特性使其无状态、稳定且可扩展。
示例
依赖项
[dependencies]
tokio = { version = "0.2", features = ["full"] }
serde_json = "1.0"
基本用法
use harperdb_sdk_rust::{ HarperConfig, Harper };
use harperdb_sdk_rust as harper;
use serde::{Deserialize, Serialize};
use serde_json::{Value};
use std::{error::Error};
#[macro_use]
extern crate serde_json;
#[derive(Debug, Serialize, Deserialize)]
struct DogRecord {
id: usize,
name: String,
age: Option<usize>,
breed: Option<String>,
image: Option<String>,
__createdtime__: usize,
__updatedtime__: usize,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let config: HarperConfig = HarperConfig {
url: "http://0.0.0.0:9925/",
username: "HDB_ADMIN",
password: "password",
schema: "dev",
};
let harper_client = new(config);
// Insert Record
let insert_option: harper::QueryOptions = harper::QueryOptions {
table: "dog",
schema: "dev",
records:json!([{
"id": 1,
"name": "Incredible Metal Chair",
"breed": "Mutt",
"age": 4,
"image": "http://lorempixel.com/640/480/nature"
}]),
};
let result = harper_client.insert(insert_option).await?;
// Get Query Response
println!("{:#?}", result.status());
// Query Database
let result = harper_client.query("SELECT * FROM dev.dog limit 2",).await?;
let dog_record: Vec<DogRecord> = result.json().await?;
println!("{:#?}", dog_record);
// Get result as text
// let data = result.text().await?;
// println!("{:#?}", data);
}
测试环境设置
# Install database
docker run -d -p 9925:9925 -v <Host Directory Path>:/opt/harperdb/hdb/ harperdb/hdb
# Terrform database
./test_setup.sh
# Run Test
cargo test
# Clear Database
./test_teardown.sh
依赖项
~3–8MB
~178K SLoC