A fault tolerant, protocol-agnostic RPC system
Clone or download
ryanoneill and jenkins finagle-mysql: Remove `Handshake` from `ClientDispatcher` API
Problem

When TLS is added to finagle-mysql, the `Handshake` will no longer
occur as part of the `ClientDispatcher` and will instead happen as
part of an eventual `MysqlTransporter`. Currently, `Handshake` is
part of the `ClientDispatcher` construction API. This prevents it
from being moved and eventually removed.

Solution

Change the `ClientDispatcher` to take a generic set of `Stack.Params`,
and make the `Handshake` an implementation detail.

JIRA Issues: CSL-7284

Differential Revision: https://phabricator.twitter.biz/D244357
Latest commit 0344d28 Nov 21, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Twitter OSS: Add ISSUE_TEMPLATE Jul 7, 2016
doc Twitter-oss: Prepare OSS libraries for release 18.11 Nov 12, 2018
finagle-base-http finagle-http2: Introduce Http2MultiplexCodec based HTTP/2 client Nov 12, 2018
finagle-benchmark-thrift/src/main/thrift Format all BUILD files in source/{e,f,g,h,i,j,k,l}* with buildifier Feb 20, 2018
finagle-benchmark finagle-mysql: Rename `Charset` Object to `MysqlCharset` Nov 15, 2018
finagle-core finagle-core: Remove `ContextBasedTransport` Nov 21, 2018
finagle-example finagle: Enable scalafmt Oct 31, 2018
finagle-exception Convert deprecated fatal_warnings usages to use the new compiler_opti… Sep 12, 2018
finagle-exp finagle-exp, finatra-thrift: Update `DarkTrafficFilter#handleFailedIn… Nov 5, 2018
finagle-grpc-context finagle: Introduce grpc-context module Oct 29, 2018
finagle-http-cookie/src/main/java/com/twitter/finagle/http/netty3 Convert deprecated fatal_warnings usages to use the new compiler_opti… Sep 12, 2018
finagle-http finagle-{http,mux}: move payload size filter in the stack Nov 14, 2018
finagle-http2 finagle-http2: Add stats about different Http2Exceptions in the h2 se… Nov 13, 2018
finagle-init Convert deprecated fatal_warnings usages to use the new compiler_opti… Sep 12, 2018
finagle-integration finagle-mysql: Remove `Handshake` from `ClientDispatcher` API Nov 21, 2018
finagle-memcached finagle-core: Add Java compatibility for Name Nov 15, 2018
finagle-mux finagle-{http,mux}: move payload size filter in the stack Nov 14, 2018
finagle-mysql finagle-mysql: Remove `Handshake` from `ClientDispatcher` API Nov 21, 2018
finagle-netty3 finagle-netty3: Fix logging of exceptions Nov 1, 2018
finagle-netty4-http finagle-http: Merge Streaming and FixedLengthStreamedAfter params Nov 9, 2018
finagle-netty4 finagle: Preemptively remove unsupported ciphers Nov 20, 2018
finagle-redis finagle-redis: Add support for Stream APIs Nov 21, 2018
finagle-serversets finagle: Enable scalafmt Oct 31, 2018
finagle-stats finagle: Enable scalafmt Oct 31, 2018
finagle-thrift finagle-thrift: Add c.t.finagle.thrift.MethodMetadata#asCurrent Nov 19, 2018
finagle-thriftmux finagle-thrift: Add c.t.finagle.thrift.MethodMetadata#asCurrent Nov 19, 2018
finagle-toggle finagle: Enable scalafmt Oct 31, 2018
finagle-tunable finagle: Enable scalafmt Oct 31, 2018
finagle-zipkin-core Convert deprecated fatal_warnings usages to use the new compiler_opti… Sep 12, 2018
finagle-zipkin-scribe finagle: Enable scalafmt Oct 31, 2018
project Twitter-oss: update OSS libraries post-release to 18.12 Nov 13, 2018
site finagle: Add a link to airframe-http Sep 25, 2018
.gitignore finagle-redis: Add integration tests Pants target & add README Aug 24, 2018
.mailmap add a .mailmap Dec 16, 2011
.travis.yml finagle: Upgrade to Scala 2.12.7 Oct 15, 2018
ADOPTERS.md finagle: add Whisk to adopters Jul 11, 2018
CHANGELOG.rst finagle-redis: Add support for Stream APIs Nov 21, 2018
CHANGES Add symlinks to CHANGELOG.rst from CHANGES Aug 27, 2018
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md Jun 20, 2017
CONFIG.ini Fix some lint errors in CONFIG.ini and OWNERS - missing newlines - tr… Feb 29, 2016
CONTRIBUTING.md Rename CHANGES to CHANGELOG.rst Aug 24, 2018
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
NOTICE finagle-thrift: Removed duplicated libthrift files May 3, 2018
OWNERS finagle: dschobel to root owners Jan 13, 2017
README.md Twitter-oss: update OSS libraries post-release to 18.12 Nov 13, 2018
build.sbt Twitter-oss: update OSS libraries post-release to 18.12 Nov 13, 2018
link-netty.sh [split] finagle-core: introduce Transports and Dispatchers Apr 12, 2012
pushsite.bash csl: Updated pushsites scripts for sbt 1.0.x Nov 10, 2017
sbt Upgrade sbt to 1.1.4 Apr 26, 2018

README.md



Finagle

Build status Codecov 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.

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.