Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/diocrafts/flusso
Flusso: A secure, high-performance API Gateway + Ingress Controller for Kubernetes, written in Rust.
https://github.com/diocrafts/flusso
api api-gateway api-management apigateway apis cloud-native devops docker flusso ingress-controller kubernetes kubernetes-api-gateway kubernetes-ingress kubernetes-ingress-controller loadbalancing microservices nginx reverse-proxy rust traefik
Last synced: about 2 months ago
JSON representation
Flusso: A secure, high-performance API Gateway + Ingress Controller for Kubernetes, written in Rust.
- Host: GitHub
- URL: https://github.com/diocrafts/flusso
- Owner: DioCrafts
- License: mit
- Created: 2024-11-01T21:00:21.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-29T17:08:37.000Z (about 2 months ago)
- Last Synced: 2024-11-29T18:20:14.292Z (about 2 months ago)
- Topics: api, api-gateway, api-management, apigateway, apis, cloud-native, devops, docker, flusso, ingress-controller, kubernetes, kubernetes-api-gateway, kubernetes-ingress, kubernetes-ingress-controller, loadbalancing, microservices, nginx, reverse-proxy, rust, traefik
- Language: Rust
- Homepage:
- Size: 28.3 MB
- Stars: 25
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Help us grow and star us on Github! ⭐️
# 🚀 Flusso - Secure, High-Performance Kubernetes Ingress Controller and API Gateway in Rust 🦀🔒
**Flusso** is a secure, high-performance solution for Kubernetes, combining the functionalities of an **Ingress Controller** and an **API Gateway**. Written in **Rust**, Flusso is designed to meet the needs of modern cloud-native environments, offering a lightweight and efficient alternative to traditional solutions.
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
[![Docker Pulls](https://img.shields.io/docker/pulls/diocrafts/flusso-ingress-controller?style=for-the-badge&logo=docker)](https://hub.docker.com/r/diocrafts/flusso-ingress-controller)
[![Latest Release](https://img.shields.io/github/release/diocrafts/flusso.svg?style=for-the-badge)](https://github.com/diocrafts/flusso/releases)
[![GitHub Stars](https://img.shields.io/github/stars/diocrafts/flusso?style=for-the-badge&logo=github)](https://github.com/diocrafts/flusso/stargazers)
[![GitHub Issues](https://img.shields.io/github/issues/diocrafts/flusso?style=for-the-badge)](https://github.com/diocrafts/flusso/issues)
[![GitHub Forks](https://img.shields.io/github/forks/diocrafts/flusso?style=for-the-badge&logo=github)](https://github.com/diocrafts/flusso/network/members)
[![Last Commit](https://img.shields.io/github/last-commit/diocrafts/flusso?style=for-the-badge)](https://github.com/diocrafts/flusso/commits/main)## Table of Contents
- [Features](#features)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [Kubernetes Setup](#kubernetes-setup)
- [Contributing](#contributing)
- [License](#license)
- [Contact & Support](#contact--support)---
## Features ✨
- **Lightweight and Fast** ⚡: Built in Rust 🦀 for high performance and low memory and CPU consumption.
- **Advanced Load Balancing** 🔄: Supports custom load balancing algorithms for optimized traffic distribution.
- **Secure by Design** 🔒: Implements modern TLS protocols with Rustls for enhanced security.
- **Dynamic Backends** 🔄: Automatically updates routing based on Kubernetes service changes.
- **Flexible Configuration** 🛠️: Easily configurable via YAML files or environment variables.
- **Minimal Dependencies** 📦: Avoids unnecessary dependencies for lightweight container images.---
## Installation
Flusso provides two components for deployment: the **Ingress Controller** and the **API Gateway**. You can choose to deploy either or both of them depending on your needs. Both components can be deployed using **Helm** or **Docker**, and here are the instructions for each.
### 1. **Install Ingress Controller using Helm**
To install the Flusso Ingress Controller in your Kubernetes cluster, you can use Helm. Follow these steps:
1. **Add the Flusso Helm Chart repository:**
```bash
helm repo add flusso https://diocrafts.github.io/flusso
helm repo update
```2. **Install the Ingress Controller:**
```bash
helm install flusso-ingress-controller flusso/flusso-ingress-controller --namespace ingress-system --create-namespace
```This will install the Flusso Ingress Controller in the `ingress-system` namespace. You can customize your deployment by modifying values in the Helm chart.
3. **Verify the deployment:**
Check the status of the Ingress Controller to ensure it is running:
```bash
kubectl get pods -n ingress-system
```---
### 2. **Install API Gateway using Helm**
To install the Flusso API Gateway in your Kubernetes cluster, follow these steps:
1. **Add the Flusso Helm Chart repository:**
```bash
helm repo add flusso https://diocrafts.github.io/flusso
helm repo update
```2. **Install the API Gateway:**
```bash
helm install flusso-api-gateway flusso/flusso-api-gateway --namespace api-gateway-system --create-namespace
```This will install the Flusso API Gateway in the `api-gateway-system` namespace. You can modify the Helm chart values to customize your deployment.
3. **Verify the deployment:**
Check the status of the API Gateway to ensure it is running:
```bash
kubectl get pods -n api-gateway-system
```---
## Configuration
Flusso supports several configuration options, both via environment variables and Helm chart values.
- **SERVER_ADDR**: Define the address where the Ingress Controller will listen. Default is `0.0.0.0:8080`.
- **TLS_ENABLED**: Enable or disable TLS (default is `true`).
- **TLS_CERT_PATH / TLS_KEY_PATH**: Paths to TLS certificate and key files.---
## Usage
Flusso automatically routes incoming traffic to Kubernetes services defined by Ingress resources.
### Monitoring
Flusso exposes a web GUI at `http://:8081` with insights into backends and routing.
---
## Kubernetes Setup
Flusso is designed for seamless integration in Kubernetes.
### Prerequisites
- Kubernetes version 1.19 or higher
- Helm version 3 or higher---
## Contributing
We welcome contributions to make Flusso even better! If you have suggestions for improvements, open a GitHub issue or submit a pull request. Please refer to our [Contributing Guide](CONTRIBUTING.md) for more details.
---
## License
Flusso is licensed under the [MIT License](LICENSE).
---
## Contact & Support
- **GitHub**: [GitHub Repository](https://github.com/diocrafts/flusso)
- **Docker Hub**: [Docker Hub Repository](https://hub.docker.com/r/diocrafts/flusso)For further support, reach out via GitHub issues or visit our community forums.