https://github.com/zonblade/mini-gateway-rs
run and gun dynamically configurable minimalistic proxy router, based on pingora from Cloudflare
https://github.com/zonblade/mini-gateway-rs
api api-gateway gateway-api proxy reverse-proxy rust-lang
Last synced: 4 months ago
JSON representation
run and gun dynamically configurable minimalistic proxy router, based on pingora from Cloudflare
- Host: GitHub
- URL: https://github.com/zonblade/mini-gateway-rs
- Owner: zonblade
- License: apache-2.0
- Created: 2025-03-27T04:11:18.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-06-05T06:28:41.000Z (4 months ago)
- Last Synced: 2025-06-13T11:59:30.559Z (4 months ago)
- Topics: api, api-gateway, gateway-api, proxy, reverse-proxy, rust-lang
- Language: Rust
- Homepage: https://gateway.rs
- Size: 11.1 MB
- Stars: 40
- Watchers: 3
- Forks: 8
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Mini Gateway
![]()
mini gateway
A very fast yet easy to control Gatway!## Architecture

The architecture of the mini-router is currently simple and straightforward, with support for Dragonfly and Redis. Looking ahead, there are plans to expand its capabilities to include support for:
- Kafka
- RabbitMQ
- Custom Message QueuesThis planned expansion aims to enhance the mini-router's versatility and effectiveness in diverse messaging environments.
## Architecture ROUTER CORE

> Incoming traffic enters from the internet and is first secured by the TLS/WSS proxy, which decrypts the data and passes it as TCP/HTTP/WS traffic (while you can disable the TLS if not needed). This standardized traffic is then processed by the Gateway, which dynamically determines whether to pass the request through a scripting plugin or directly to backend services. In parallel, a background mechanism constantly monitors for configuration changes. When updates are detected—via the Gateway API and an external update service—these are reloaded in memory to ensure the Gateway operates with the latest settings, all without interrupting the flow.
## Sub-repositories
Each sub-repository within this project is designed to be standalone. This means that they are independent modules and should be run separately. Ensure that you configure and execute each sub-repo according to its specific requirements and purpose. Refer to the documentation within each sub-repo for detailed setup and usage instructions.
### Sub-repository Overview
| Sub-repository | Description | Notes |
|----------------|-----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| `router-core` | Core proxy service responsible for handling traffic routing and forwarding. | Requires Redis/DragonflyDB for communication. Must run in a private/secure network. |
| `router-api` | Provides an API interface for managing and configuring the router. | Intended for internal use only. Not designed for external consumption. |
| `router-cli` | Command-line interface for interacting with and managing the router. | Useful for quick configuration and debugging. |
| `router-gui` | Graphical user interface for managing the router. | Designed for internal use. Should not be exposed to public networks. |## Connectivity and Network Requirements
- All of the applications are interconnected using Redis or DragonflyDB as the communication backbone. Ensure that a compatible instance of Redis or DragonflyDB is properly configured and accessible to all sub-repositories.
- The system must operate within a private and secure network. Exposing the applications or the database to public networks is not recommended and could lead to security vulnerabilities.
- The API or GUI provided by the system is intended strictly for internal use and is not designed for external consumption. Ensure that access is restricted to authorized users within the secure network.