Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mkopylec/charon-spring-boot-starter

Reverse proxy implementation in form of a Spring Boot starter.
https://github.com/mkopylec/charon-spring-boot-starter

charon java proxy reverse reverse-proxy spring spring-boot webflux webmvc

Last synced: 22 days ago
JSON representation

Reverse proxy implementation in form of a Spring Boot starter.

Awesome Lists containing this project

README

        

# Charon Spring Boot Starter
![Build Status](https://github.com/mkopylec/charon-spring-boot-starter/actions/workflows/ci.yml/badge.svg)
[![Code Coverage](https://codecov.io/gh/mkopylec/charon-spring-boot-starter/branch/master/graph/badge.svg)](https://codecov.io/gh/mkopylec/charon-spring-boot-starter)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.mkopylec/charon-spring-webmvc/badge.svg?style=flat)](https://maven-badges.herokuapp.com/maven-central/com.github.mkopylec/charon-spring-webmvc)

Charon is a **reverse proxy** implementation.
It automatically forwards HTTP requests from one HTTP server to another and sends back the received HTTP response to the client.
There are some alternative reverse proxy implementations like [Zuul](https://github.com/Netflix/zuul/wiki) or [Smiley's HTTP Proxy Servlet](https://github.com/mitre/HTTP-Proxy-Servlet).
Zuul is highly bounded to [Spring Cloud Netflix](https://spring.io/projects/spring-cloud-netflix), Smiley's HTTP Proxy Servlet is a simple one, without advanced features.
Charon is a universal Spring Boot tool. It already has a lot of features implemented and its architecture provides an easy way to add new ones.

## Features
- highly configurable and extensible
- Spring [WebMVC](https://docs.spring.io/spring-framework/reference/web/webmvc.html#mvc) and [WebFlux](https://docs.spring.io/spring-framework/reference/web/webflux.html#webflux) support
- multiple request forwarding mappings
- load balancing
- flexible path rewriting
- [Resilience4j](https://resilience4j.readme.io/) support
- metrics based on [Micrometer](https://micrometer.io/)
- asynchronous request forwarding
- authentication
- cookies rewriting
- 'X-Forwarded' HTTP headers support
- forwarding process intercepting
- configurable HTTP client

## Migrating from older versions to 4.x.x
Charon was completely rewritten, configuration via _application.yml_ file is no longer available.
Now Charon can be configured by in-code configuration.
See the documentation for more details.

## Documentation
Full documentation is located [here](https://github.com/mkopylec/charon-spring-boot-starter/wiki).

## License
Charon Spring Boot Starter is published under [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0).