A fault tolerant, protocol-agnostic RPC system
Scala Java Python Ruby Thrift Lua Other
Latest commit e1e7423 Jul 25, 2016 @edma2 edma2 committed with jenkins finagle/doc: fix comment in dtab example
RB_ID=855077
Failed to load latest commit information.
.github Twitter OSS: Add ISSUE_TEMPLATE Jul 7, 2016
doc finagle/doc: fix comment in dtab example Jul 25, 2016
finagle-benchmark-thrift/src/main/thrift finagle-benchmark: Move the thrift out to work around the nested obje… Oct 12, 2015
finagle-benchmark finagle-core: Modify aperture size bounds + use Distributor-provided … Jul 22, 2016
finagle-commons-stats source: fix more unused imports for scala 2.11.8 Mar 29, 2016
finagle-core finagle-core: Remove Java 6 compatibility code from FinagleScheduler Jul 25, 2016
finagle-example finagle-redis: Remove deprecated methods on Client Jun 27, 2016
finagle-exception maven layout goes away Nov 30, 2015
finagle-exp finagle-exp: Abstract out parts of the DarkTrafficFilter for potentia… Jul 18, 2016
finagle-http-compat finagle-http: Request and Response don't proxy netty Req/Rep Apr 11, 2016
finagle-http finagle-http2: Handle goaways properly client-side Jul 18, 2016
finagle-http2 finagle-http2: Fix Http2Transporter cache removal Jul 21, 2016
finagle-integration finagle-http: Removes duplicates for StreamTransport versions May 16, 2016
finagle-kestrel Revert "finagle/finagle-memcached: Decoder on Buf" Jul 11, 2016
finagle-mdns Fix some Finagle "Unused import" warnings May 30, 2016
finagle-memcached finagle-core/netty4: Remove Netty-specifc encoding/decoding in favor … Jul 25, 2016
finagle-mux Problem Jul 6, 2016
finagle-mysql finagle-core/netty4: Remove Netty-specifc encoding/decoding in favor … Jul 25, 2016
finagle-native source: fix more unused imports for scala 2.11.8 Mar 29, 2016
finagle-netty4-http Problem Jul 18, 2016
finagle-netty4 finagle-core/netty4: Remove Netty-specifc encoding/decoding in favor … Jul 25, 2016
finagle-ostrich4 Unrevert c.t.f.Address and fix finagle-memcached Feb 29, 2016
finagle-redis finagle-redis: Remove Codec [HUGE] Jul 21, 2016
finagle-serversets finagle: Removed all of the guava caches from finagle Jun 9, 2016
finagle-spdy finagle: Override Codec.protocolLibraryName Jun 7, 2016
finagle-stats finagle-stats: Flag to disable exporting empty histograms Jul 18, 2016
finagle-stream finagle: Override Codec.protocolLibraryName Jun 7, 2016
finagle-thrift Problem / Solution Jun 7, 2016
finagle-thriftmux Problem Jul 6, 2016
finagle-toggle finagle-toggle: Add ServerInfo.id Jul 18, 2016
finagle-zipkin-core finagle-zipkin-core: Remove package protection for RawZipkinTracer Jul 21, 2016
finagle-zipkin finagle-zipkin: Accept an explicit client name while constructing a … Jun 29, 2016
project finagle-core: Reduce allocations & running time of Balancer.update Jul 21, 2016
site finagle-site: add link to fintrospect Feb 4, 2016
.gitignore fix broken WatermarkPool link in doc, also add *.pyc to .gitignore Feb 23, 2015
.mailmap add a .mailmap Dec 16, 2011
.travis.yml ostrich, scrooge, finagle, twitter-server, finatra: Update TravisCI c… Jul 22, 2016
ADOPTERS.md Add Dwango to adopters Jun 1, 2016
CHANGES finagle-core/netty4: Remove Netty-specifc encoding/decoding in favor … Jul 25, 2016
CONFIG.ini Fix some lint errors in CONFIG.ini and OWNERS - missing newlines - tr… Feb 29, 2016
CONTRIBUTING.md Twitter OSS: Add ISSUE_TEMPLATE Jul 7, 2016
CONTRIBUTORS [split] finagle-doc: beginnings of a finagle user's guide Feb 21, 2013
GROUPS [split] Use new git-review with simplified OWNERS/GROUPS May 18, 2012
LICENSE Project scaffolding Oct 18, 2010
OWNERS Goodbye May 11, 2015
README.md util, ostrich, scrooge, finagle, twitter-server: Update to use codeco… Jun 8, 2016
link-netty.sh [split] finagle-core: introduce Transports and Dispatchers Apr 12, 2012
pushsite.bash finagle: Documentation Generation Cleanup Dec 3, 2015
sbt scrooge-sbt-plugin, finagle: Handle compiling for multiple languages … Jun 29, 2016

README.md

Finagle

Build status Codecov branch Project status Gitter Maven Central

Status

This project is used in production at Twitter (and many other organizations), and is being actively developed and maintained.

Finagle logo

Getting involved

Finagle is an extensible RPC system for the JVM, used to construct high-concurrency servers. Finagle implements uniform client and server APIs for several protocols, and is designed for high performance and concurrency. Most of Finagle’s code is protocol agnostic, simplifying the implementation of new protocols.

For extensive documentation, please see the user guide and API documentation websites. Documentation improvements are always welcome, so please send patches our way.

Adopters

The following are a few of the companies that are using Finagle:

For a more complete list, please see our adopter page. If your organization is using Finagle, consider adding a link there and sending us a pull request!

Contributing

We feel that a welcoming community is important and we ask that you follow Twitter's Open Source Code of Conduct in all interactions with the community.

The master branch of this repository contains the latest stable release of Finagle, and weekly snapshots are published to the develop branch. In general pull requests should be submitted against develop. See CONTRIBUTING.md for more details about how to contribute.