28 个版本 (12 个重大更新)
0.13.0 | 2024 年 7 月 19 日 |
---|---|
0.11.0 | 2024 年 2 月 29 日 |
0.8.0 | 2023 年 11 月 13 日 |
0.5.9 | 2023 年 7 月 18 日 |
0.5.3 | 2023 年 3 月 3 日 |
#311 在 网络编程
54 每月下载量
用于 3 crates
145KB
3.5K SLoC
Yggdrasil
Yggdrasil 是一个 Rust 项目,旨在使用单一语言创建 Unleash SDK 领域逻辑的核心。这个 crate 是将 Rust 逻辑提取为独立的 crate,以便可以在 Rust 应用程序中本地使用这个逻辑。这是一个非常实验性的 crate,因此如果您想将 Rust 应用程序连接到 Unleash,您应该使用官方的 Rust SDK,这里的 API 和哲学在稳定之前可能会更改。
在 Rust 项目中使用 Yggdrasil
Yggdrasil 的核心是 EngineState
结构体,这是一个非常轻量级的结构体,它本身几乎不做什么,它创建成本低,但您可能只需要/想要一个
let engine = EngineState::default();
在返回任何有用的信息之前,需要使用 Unleash 响应填充引擎。这里的数据形状应该与 Unleash 返回的响应相同,如果您想自己生成数据,可以查看 ClientFeatures
结构体的格式 这里。
let spec_data = "";// Some json blob, matching the Unleash format
let unleash_data: ClientFeatures = serde_json::from_str(&spec_data).unwrap();
engine.take_state(unleash_data);
现在您可以查询引擎以获取特定的切换
let context = InnerContext::default();
let enabled = engine.is_enabled("my-toggle-name", &context);
//Do something with the enabled state here
发布
cargosmart-release -u -b修补 unleash-yggdrasil
依赖项
~6–13MB
~139K SLoC