Skip to content
A fault tolerant, protocol-agnostic RPC system
Scala Java Python Ruby Thrift Shell Other
Latest commit b6221ec Apr 27, 2016 @jcrossley jcrossley committed with jenkins finagle: make Thrift/ThriftMux not extend ThriftRichServer

Because the Thrift and ThriftMux objects extend ThriftRichServer, it is
possible to create a server using Thrift(Mux).serveIface(...). However,
the default params on the Thrift and ThriftMux objects are client params.
The `serveIface` method creates a server using these client params
(such as the stats receiver) using `serverFromIface` *before* calling `serve`
on a properly configured Thrift/ThriftMux server. This means that the Scrooge-
constructed server has the incorrect client params, while all the filters and
factories above it have the correct server params.


Make Thrift/ThriftMux not extend ThriftRichServer, and update all instances
of Thrift(Mux).serveIface to Thrift(Mux).server.serveIface

Failed to load latest commit information.
.github Add PULL_REQUEST_TEMPLATEs Mar 10, 2016
bin finagle/finatra/scrooge/twitter-server: bin/travisci updates and fixes Apr 21, 2016
doc Twitter OSS: Prepare libraries for next release Apr 27, 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: Added Round Robin load balancer and improved Simulation… Mar 28, 2016
finagle-cacheresolver finagle-cacheresolver: remove ZookeeperCacheNodeGroup Mar 28, 2016
finagle-commons-stats source: fix more unused imports for scala 2.11.8 Mar 29, 2016
finagle-core finagle-core: Introduce SessionVerifier (SSL/TLS hostname validation) Apr 27, 2016
finagle-example finagle: make Thrift/ThriftMux not extend ThriftRichServer Apr 28, 2016
finagle-exception maven layout goes away Nov 30, 2015
finagle-exp you don't need specs Feb 1, 2016
finagle-http-compat finagle-http: Request and Response don't proxy netty Req/Rep Apr 11, 2016
finagle-http finagle-http: bundle netty-related config in a single param Apr 27, 2016
finagle-http2 finagle-http2: Provides parts to configure Http client with Http2 Apr 4, 2016
finagle-integration Fix speeling mistakes in source Mar 7, 2016
finagle-kestrel util-core: Remove deprecated methods from Buf.scala Mar 14, 2016
finagle-mdns Unrevert c.t.f.Address and fix finagle-memcached Feb 29, 2016
finagle-memcached finagle-memcached: add key information to the exceptions of ClientError Mar 28, 2016
finagle-mux finagle-mux: refactor writes in MuxFramer using Offer/Broker Apr 19, 2016
finagle-mysql finagle-mysql: Add irana to OWNERS Apr 11, 2016
finagle-native source: fix more unused imports for scala 2.11.8 Mar 29, 2016
finagle-netty4-http finagle-netty4: disable leak detector and stop duplicating buffers Apr 18, 2016
finagle-netty4 finagle-netty4: Introduce SslConnectHandler Apr 27, 2016
finagle-ostrich4 Unrevert c.t.f.Address and fix finagle-memcached Feb 29, 2016
finagle-redis finagle-redis: add support for topology commands Apr 18, 2016
finagle-serversets source: clean up more unused imports in fatal_warnings targets Apr 4, 2016
finagle-spdy Introduce PayloadSizeFilter (reports histograms of payload sizes) Feb 22, 2016
finagle-stats finagle-stats: Verify that histogram snapshotting works after a lapse… Apr 27, 2016
finagle-stream finagle: travis ci fixes Apr 11, 2016
finagle-thrift finagle: make Thrift/ThriftMux not extend ThriftRichServer Apr 28, 2016
finagle-thriftmux finagle: make Thrift/ThriftMux not extend ThriftRichServer Apr 28, 2016
finagle-zipkin Remove ex-employees from OWNERS files. Feb 29, 2016
project finagle: Update scrooge-sbt-plugin version to 4.7.0 Apr 27, 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 finagle: travis ci fixes Apr 11, 2016 Update Dec 14, 2015
CHANGES finagle: make Thrift/ThriftMux not extend ThriftRichServer Apr 28, 2016
CONFIG.ini Fix some lint errors in CONFIG.ini and OWNERS - missing newlines - tr… Feb 29, 2016 Add PULL_REQUEST_TEMPLATEs Mar 10, 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 finagle: Add links to our Code of Conduct Jan 25, 2016 [split] finagle-core: introduce Transports and Dispatchers Apr 12, 2012
pushsite.bash finagle: Documentation Generation Cleanup Dec 3, 2015
sbt Fix sbt jar retrieval May 6, 2015


Build status Coverage status Project status Gitter Maven Central


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.


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!


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 for more details about how to contribute.

Something went wrong with that request. Please try again.