{"id":17722915,"url":"https://github.com/ExpediaGroup/styx","last_synced_at":"2025-03-14T05:31:54.797Z","repository":{"id":38080754,"uuid":"106841635","full_name":"ExpediaGroup/styx","owner":"ExpediaGroup","description":"Programmable, asynchronous, event-based reverse proxy for JVM.","archived":false,"fork":false,"pushed_at":"2025-03-11T04:06:36.000Z","size":7651,"stargazers_count":255,"open_issues_count":10,"forks_count":80,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-03-11T05:19:26.845Z","etag":null,"topics":["asynchronous","http","java","jvm","load-balancer","netty","nio","oss-portal-listed","proxy","styx"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ExpediaGroup.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/api-testsupport/pom.xml","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-13T15:27:53.000Z","updated_at":"2025-01-23T00:05:05.000Z","dependencies_parsed_at":"2023-10-20T19:45:56.309Z","dependency_job_id":"b83135bf-6feb-4343-b486-fd6430794547","html_url":"https://github.com/ExpediaGroup/styx","commit_stats":{"total_commits":657,"total_committers":46,"mean_commits":"14.282608695652174","dds":0.6423135464231355,"last_synced_commit":"8d9a326355a98895e94dd1638a1065b9124c71b6"},"previous_names":["hotelsdotcom/styx"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExpediaGroup%2Fstyx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExpediaGroup%2Fstyx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExpediaGroup%2Fstyx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExpediaGroup%2Fstyx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ExpediaGroup","download_url":"https://codeload.github.com/ExpediaGroup/styx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243004068,"owners_count":20220237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asynchronous","http","java","jvm","load-balancer","netty","nio","oss-portal-listed","proxy","styx"],"created_at":"2024-10-25T15:41:00.512Z","updated_at":"2025-03-14T05:31:54.772Z","avatar_url":"https://github.com/ExpediaGroup.png","language":"Java","readme":"\n\u003ch1 align=\"left\"\u003e\n  \u003cimg width=\"420\" alt=\"STYX\" src=\"./docs/assets/styx-logo.svg\"\u003e\n\u003c/h1\u003e\n\n[![Build Status](https://travis-ci.org/HotelsDotCom/styx.svg?branch=master)](https://travis-ci.org/HotelsDotCom/styx)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n![Version](https://img.shields.io/maven-central/v/com.hotels.styx/styx-server.svg)\n[![Dependabot Status](https://api.dependabot.com/badges/status?host=github\u0026repo=HotelsDotCom/styx)](https://dependabot.com)\n\nStyx is a programmable reverse proxy for JVM (Java Virtual Machine). It can be used\nas a stand-alone application, or as a platform to build custom networking applications.\nIt is non-blocking, fully asynchronous and event driven therefore very scalable.\n\n### Features\n\nStyx Proxies HTTP requests to a configurable set of *Backend Services* typically a cluster\nof web servers (multiple origins) or load balancers (e.g. AWS ELB).\n\nRequests are subjected to an *interceptor chain* (conceptualy a HTTP filter chain), which can\nrespond or modify and pass through the request to the backend services. The interceptor\nchain can be easily extended by *Plugins* written in Java.\n\nStyx additional capabilities:\n- Load balancing\n- Origin health checking\n- Retry mechanisms\n- Connection pooling\n- Admin dashboard (inspired and based on [Hystrix Dashboard](https://github.com/Netflix/Hystrix/wiki/Dashboard))\n- Performance and system metrics collection and reporting (Graphite compatible)\n\nMost additional features can be *extended* via the Java Service Provider Interface (SPI) model.\n\nThe plugin and the SPI (Service Provider Interface) model enables developers\nto build custom HTTP applications easily on top of Styx, which takes care\nof common proxy server related functionality. Developers can then concentrate on\nthe value-add business logic.\n\n### Use cases of Styx Plugins\n\n* [Hotels.com](http://www.hotels.com) - Built authentication, UI rendering,\nURL redirection and cookie cleaning plugins in front of backend services.\n\n* [Expedia](http://www.expedia.com) - Built routing and bot detection capabilities on top of Styx. [More\ninfo here](https://conferences.oreilly.com/software-architecture/sa-eu/public/schedule/detail/61826).\n\n* [Homeaway](http://www.homeaway.com) - Built various plugins.\n\n\n## Useful Information\n\n### Quick Start\n\nA [quick-start guide](https://github.com/HotelsDotCom/styx/wiki/Quick-Start-Guide) can be found on our [wiki](https://github.com/HotelsDotCom/styx/wiki).\n\n### User Manual\n\n[User guide](./docs/user-guide.md) explains how to run and operate Styx as a standalone application.\n\n### Developer Resources\n\nOur [Developer guide](./docs/developer-guide.md) explains how to build applications on top of Styx.\nIt also explains how to build and run Styx.\n\nIf you want to help to contribute to Styx project, please check [Contributor guide](./CONTRIBUTING.md) to find out how to start.\n\n### Got a Question?\n\nContact us via [styx-user](https://groups.google.com/forum/#!forum/styx-user) group.\n\n### Links\n\n* [Styx Wiki](https://github.com/HotelsDotCom/styx/wiki)\n* [Binary Downloads](https://github.com/HotelsDotCom/styx/releases)\n* [User guide](./docs/user-guide.md)\n* [Developer guide](./docs/developer-guide.md)\n* [styx-user](https://groups.google.com/forum/#!forum/styx-user) @ Google Groups\n\n\n## Dependencies\n\n* [Oracle JDK 21](https://www.oracle.com/java/technologies/downloads/#java21)\n* [Apache Maven v3](http://maven.apache.org)\n* Makefile (Optional)- There are fairly many ways of running Styx tests with different Maven profiles. Therefore, the\n  shortcuts for most common usages are compiled into a separate (GNU) Makefile for developer's convenience. To\n  take advantage of these shortcuts, a GNU Make build tool must be installed.\n\n## Notice\nNot the Styx project that you were expecting to find?\n\nOther open source projects called *Styx* on GitHub:\n[Github Styx Projects](https://github.com/search?utf8=%E2%9C%93\u0026q=styx\u0026type=)\n\n## License\n\nThis project is licensed under the Apache License v2.0 - see the [LICENSE.txt](LICENSE.txt) file for details.\n\nCopyright 2013-2021 Expedia Inc.\n\nLicencing terms for any derived work and dependant libraries are documented in `NOTICE` files.\n","funding_links":[],"categories":["网络编程"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FExpediaGroup%2Fstyx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FExpediaGroup%2Fstyx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FExpediaGroup%2Fstyx/lists"}