2 个版本 (1 个稳定版本)

1.0.0 2020年10月20日
0.1.0 2020年10月20日

#1604数据库接口

MIT 许可证

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