Easy-Gateway
Lightweight API Gateway for microservices architectures.
Current status: Early MVP – functional, but expect rough edges.
Features (MVP)
- YAML-based configuration, zero code changes for routing
- Prefix & exact path routing
- Redis-backed per-route caching with automatic invalidation on mutations
- Built-in middleware: rate limiting, request logging
- CORS support
- Simple admin panel with Basic Auth
- CLI tool:
easy-gateway
Quick Start
pip install easy-gateway
Create a minimal gateway.yaml:
server:
host: "0.0.0.0"
port: 8000
routes:
- path: "/api/*"
target: "https://httpbin.org"
middlewares:
- name: "LoggingMiddleware"
enabled: true
Start the gateway:
easy-gateway -c gateway.yaml
Requests to http://localhost:8000/api/anything are now proxied to https://httpbin.org/anything.
Run with Docker
Build the image and run the gateway:
docker build -t easy-gateway .
docker run -p 8000:8000 \
-e CONFIG_PATH=example_config.yaml \
easy-gateway
The config path is controlled by the CONFIG_PATH env var (defaults to /easy-gateway/easy_conf.yaml). If the file is missing, the gateway reports it on startup.
Documentation
Full configuration reference, caching details, admin panel usage, and production examples are in the Wiki.
Requirements
- Python 3.12+
- Redis (optional, only required for caching)
Contributing
This project is in early development. Issues, suggestions, and pull requests are welcome.
License
MIT
Release files for easy-gateway 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| easy_gateway-0.2.0.tar.gz | 17.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| easy_gateway-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.1 kB
Release files / easy_gateway-0.2.0.tar.gz
| Download URL | easy_gateway-0.2.0.tar.gz |
|---|---|
| Size | 17.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e20f272345f253b97f787cc783f3951f19fbd9cd6263aca3689324bb0da40df5
|
|
BLAKE2b-256 checksum How to use checksums |
b2420dff75a04b4528b1db707c27d38693cea1703f85f5d48baa3974bb2e8cec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / easy_gateway-0.2.0-py3-none-any.whl
| Download URL | easy_gateway-0.2.0-py3-none-any.whl |
|---|---|
| Size | 14.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06f56896a673817d09c36411aa59d938bfc0d34050977c98d67b8a2a5cc9d51d
|
|
BLAKE2b-256 checksum How to use checksums |
15e9a059873540b3743f8d67bcf4690dc06cf894c0b942c81356ce1fc9765daf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|