envier
Python application configuration via the environment
Install
envier on PyPI
pip
pip install envieruv
uv add envierpoetry
poetry add envierPackage facts
| License | MIT License Copyright (c) 2022 Datadog, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 660 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: envier-0.6.1-py3-none-any.whl
About envier
from the package's own PyPI description — quoted content, verbatim
<h1 align="center">Envier</h1> <h2 align="center">Python application configuration from the environment</h2>
Synopsis
Envier is a Python library for extracting configuration from environment variables in a declarative and (eventually) 12-factor-app-compliant way.
Usage
The following example shows how to declare the configuration for an application
that uses the MYAPP_DEBUG, MYAPP_SERVICE_HOST and MYAPP_SERVICE_PORT
variables from the environment.
>>> from envier import Env
>>>
>>> class GlobalConfig(Env):
>>> __prefix__ = "myapp"
>>>
>>> debug_mode = Env.var(bool, "debug", default=False)
>>>
>>> service_host = Env.var(str, "service.host", default="localhost")
>>> service_port = Env.var(int, "service.port", default=3000)
>>>
>>> _is_default_port = Env.der(bool, lambda c: c.service_port == c.spec.service_port.default)
>>>
>>> config = GlobalConfig()
>>> config.service_port
3000
>>> config._is_default_port
True
Configurations can also be nested to create namespaces:
~~~ python >>> from envier import Env >>> >>> class ServiceConfig(Env): >>> prefix = "service" >>> >>> host = Env.var(str, "host",...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Envier extracts application configuration from environment variables using a declarative class-based syntax, supporting type conversion, nested namespaces, and derived fields.
No runtime dependencies and a pure-Python wheel distribution keep installation friction minimal. The project is actively maintained with recent commits and supports Python 3.7–3.13.
Licensed under the MIT License (permissive), allowing free use, modification, and distribution with minimal restrictions.
Usage
pip install envier
from envier import Env
class Config(Env):
__prefix__ = "myapp"
debug = Env.var(bool, "debug", default=False)
port = Env.var(int, "port", default=3000)
config = Config()
print(config.port)
Verdict: Envier is a lightweight, actively maintained configuration library with zero runtime dependencies, permissive licensing, and broad Python version support. It is well-suited for 12-factor-compliant applications that need declarative environment-variable binding with type safety.
Needs verification
- Whether the mypy plugin (mentioned in docs) is bundled or requires separate installation beyond the optional extra
- Performance characteristics when dealing with deeply nested configuration hierarchies
Similar packages
permissive · top 1,000 on PyPI
Flask-Limiterpermissive · top 1,000 on PyPI
litellmpermissive · top 100 on PyPI
pytest-envpermissive · top 1,000 on PyPI
postgrestpermissive · top 1,000 on PyPI
platformdirspermissive · top 100 on PyPI
strands-agentspermissive · top 1,000 on PyPI
xmltodictpermissive · top 1,000 on PyPI
dacitepermissive · top 1,000 on PyPI
pdfminer.sixpermissive · top 1,000 on PyPI