Files
odboy f63bcfa78b feat: 新增 C++ 和 Rust 客户端 SDK 及 Docker 构建支持
- 新增 kenaito-conf-cpp-client / kenaito-conf-rust-client 及对应 demo
- 新增 Dockerfile.cpp / Dockerfile.rust
- README 目录结构补充 C++/Rust 客户端
- README_DOCKERFILE 补充 Windows docker run 命令,新增 C++/Rust 段落
2026-08-11 21:14:04 +08:00

2.5 KiB

Kenaito Config Center Rust Client

Rust 客户端 SDK,适用于 Rust 2021 edition 项目。

功能特性

  • 从配置中心拉取应用配置
  • 定时同步配置变更
  • 支持配置变更回调监听
  • 本地文件缓存(配置中心不可用时降级)

依赖

  • Rust 2021 edition
  • reqwest (HTTP 客户端)
  • serde / serde_json (JSON 处理)

使用

在你的 Cargo.toml 中添加:

[dependencies]
kenaito-conf-client = { path = "../kenaito-conf-rust-client" }
use kenaito_conf_client::{Config, Client};

fn main() {
    let config = Config {
        base_url: "http://localhost:8080".to_string(),
        app_name: "my-app".to_string(),
        env: "daily".to_string(),
        sync_interval: 10,
        cache_dir: ".".to_string(),
        ..Default::default()
    };

    let client = Client::new(config);

    // 监听配置变更
    client.on_change(|changed| {
        println!("Config changed:");
        for (k, v) in changed {
            println!("  {} = {}", k, v);
        }
    });

    // 启动客户端
    if let Err(e) = client.start() {
        eprintln!("Failed to start: {}", e);
        return;
    }

    // 获取配置
    let db_host = client.get("database.host");
    println!("database.host = {}", db_host);

    // 获取所有配置
    let all = client.get_all();
    for (k, v) in &all {
        println!("{} = {}", k, v);
    }

    // 手动同步
    client.sync_once();

    // 停止
    client.stop();
}

配置项

参数 类型 说明 默认值
base_url String 配置中心地址 http://localhost:8080
app_name String 应用名称 (必填)
env String 环境标识 dev
version String 配置版本 latest
token String 应用 Token 空
sync_interval u64 同步间隔(秒) 60
ignore_global bool 忽略全局配置 false
cache_dir String 缓存目录 .

Demo

cd kenaito-conf-rust-client-demo
cargo run

环境变量

Demo 支持以下环境变量:

变量名 说明 默认值
KENAITO_BASE_URL 配置中心地址 http://localhost:8080
KENAITO_APP_NAME 应用名称 kenaito-springboot-demo
KENAITO_ENV 环境标识 daily
KENAITO_VERSION 配置版本 latest
KENAITO_TOKEN 应用 Token 空
KENAITO_SYNC_INTERVAL 同步间隔(秒) 10
KENAITO_CACHE_DIR 缓存目录 .