#pkl #apple #configuration-language #codegen #derive-deserialize

rpkl

为Apple的Pkl配置语言提供的绑定和代码生成

4个版本 (2个重大变更)

0.3.1 2024年8月5日
0.3.0 2024年7月23日
0.2.0 2024年7月18日
0.1.0 2024年6月28日

#219配置

Download history 116/week @ 2024-06-27 6/week @ 2024-07-04 181/week @ 2024-07-18 58/week @ 2024-07-25 156/week @ 2024-08-01 28/week @ 2024-08-08 17/week @ 2024-08-15

291 每月下载量
2 crates 中使用

MIT 协议

87KB
2.5K SLoC

rpkl

crates.io docs.rs

为Rust的Pkl语言提供语言绑定。

需要在您的路径上可用pkl二进制文件。您可以使用他们的文档中的步骤为您的操作系统安装pkl: https://pkl-lang.org/main/current/pkl-cli/index.html#installation

用法

ip = "127.0.0.1"

database {
    username = "admin"
    password = "secret"
}
#[derive(Deserialize)]
struct Config {
    ip: String,
    database: Database,
}

#[derive(Deserialize)]
struct Database {
    username: String,
    password: String,
}

let config: Config = rpkl::value_from_config("./config.pkl")?;

代码生成

基本功能正常,但仍处于开发中。如果您想尝试它,可以启用 codegen 功能。

let mut evaluator = rpkl::evaluator::Evaluator::new()?;
let pkl_mod = evaluator.evaluate_module(PathBuf::from("./config.pkl"))?;
pkl_mod.codegen()?;

依赖项

~0.9–7.5MB
~55K SLoC