All Projects → HotelsDotCom → Styx

HotelsDotCom / Styx

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

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Styx

styx
Programmable, asynchronous, event-based reverse proxy for JVM.
Stars: ✭ 250 (+14.68%)
Mutual labels:  asynchronous, jvm, netty, load-balancer, nio
Vert.x
Vert.x is a tool-kit for building reactive applications on the JVM
Stars: ✭ 12,544 (+5654.13%)
Mutual labels:  nio, jvm, netty
Cookbook
🎉🎉🎉JAVA高级架构师技术栈==任何技能通过 “刻意练习” 都可以达到融会贯通的境界,就像烹饪一样,这里有一份JAVA开发技术手册,只需要增加自己练习的次数。🏃🏃🏃
Stars: ✭ 428 (+96.33%)
Mutual labels:  nio, jvm, netty
Httpproxy
http代理,支持CONNECT和普通GET/POST,支持http2;可防止主动嗅探;可作为小火箭、圈、surge等软件和SwitchyOmega(chrome插件)所说的https代理
Stars: ✭ 104 (-52.29%)
Mutual labels:  nio, netty
Jupiter
Jupiter是一款性能非常不错的, 轻量级的分布式服务框架
Stars: ✭ 1,372 (+529.36%)
Mutual labels:  nio, netty
Rexlin600.github.io
系列博客、涵盖领域广、不定时更新、欢迎加入
Stars: ✭ 102 (-53.21%)
Mutual labels:  jvm, netty
Jladder
基于Java Netty开发的翻墙程序,支持Socks协议和Http协议翻墙。
Stars: ✭ 68 (-68.81%)
Mutual labels:  proxy, netty
Gobetween
☁️ Modern & minimalistic load balancer for the Сloud era
Stars: ✭ 1,631 (+648.17%)
Mutual labels:  proxy, load-balancer
Face2face
基于netty的异步非阻塞实时聊天(IM)服务器。
Stars: ✭ 1,468 (+573.39%)
Mutual labels:  nio, netty
Nuster
A high performance HTTP proxy cache server and RESTful NoSQL cache server based on HAProxy
Stars: ✭ 1,825 (+737.16%)
Mutual labels:  proxy, load-balancer
Nettychat
基于Netty+TCP+Protobuf实现的Android IM库,包含Protobuf序列化、TCP拆包与粘包、长连接握手认证、心跳机制、断线重连机制、消息重发机制、读写超时机制、离线消息、线程池等功能。
Stars: ✭ 1,979 (+807.8%)
Mutual labels:  nio, netty
Haproxy
HAProxy Load Balancer's development branch (mirror of git.haproxy.org)
Stars: ✭ 2,463 (+1029.82%)
Mutual labels:  proxy, load-balancer
T Io
解决其它网络框架没有解决的用户痛点,让天下没有难开发的网络程序
Stars: ✭ 1,331 (+510.55%)
Mutual labels:  nio, netty
Nitmproxy
Proxy server based on netty
Stars: ✭ 94 (-56.88%)
Mutual labels:  proxy, netty
Simple Rpc
RPC with service discovery base on netty
Stars: ✭ 103 (-52.75%)
Mutual labels:  nio, netty
Async Gamequery Lib
A high-performance java game query library designed for steam/source based games and others
Stars: ✭ 88 (-59.63%)
Mutual labels:  asynchronous, netty
Ansible Role Haproxy
Ansible Role - HAProxy
Stars: ✭ 112 (-48.62%)
Mutual labels:  proxy, load-balancer
Nettydemo
Netty应用到Android,包含客户端、服务端(断线重连、心跳、黏包处理)
Stars: ✭ 183 (-16.06%)
Mutual labels:  nio, netty
Ea Async
EA Async implements async-await methods in the JVM.
Stars: ✭ 1,085 (+397.71%)
Mutual labels:  asynchronous, jvm
Esa Restlight
ESA Restlight is a lightweight and rest-oriented web framework.
Stars: ✭ 67 (-69.27%)
Mutual labels:  asynchronous, netty

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 8 - It can be built with 1.8.0_45. Earlier maintenance releases may, but are not guaranteed to work.
  • 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-2017 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].