5 个版本

0.1.4 2024年7月21日
0.1.3 2024年7月21日
0.1.2 2024年4月19日
0.1.1 2024年4月18日
0.1.0 2024年4月18日

#307配置

Download history 206/week @ 2024-04-19 2/week @ 2024-04-26 1/week @ 2024-05-24 3/week @ 2024-06-28 11/week @ 2024-07-05 230/week @ 2024-07-19 67/week @ 2024-07-26 6/week @ 2024-08-02

303 每月下载

MIT 许可证

18KB
202

Storus

一个库,通过抽象低级通信协议(REST/gRPC),简化了 Rust 开发者使用 StooKV 作为其配置管理工具时的生活。

Crates.io Documentation MIT licensed

用法

要使用 storus,将依赖项包含在您的 Cargo.toml

[dependencies]
storus = "0.1.4"

然后,将此添加到您的 crate 中

use storus::stoo::Stoo;
use storus::stoo_config::StooConfig;

fn main() {
    // ...
}

示例

使用最小配置创建 stoo 客户端

use storus::stoo::Stoo;
use storus::stoo_config::StooConfig;

#[tokio::main]
async fn main() {
    let config = StooConfig::from("http://127.0.0.1:50051");
    let mut stookv = Stoo::new(config).await;
}

使用扩展配置创建 stoo 客户端

use crate::stoo::Stoo;
use crate::stoo_config::StooConfig;

#[tokio::main]
async fn main() {
    let config = StooConfig::from("http://127.0.0.1:50051")
        .response_timeout(Duration::from_millis(20000))
        .connect_timeout(Duration::from_millis(1000))
        .default_namespace("my-app")
        .default_profile("prod")
        .ca_certificate("/tmp/ca_cert.pem")
        .domain("x.test.example.com");
    let mut stookv = Stoo::new(config).await;
}

完整示例

use storus::stoo::Stoo;
use storus::stoo_config::StooConfig;

#[tokio::main]
async fn main() {
    let config = StooConfig::from("http://127.0.0.1:50051");
    let mut stookv = Stoo::new(config).await;

    //set value to a key
    let result1 = stookv.set("my-app", "prod", "database.username", "admin3").await.unwrap();
    println!("result1: {}", result1);

    //get value from key
    let result2 = stookv.get("my-app", "prod", "database.username").await.unwrap();
    println!("result2: {}", result2);

    //get all key value pairs by from a given namespace and profile
    let result3 = stookv.get_all_by_namespace_and_profile("my-app", "prod").await.unwrap();
    println!("result3: {:?}", result3);

    //get a value from default namespace and profile as initially specified
    let result4 = stookv.get_default("database.username").await.unwrap();
    println!("result4: {}", result4);

    //set secret key
    let result5 = stookv.set_secret("my-app", "prod", "database.password", "qwerty@1234").await.unwrap();
    println!("result5: {}", result5);
}

许可证

该项目根据 MIT 许可证 许可。

贡献

除非您明确说明,否则您提交给 Storus 的任何有意贡献都将根据 MIT 许可证许可,无需任何附加条款或条件。

依赖项

~45MB
~800K SLoC