All Projects → ExpediaGroup → styx

ExpediaGroup / styx

Licence: Apache-2.0 license
Programmable, asynchronous, event-based reverse proxy for JVM.

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects
scala
5932 projects
javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to styx

Styx
Programmable, asynchronous, event-based reverse proxy for JVM.
Stars: ✭ 218 (-12.8%)
Mutual labels:  asynchronous, jvm, netty, load-balancer, nio
Cookbook
🎉🎉🎉JAVA高级架构师技术栈==任何技能通过 “刻意练习” 都可以达到融会贯通的境界,就像烹饪一样,这里有一份JAVA开发技术手册,只需要增加自己练习的次数。🏃🏃🏃
Stars: ✭ 428 (+71.2%)
Mutual labels:  jvm, netty, nio
Vert.x
Vert.x is a tool-kit for building reactive applications on the JVM
Stars: ✭ 12,544 (+4917.6%)
Mutual labels:  jvm, netty, nio
Reactor Core
Non-Blocking Reactive Foundation for the JVM
Stars: ✭ 3,891 (+1456.4%)
Mutual labels:  asynchronous, jvm
Rexlin600.github.io
系列博客、涵盖领域广、不定时更新、欢迎加入
Stars: ✭ 102 (-59.2%)
Mutual labels:  jvm, netty
Javainterview
java中高级基础指南
Stars: ✭ 222 (-11.2%)
Mutual labels:  jvm, nio
Jcsprout
👨‍🎓 Java Core Sprout : basic, concurrent, algorithm
Stars: ✭ 26,536 (+10514.4%)
Mutual labels:  jvm, netty
Ea Async
EA Async implements async-await methods in the JVM.
Stars: ✭ 1,085 (+334%)
Mutual labels:  asynchronous, jvm
Atmosphere
Realtime Client Server Framework for the JVM, supporting WebSockets with Cross-Browser Fallbacks
Stars: ✭ 3,552 (+1320.8%)
Mutual labels:  asynchronous, netty
Esa Restlight
ESA Restlight is a lightweight and rest-oriented web framework.
Stars: ✭ 67 (-73.2%)
Mutual labels:  asynchronous, netty
Simplenet
An easy-to-use, event-driven, asynchronous network application framework compiled with Java 11.
Stars: ✭ 164 (-34.4%)
Mutual labels:  asynchronous, nio
Catacumba
Asynchronous web toolkit for clojure built on top of Ratpack / Netty
Stars: ✭ 192 (-23.2%)
Mutual labels:  asynchronous, netty
Javacore
☕️ JavaCore 是对 Java 核心技术的经验总结。
Stars: ✭ 909 (+263.6%)
Mutual labels:  jvm, nio
twjitm-core
采用Netty信息加载实现长连接实时通讯系统,客户端可以值任何场景,支持实时http通讯、webSocket通讯、tcp协议通讯、和udp协议通讯、广播协议等 通过http协议,rpc协议。 采用自定义网络数据包结构, 实现自定义网络栈。
Stars: ✭ 98 (-60.8%)
Mutual labels:  asynchronous, netty
Javaok
必看!java后端,亮剑诛仙。java发展路线技术要点。
Stars: ✭ 867 (+246.8%)
Mutual labels:  jvm, netty
Netty Websocket Spring Boot Starter
🚀 lightweight high-performance WebSocket framework ( 轻量级、高性能的WebSocket框架)
Stars: ✭ 885 (+254%)
Mutual labels:  asynchronous, netty
Smallrye Mutiny
An Intuitive Event-Driven Reactive Programming Library for Java
Stars: ✭ 231 (-7.6%)
Mutual labels:  asynchronous, jvm
Pdf
编程电子书,电子书,编程书籍,包括C,C#,Docker,Elasticsearch,Git,Hadoop,HeadFirst,Java,Javascript,jvm,Kafka,Linux,Maven,MongoDB,MyBatis,MySQL,Netty,Nginx,Python,RabbitMQ,Redis,Scala,Solr,Spark,Spring,SpringBoot,SpringCloud,TCPIP,Tomcat,Zookeeper,人工智能,大数据类,并发编程,数据库类,数据挖掘,新面试题,架构设计,算法系列,计算机类,设计模式,软件测试,重构优化,等更多分类
Stars: ✭ 12,009 (+4703.6%)
Mutual labels:  jvm, netty
Async Gamequery Lib
A high-performance java game query library designed for steam/source based games and others
Stars: ✭ 88 (-64.8%)
Mutual labels:  asynchronous, netty
Future
High-performance Future implementation for the JVM
Stars: ✭ 223 (-10.8%)
Mutual labels:  asynchronous, jvm

STYX

Build Status License Version Dependabot Status

Styx is a programmable reverse proxy for JVM (Java Virtual Machine). It can be used as a stand-alone application, or as a platform to build custom networking applications. It is non-blocking, fully asynchronous and event driven therefore very scalable.

Features

Styx Proxies HTTP requests to a configurable set of Backend Services typically a cluster of web servers (multiple origins) or load balancers (e.g. AWS ELB).

Requests are subjected to an interceptor chain (conceptualy a HTTP filter chain), which can respond or modify and pass through the request to the backend services. The interceptor chain can be easily extended by Plugins written in Java.

Styx additional capabilities:

  • Load balancing
  • Origin health checking
  • Retry mechanisms
  • Connection pooling
  • Admin dashboard (inspired and based on Hystrix Dashboard)
  • Performance and system metrics collection and reporting (Graphite compatible)

Most additional features can be extended via the Java Service Provider Interface (SPI) model.

The plugin and the SPI (Service Provider Interface) model enables developers to build custom HTTP applications easily on top of Styx, which takes care of common proxy server related functionality. Developers can then concentrate on the value-add business logic.

Use cases of Styx Plugins

  • Hotels.com - Built authentication, UI rendering, URL redirection and cookie cleaning plugins in front of backend services.

  • Expedia - Built routing and bot detection capabilities on top of Styx. More info here.

  • Homeaway - Built various plugins.

Useful Information

Quick Start

A quick-start guide can be found on our wiki.

User Manual

User guide explains how to run and operate Styx as a standalone application.

Developer Resources

Our Developer guide explains how to build applications on top of Styx. It also explains how to build and run Styx.

If you want to help to contribute to Styx project, please check Contributor guide to find out how to start.

Got a Question?

Contact us via styx-user group.

Links

Dependencies

  • Oracle JDK 11
  • Apache Maven v3
  • Makefile (Optional)- There are fairly many ways of running Styx tests with different Maven profiles. Therefore, the shortcuts for most common usages are compiled into a separate (GNU) Makefile for developer's convenience. To take advantage of these shortcuts, a GNU Make build tool must be installed.

Notice

Not the Styx project that you were expecting to find?

Other open source projects called Styx on GitHub: Github Styx Projects

License

This project is licensed under the Apache License v2.0 - see the LICENSE.txt file for details.

Copyright 2013-2021 Expedia Inc.

Licencing terms for any derived work and dependant libraries are documented in NOTICE files.

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].