itconfig
Easy build a configs from environment variables and use it in globally.
We recommend you start with the documentation.
Installation
These macros require a Rust compiler version 1.31 or newer.
Add itconfig = { version = "1.0", features = ["macro"] } as a dependency in Cargo.toml.
Cargo.toml example:
[]
= "my-crate"
= "0.1.0"
= ["Me <user@rust-lang.org>"]
[]
= { = "1.0", = ["macro"] }
Example usage
use itconfig;
use env;
//use dotenv::dotenv;
config!
Macro is an optional feature, enabled by default. You can install itconfig without default features and use this lib as shown below
use *;
use env;
// use dotenv::dotenv;
Roadmap
- Add namespace for variables
- Custom env name
- Support feature config and other meta directives
- Add default value to env if env is not found
- Concat env variables to one variable
- Add nested namespaces
- Support meta for namespaces
- Support array type
- Rewrite to proc macro
- Support hashmap type
- Support custom env type
- Common configuration for namespace variables
Available features
- default - ["primitives"]
- macro - Activates
config!macros for easy configure web application. - array - Add EnvString impl for vector type (uses optional
serde_jsonpackage). - primitives - Group for features:
numbersandbool. - numbers - Group for features:
int,uintandfloat. - int - Group for features:
i8,i16,i32,i64,i128andisize. - uint - Group for features:
u8,u16,u32,u64,u128andusize. - float - Group for features:
f32andf64 - i8 - impl EnvString for
i8type - i16 - impl EnvString for
i16type - i32 - impl EnvString for
i32type - i64 - impl EnvString for
i64type - i128 - impl EnvString for
i128type - isize - impl EnvString for
isizetype - u8 - impl EnvString for
u8type - u16 - impl EnvString for
u16type - u32 - impl EnvString for
u32type - u64 - impl EnvString for
u64type - u128 - impl EnvString for
u128type - usize - impl EnvString for
usizetype - f32 - impl EnvString for
f32type - f64 - impl EnvString for
f64type - bool - impl EnvString for
booltype
License
[MIT] © Ice Temple
Contributors
pleshevskiy (Dmitriy Pleshevskiy) – creator, maintainer.