#env-var #env #http-server #environment #settings #object

server-env-config

用于从环境变量中快速轻松设置HTTP服务器的工具类型和函数

2个版本

0.1.1 2023年8月30日
0.1.0 2023年8月27日

#830 in 配置


用于 actix-contrib-rest

MIT/Apache

20KB
192

server-env-config

从环境变量中快速轻松设置HTTP服务器的工具类型和函数(尽管您可以省略环境变量)。

一旦您拥有了包含服务器所需所有基本信息的Rust对象,如数据库连接(DATABASE_URL)、部署环境(APP_ENV)或启动应用程序的端口(PORT),您就可以使用结构对象来使用这些值启动Actix服务器、Rocket服务器或应用程序使用的任何服务器。

请查看https://docs.rs/server-env-config/的📖文档。

示例

use std::env;
use server_env_config::Config;
use server_env_config::env::Environment;

// Configurations should be actually set by the OS environment
env::set_var("APP_ENV", "production");  // if not set, "local" is the default
env::set_var("APP_URI", "api/v1");
env::set_var("PORT", "8080");
env::set_var("DATABASE_URL", "postgresql://user:pass@localhost/db");

let result = Config::init(9999);        // 9999 will be used if "PORT" is not set
assert!(result.is_ok());
let config = result.unwrap();
assert_eq!(config.env, Environment::Production);
assert_eq!(config.server.port, 8080);
assert_eq!(config.server.url, "http://127.0.0.1:8080/api/v1/");    // calculated field
assert_eq!(config.db.database_url, "postgresql://user:pass@localhost/db");
// Some settings have default values if env variables are not set
assert_eq!(config.db.min_connections, 1);
assert_eq!(config.db.max_connections, 10);
// The `to_string()` method prints out all variables in .env format
println!("{}", config.to_string());
// # APP_URL --> http://127.0.0.1:8080/api/v1/
// APP_URI="api/v1"
// HOST=127.0.0.1
// PORT=8080
// APP_ENV=production
// DATABASE_URL="postgresql://user:pass@localhost/db"
// MIN_CONNECTIONS=1

关于

项目主页: https://github.com/mrsarm/rust-actix-contrib-rest.

作者

  • Mariano Ruiz (mrsarm at gmail.com).

许可证

此项目根据以下任一许可证授权,由您选择

依赖项

~0.5–1MB
~23K SLoC