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 - ["macro", "primitives", "static"]
- 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 i8 type
- i16 - impl EnvString for i16 type
- i32 - impl EnvString for i32 type
- i64 - impl EnvString for i64 type
- i128 - impl EnvString for i128 type
- isize - impl EnvString for isize type
- u8 - impl EnvString for u8 type
- u16 - impl EnvString for u16 type
- u32 - impl EnvString for u32 type
- u64 - impl EnvString for u64 type
- u128 - impl EnvString for u128 type
- usize - impl EnvString for usize type
- f32 - impl EnvString for f32 type
- f64 - impl EnvString for f64 type
- bool - impl EnvString for bool type
License
[MIT] © Ice Temple
Contributors
pleshevskiy (Dmitriy Pleshevskiy) – creator, maintainer.