#unleash #sdk #domain #experimental #extracted #yggdrasil #own

unleash-yggdrasil

这是将 Unleash SDK 领域逻辑提取为库,以方便在任何地方构建自己的 Unleash SDK

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网络编程

Download history 35/week @ 2024-04-29 25/week @ 2024-05-06 24/week @ 2024-05-13 29/week @ 2024-05-20 7/week @ 2024-05-27 13/week @ 2024-06-03 47/week @ 2024-06-10 22/week @ 2024-06-17 9/week @ 2024-07-01 58/week @ 2024-07-08 157/week @ 2024-07-15 23/week @ 2024-07-22 10/week @ 2024-07-29 10/week @ 2024-08-05 8/week @ 2024-08-12

54 每月下载量
用于 3 crates

MIT 许可证

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