All Projects → dromara → Soul

dromara / Soul

Licence: apache-2.0
ShenYu is High-Performance Java API Gateway.

Programming Languages

java
68154 projects - #9 most used programming language
PLpgSQL
1095 projects
Dockerfile
14818 projects
shell
77523 projects
lua
6591 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Soul

fastify-gateway
A Node.js API gateway that just works!
Stars: ✭ 88 (-98.43%)
Mutual labels:  api-gateway, http-proxy
Hgw
hgw是由gateway网关服务、manager控制服务构成的一套轻量级网关系统。目前支持http/https协议的服务控制
Stars: ✭ 81 (-98.55%)
Mutual labels:  api-gateway, http-proxy
Aws Cognito Apigw Angular Auth
A simple/sample AngularV4-based web app that demonstrates different API authentication options using Amazon Cognito and API Gateway with an AWS Lambda and Amazon DynamoDB backend that stores user details in a complete end to end Serverless fashion.
Stars: ✭ 278 (-95.04%)
Mutual labels:  api-gateway
Gluetun
VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN, DNS over TLS, with a few proxy servers built-in.
Stars: ✭ 346 (-93.83%)
Mutual labels:  http-proxy
Free Proxy List
🔥Free proxy servers list / Updated hourly!
Stars: ✭ 326 (-94.18%)
Mutual labels:  http-proxy
Http Proxy To Socks
hpts(http-proxy-to-socks) is a nodejs client to convert socks proxy into http proxy
Stars: ✭ 296 (-94.72%)
Mutual labels:  http-proxy
Bumblebee
.net core fast http and websocket gateway components
Stars: ✭ 329 (-94.13%)
Mutual labels:  http-proxy
Spring Cloud Gateway
A Gateway built on Spring Framework 5.x and Spring Boot 2.x providing routing and more.
Stars: ✭ 3,305 (-41.02%)
Mutual labels:  api-gateway
Proxy requests
a class that uses scraped proxies to make http GET/POST requests (Python requests)
Stars: ✭ 357 (-93.63%)
Mutual labels:  http-proxy
Fiddler Plus
自定义的Fiddler规则,多环境切换、解决跨域开发、快速调试线上代码必备|高效调试分析利器
Stars: ✭ 325 (-94.2%)
Mutual labels:  http-proxy
This Repo Has 350 Stars
Yes, it's true 💕 This repository has 350 stars.
Stars: ✭ 350 (-93.75%)
Mutual labels:  api-gateway
Ambassador
open source Kubernetes-native API gateway for microservices built on the Envoy Proxy
Stars: ✭ 3,583 (-36.06%)
Mutual labels:  api-gateway
Serverless Aws Documentation
Serverless 1.0 plugin to add documentation and models to the serverless generated API Gateway
Stars: ✭ 299 (-94.66%)
Mutual labels:  api-gateway
Apioak
Full Lifecycle Management API Gateway.
Stars: ✭ 335 (-94.02%)
Mutual labels:  api-gateway
Httptunnel
Bidirectional data stream tunnelled in HTTP requests.
Stars: ✭ 279 (-95.02%)
Mutual labels:  http-proxy
Service Proxy
API gateway for REST and SOAP written in Java.
Stars: ✭ 355 (-93.67%)
Mutual labels:  api-gateway
Aegis
Serverless Golang deploy tool and framework for AWS Lambda
Stars: ✭ 277 (-95.06%)
Mutual labels:  api-gateway
Annon.api
Configurable API gateway that acts as a reverse proxy with a plugin system.
Stars: ✭ 306 (-94.54%)
Mutual labels:  api-gateway
Grpc Http Proxy
A reverse proxy server which translate JSON HTTP requests to gRPC calls based on protoreflect
Stars: ✭ 328 (-94.15%)
Mutual labels:  http-proxy
Claudia
Deploy Node.js projects to AWS Lambda and API Gateway easily
Stars: ✭ 3,690 (-34.15%)
Mutual labels:  api-gateway

Scalable, High Performance, Responsive API Gateway Solution for all MicroServices

https://shenyu.apache.org/

English | 简体中文

github forks github stars github contributors



Architecture


Features

  • ShenYu provides ability such as current limiting, fusing, forwarding, routing monitoring and so on by its plugins.

  • Support HTTP, RESTFul, WebSocket, Dubbo, GRPC, Tars and Spring Cloud Proxy.

  • Plug-in hot plug, users can customize the development.

  • Selectors and rules are dynamically configured for flexible matching.

  • Support for cluster deployment.

  • Support A/B test and grayscale publishing.


Quick Start (docker)

Run Apache ShenYu Admin

> docker pull apache/shenyu-admin
> docker network create shenyu
> docker run -d -p 9095:9095 --net shenyu apache/shenyu-admin

Run Apache ShenYu Bootstrap

> docker network create shenyu
> docker pull apache/shenyu-bootstrap
> docker run -d -p 9195:9195 --net shenyu apache/shenyu-bootstrap

Set router

{
  "name" : "Shenyu",
  "data" : "hello world"
}
  • Set routing rules(Standalone)
curl --location --request POST 'http://localhost:9195/shenyu/plugin/selectorAndRules' \
--header 'Content-Type: application/json' \
--data-raw '{
    "pluginName": "divide",
    "selectorHandler": "[{\"upstreamUrl\":\"127.0.0.1:8080\"}]",
    "conditionDataList": [{
        "paramType": "uri",
        "operator": "match",
        "paramValue": "/**"
    }],
    "ruleDataList": [{
        "ruleHandler": "{\"loadBalance\":\"random\"}",
        "conditionDataList": [{
            "paramType": "uri",
            "operator": "match",
            "paramValue": "/**"
        }]
    }]
}'
{
  "name" : "Shenyu",
  "data" : "hello world"
}

Plugin

Whenever a request comes in, ShenYu will execute it by all enabled plugins through the chain of responsibility.

As the heart of ShenYu, plugins are extensible and hot-pluggable.

Different plugins do different things.

Of course, users can also customize plugins to meet their own needs.

If you want to customize, see custom-plugin


Selector & rule

According to your HTTP request headers, selectors and rules are used to route your requests.

Selector is your first route, It is coarser grained, for example, at the module level.

Rule is your second route and what do you think your request should do. For example a method level in a module.

The selector and the rule match only once, and the match is returned. So the coarsest granularity should be sorted last.


Data Caching & Data Sync

Since all data have been cached using ConcurrentHashMap in the JVM, it's very fast.

When user have changed the configuration in the background management, ShenYu will dynamically updates its cache by listening to the ZooKeeper node, WebSocket push, HTTP longPull.


Prerequisite

  • JDK 1.8+

Document & Website

EN doc CN doc


Stargazers over time

Stargazers over time


Known Users

In order of registration, More access companies are welcome to register at https://github.com/apache/incubator-shenyu/issues/68 (For open source users only)

All Users : Known Users

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].