https://github.com/rawsashimi1604/sushi-gateway
Lightweight and modular layer 7 open-sourced API gateway.
https://github.com/rawsashimi1604/sushi-gateway
api api-gateway docker docker-compose golang http http-server layer7 open-source
Last synced: 11 months ago
JSON representation
Lightweight and modular layer 7 open-sourced API gateway.
- Host: GitHub
- URL: https://github.com/rawsashimi1604/sushi-gateway
- Owner: rawsashimi1604
- License: mit
- Created: 2024-01-19T02:24:06.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-03T08:36:44.000Z (about 1 year ago)
- Last Synced: 2025-07-07T07:03:46.412Z (11 months ago)
- Topics: api, api-gateway, docker, docker-compose, golang, http, http-server, layer7, open-source
- Language: Go
- Homepage: https://rawsashimi1604.github.io/sushi-gateway/
- Size: 17.8 MB
- Stars: 35
- Watchers: 2
- Forks: 2
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Roadmap: ROADMAP.md
Awesome Lists containing this project
README
    
**Sushi Gateway** is a lightweight and extensible Layer 7 API Gateway designed to empower developers with seamless control, robust security, and dynamic adaptability.
By providing functionality such as routing, load balancing, authentication, and plugins, Sushi Gateway enables effortless orchestration of microservices and APIs.
---
[Installation Guide](https://rawsashimi1604.github.io/sushi-gateway/getting-started/docker.html) | [Documentation](https://rawsashimi1604.github.io/sushi-gateway/docs-home.html) | [Releases](https://github.com/rawsashimi1604/sushi-gateway/releases)
---
## Roadmap
See the [Roadmap](ROADMAP.md) for more information on the project's future direction.
## Features
- **Dynamic Routing**: Route traffic efficiently with support for dynamic paths and advanced match criteria.
- **Plugin System**: Extend functionality with modular plugins for security, rate limiting, logging, and more.
- **Load Balancing**: Built-in strategies like round robin, weighted (in progress), and IP hash.
- **Declarative Configuration**: Use declarative JSON configurations to configure the gateway.
- **Secure API Management**: Features such as Mutual TLS, API key authentication, and JWT support.
- **Lightweight & Efficient**: Optimized for speed and scalability with a minimal footprint.
## Quick Start
View our quick start guide using Docker [here](https://rawsashimi1604.github.io/sushi-gateway/getting-started/docker.html).
## Plugins
Sushi Gateway offers a wide range of plugins to enhance functionality, including:
| Plugin Name | Description |
| ------------------------ | ------------------------------------- |
| **Rate Limit** | Limit requests per user/service. |
| **CORS** | Enable cross-origin resource sharing. |
| **JWT Authentication** | Secure APIs with JWT tokens. |
| **Basic Authentication** | Simplify API access control. |
| **Bot Protection** | Block malicious user agents. |
Explore all available plugins in the **[Plugins Documentation](https://rawsashimi1604.github.io/sushi-gateway/plugins)**.
## Contributing
We ❤️ contributions! Check out the [Contributing Guide](CONTRIBUTING.md) to get started.
- **Join the Community**: Share feedback and ask questions in our [Discussions](https://github.com/rawsashimi1604/sushi-gateway/discussions).
- **Chat on Discord**: Collaborate and discuss on our [Discord Channel](https://discord.gg/aPv4QhQ6).
- **Report Issues**: Open issues directly in the [GitHub repository](https://github.com/rawsashimi1604/sushi-gateway/issues).
[sushi-url]: https://rawsashimi1604.github.io/sushi-gateway/
## Building Sushi Gateway
- Ensure you have Go installed with at least version 1.22.
- Look up the [Quick Start](https://rawsashimi1604.github.io/sushi-gateway/getting-started/docker.html) guide to get the config file, certs and keys required for the gateway to run.
- Create the certs and keys required for the gateway to run.
- Create the config file for the gateway to run.
- Build and run the gateway using the following commands:
- `go run cmd/main.go`
- To run tests use the following command:
- `go test ./...`
- Use the `docker-compose.yml` file to quickly start up dev servers to test proxy
- `docker compose up -d`