typenv alternatives and similar packages
Based on the "Configuration" category.
Alternatively, view typenv alternatives based on common mentions on social networks and blogs.
-
koanf
Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. -
konfig
Composable, observable and performant config handling for Go for the distributed processing era -
gookit/config
📝 Go configuration manage(load,get,set,export). support JSON, YAML, TOML, Properties, INI, HCL, ENV and Flags. Multi file load, data override merge, parse ENV var. Go应用配置加载管理,支持多种格式,多文件加载,远程文件加载,支持数据合并,解析环境变量名 -
gcfg
read INI-style configuration files into Go structs; supports user-defined types and subsections -
goConfig
DISCONTINUED. goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. -
joshbetz/config
🛠 A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. -
configuro
An opinionated configuration loading framework for Containerized and Cloud-Native applications. -
hocon
go implementation of lightbend's HOCON configuration library https://github.com/lightbend/config -
configure
Configure is a Go package that gives you easy configuration of your project through redundancy -
Genv
Genv is a library for Go (golang) that makes it easy to read and use environment variables in your projects. It also allows environment variables to be loaded from the .env file. -
swap
Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env).
InfluxDB high-performance time series database

Do you think we are missing an alternative of typenv or a related project?
Popular Comparisons
README
Typenv
Typenv is a minimalistic, zero dependency, typed environment variables library. It does support the following types:
- Bool
- Duration
- Float64
- Float32
- Int64
- Int32
- Int8
- Int
- String
Why typenv?
Handling environment variables in other type than strings or even handling fallback values is not a simple task, typenv makes easy to handle string, boolean, integer, float and time duration environment variables and also allows you to easily set default values for then.
How to use it
Basic usage
Go get the library:
go get diegomarangoni.dev/typenv
And use it:
if typenv.Bool("DEBUG") {
// do something
}
If the environment is NOT set, the zero value of the type will return, in this case false
.
With default value
You can fallback to a default value in case the environment variable is not set.
if typenv.Bool("DEBUG", true) {
// do something
}
If the environment is NOT set, the return value will be true
.
With global default value
You can also set a global default value for a environment. Useful when you use the same environment with same default value several times.
func init() {
typenv.SetGlobalDefault(
typenv.E(typenv.Bool, "DEBUG", true),
)
}
...
if typenv.Bool("DEBUG") {
// do something
}
If the environment is NOT set, the return value will be true
.
Overriding global default value
You still can override the global default value by setting a local default.
func init() {
typenv.SetGlobalDefault(
typenv.E(typenv.Bool, "DEBUG", true),
)
}
...
if typenv.Bool("DEBUG", false) {
// do something
}
If environment is NOT set, the return value will be false
, even if global default is telling that is true
.
<!-- go test -coverprofile coverage.out && go tool cover -html=coverage.out -o coverage.html -->