2个版本
0.1.1 | 2023年8月30日 |
---|---|
0.1.0 | 2023年8月27日 |
#830 in 配置
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).
许可证
此项目根据以下任一许可证授权,由您选择
- Apache许可证2.0版本,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/mit)
依赖项
~0.5–1MB
~23K SLoC