4.6k GitHub stars and counting — Netflix/ribbon is a Java project TopGit is tracking across repositories on the platform. Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls with various serialization scheme support.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
ribbon: APIs that integrate load balancing, fault tolerance, caching/batching on top of other ribbon modules and Hystrix
ribbon-loadbalancer: Load balancer APIs that can be used independently or with other modules
ribbon-eureka: APIs using Eureka client to provide dynamic server list for cloud
ribbon-transport: Transport clients that support HTTP, TCP and UDP protocols using RxNetty with load balancing capability
ribbon-httpclient: REST client built on top of Apache HttpClient integrated with load balancers (deprecated and being replaced by ribbon module)
ribbon-example: Examples
ribbon-core: Client configuration APIs and other shared APIs
Project Status: On Maintenance
Ribbon comprises of multiple components some of which are used in production internally and some of which were replaced by non-OSS solutions over time.
This is because Netflix started moving into a more componentized architecture for RPC with a focus on single-responsibility modules. So each Ribbon component gets a different level of attention at this moment.
More specifically, here are the components of Ribbon and their level of attention by our teams:
ribbon-core: deployed at scale in production
ribbon-eureka: deployed at scale in production
ribbon-evcache: not used
ribbon-guice: not used
ribbon-httpclient: we use everything not under com.netflix.http4.ssl.
Instead, we use an internal solution developed by our cloud security team
ribbon-loadbalancer: deployed at scale in production
ribbon-test: this is just an internal integration test suite
ribbon-transport: not used
ribbon: not used
Even for the components deployed in production we have wrapped them in a Netflix internal http client and we are not adding new functionality since they’ve been stable for a while.
Any new functionality has been added to internal wrappers on top of Ribbon (such as request tracing and metrics). We have not made an effort to make those components Netflix-agnostic under Ribbon.
Recognizing these realities and deficiencies, we are placing Ribbon in maintenance mode.
This means that if an external user submits a large feature request, internally we wouldn’t prioritize it highly.
However, if someone were to do work on their own and submit complete pull requests, we’d be happy to review and accept.
Our team has instead started building an RPC solution on top of gRPC.
We are doing this transition for two main reasons: multi-language support and better extensibility/composability through request interceptors.
That’s our current plan moving forward.
We currently contribute to the gRPC code base regularly.
To help our teams migrate to a gRPC-based solution in production (and battle-test it),
we are also adding load-balancing and discovery interceptors to achieve feature parity with the functionality Ribbon and Eureka provide.
The interceptors are Netflix-internal at the moment. When we reach that level of confidence we hope to open-source this new approach.
We don’t expect this to happen before Q3 of 2016.
Release notes
See https://github.com/Netflix/ribbon/releases
Code example
Access HTTP resource using template (full example)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
TopGit's last sync did not record any GitHub topics for Netflix/ribbon. GitHub topics appear in the right sidebar of a repository page; that's the authoritative place to check.
How active is development on Netflix/ribbon?
The most recent commit recorded on Netflix/ribbon was 8 months ago, based on the GitHub push timestamp. The repository has 1.2k forks — one of the better signals of community interest.
How many stars does Netflix/ribbon have?
Netflix/ribbon has 4.6k GitHub stars — refresh the page for the live number, or check github.com/Netflix/ribbon. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What language is Netflix/ribbon written in?
Netflix/ribbon is written primarily in Java. GitHub's language field is based on the largest share of bytes in the default branch.
Where do I read more about Netflix/ribbon?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/Netflix/ribbon is the definitive source.
Read full README in the tab above.
Still deciding about ribbon?
One click hands the question to an AI along with this page — see what it says about ribbon.