A fault tolerant, protocol-agnostic RPC system
Scala Java Python Ruby Thrift Lua Other
Latest commit ceff1f8 Sep 26, 2016 @bryce-anderson bryce-anderson committed with jenkins finagle-thrift: abstract transport implementation
Problem

The finagle-thrift project is structured in a way that
exposes many netty3 types and has a package layout that makes
it difficult to add a netty4 implementation.

Solution

Restructure the package to remove netty3 types from most of
the public interface and move the netty3 specifics to a new
package, com.twitter.finagle.thrift.transport.netty3. The
notable exceptions are the ThriftServerFramedCodec and
ThriftClientFramedCodec which are both part of the public API
and widely used at this time.
The types in the c.t.f.thrift.legacy package have been removed
or moved to the netty3 specific package. The only public types
that were removed were those in Types.scala.

RB_ID=873982
Permalink
Failed to load latest commit information.
.github Twitter OSS: Add ISSUE_TEMPLATE Jul 7, 2016
doc finagle/doc: Fix error in doc file formatting Sep 8, 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-stats: Add toggle for histogram export Sep 7, 2016
finagle-commons-stats DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
finagle-core finagle tracing: Tolerates reads of 128 bit X-B3-TraceId Sep 26, 2016
finagle-example finagle/*, util/*, csl/* - replace c.t.io.Charset usage with java Sta… Sep 3, 2016
finagle-exception finagle: Enable fatal_warnings for more targets Sep 26, 2016
finagle-exp DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
finagle-http-compat DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
finagle-http finagle-http2 support for NPN and ALPN over TLS Sep 26, 2016
finagle-http2 finagle-http2 support for NPN and ALPN over TLS Sep 26, 2016
finagle-integration finagle-http: Include Retries context in request header Aug 29, 2016
finagle-kestrel finagle: Enable fatal_warnings for more targets Sep 26, 2016
finagle-mdns DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
finagle-memcached finagle/finagle-memcached: Make netty4 toggle work Sep 19, 2016
finagle-mux finagle-mux: introduce toggle for netty4 Sep 26, 2016
finagle-mysql finagle-mysql: Add a netty3 / netty4 toggle Sep 19, 2016
finagle-native DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
finagle-netty4-http finagle-http: Cleaned up generic tests Sep 26, 2016
finagle-netty4 finagle-netty4: Introduce pooling for receive buffers (default: disab… Sep 26, 2016
finagle-ostrich4 finagle/*, util/*, csl/* - replace c.t.io.Charset usage with java Sta… Sep 3, 2016
finagle-redis DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
finagle-serversets Remove myself from OWNERS files Sep 19, 2016
finagle-spdy DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
finagle-stats finagle-stats: Add toggle for histogram export Sep 7, 2016
finagle-stream DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
finagle-thrift finagle-thrift: abstract transport implementation Sep 26, 2016
finagle-thriftmux finagle-thriftmux: Allow ThriftMux.Clients to be filtered. Sep 26, 2016
finagle-toggle finagle-toggle: Promote out of experimental status Sep 7, 2016
finagle-zipkin-core DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
finagle-zipkin DPB-7244: Cleanup existing unused deps in source Aug 29, 2016
project finagle-mux: Add missing sbt dependency Sep 26, 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 oss: Remove --error from travis commands Sep 19, 2016
ADOPTERS.md finagle: Add Criteo to ADOPTERS.md Aug 15, 2016
CHANGES finagle-thrift: abstract transport implementation Sep 26, 2016
CONFIG.ini Fix some lint errors in CONFIG.ini and OWNERS - missing newlines - tr… Feb 29, 2016
CONTRIBUTING.md Update docs on contributing Sep 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 remove marius from OWNERS Aug 8, 2016
README.md Update docs on contributing Sep 7, 2016
link-netty.sh [split] finagle-core: introduce Transports and Dispatchers Apr 12, 2012
pushsite.bash finagle: Documentation Generation Cleanup Dec 3, 2015
sbt Update docs on contributing Sep 7, 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

Releases

Releases are done on an approximately monthly schedule. While semver is not followed, the changelogs are detailed and include sections on public API breaks and changes in runtime behavior.

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.