#env-var #cf #parser #cloud-foundry #cf-for-k8s

cf-env

解析Cloud Foundry环境变量及其类型的Crate。帮助你摆脱样板代码,专注于真正需要编码的内容。

8个版本

0.1.9 2024年2月13日
0.1.8 2022年8月3日
0.1.7 2022年7月21日
0.1.6 2022年2月18日
0.1.3 2021年12月9日

#125 in 配置

每月49次下载

MIT/Apache

44KB
989

Cloud Foundry环境

codecov Crates.io

Open in Gitpod

一个小型库,让您能够快速使用Cloud Foundry环境的类型化环境变量。

目标

  • 移除使用cf的项目中的样板代码
  • 利用Rust的强大功能以类型化的方式获取环境变量
  • 为您提供定义自定义值(如凭据结构)的灵活性,以满足您的需求

使用方法

将此Crate添加到依赖项即可轻松获取。

[dependencies]
cf-env = "0.1.7"

之后,只需检查您需要的内容并获取它,您还可以查看docs.rs页面。例如CF_INSTANCE_INDEX

let instance_index = cf_env::get_instance_index().unwrap();

或者例如,如果您需要获取一些凭据

use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
pub struct CustomCredentials {
    pub password: String,
    pub username: String,
    pub host: String,
    pub port: u16,
}

// After that you can use it
let service = cf_env::get_service_by_name::<CustomCredentials>("my_db").unwrap();

如果您无论如何都要解析它并处理来自serde_jsonValue枚举,则不需要类型化的凭据。

use serde_json::Value;
use cf_env::Service;

let service: Service<Value> = cf_env::get_service_by_name("my_db").unwrap();

let uri = service.credentials["uri"].as_str().unwrap();

依赖项

~3.5–5.5MB
~101K SLoC