A fault tolerant, protocol-agnostic RPC system
Scala Java Python Ruby Thrift Lua Other
Latest commit 327a8f3 Jan 22, 2017 @vkostyukov vkostyukov committed with jenkins finagle-http: Introduce HeaderMap.getOrNull
Problem

Preserving Netty behavior w.r.t. retrieving header values is hard in Java since
there is no easy way of getting a header or `null` if it does not exist. In Scala,
this could be mimicked with `get("foo").orNull`, which is not accessible from Java
(think of implicit param for `orNull`). It's still possible to `getOrElse` from
Java but it requires pre-allocating a `Function0` instance that returns a default
value (this is painful).

Solution

Introduce Java-friendly `headerMap.getOrNull` method.

RB_ID=904093
Permalink
Failed to load latest commit information.
.github Twitter OSS: Add ISSUE_TEMPLATE Jul 7, 2016
doc finagle-http2: Record stats for http2 upgrades Jan 11, 2017
finagle-base-http finagle-http: Introduce HeaderMap.getOrNull Jan 22, 2017
finagle-benchmark-thrift/src/main/thrift finagle-benchmark: Move the thrift out to work around the nested obje… Oct 12, 2015
finagle-benchmark util-core, finagle-core: Misc Buf changes Jan 21, 2017
finagle-commons-stats finagle-commons-stats: Provide an exporter for TwitterServer Jan 20, 2017
finagle-core finagle-core: Loosen Access Restrictions for SSL/TLS Primitives Jan 21, 2017
finagle-example Problem Jan 9, 2017
finagle-exception finagle-core: Remove deprecated ClientBuilder methods Dec 12, 2016
finagle-exp Remove Target “default” name in BUILD files - batch 2 Nov 7, 2016
finagle-http-compat Remove Target “default” name in BUILD files - batch 2 Nov 7, 2016
finagle-http util-core, finagle-core: Misc Buf changes Jan 21, 2017
finagle-http2 finagle-http2: Mark more tests as fixed Jan 19, 2017
finagle-integration finagle-core: Support per-request timeouts in MethodBuilder Jan 13, 2017
finagle-kestrel finagle-toggle: Hash the inputs to ToggleMap Toggles Jan 3, 2017
finagle-mdns Problem / Solution Dec 14, 2016
finagle-memcached finagle/finagle-memcached: Upgrade finagle-memcache from Group to Var… Jan 17, 2017
finagle-mux util-core, finagle-core: Misc Buf changes Jan 21, 2017
finagle-mysql util-core, finagle-core: Misc Buf changes Jan 21, 2017
finagle-native source: Deprecate com.twitter.util.NonFatal Dec 5, 2016
finagle-netty4-http finagle-http: Introduce HeaderMap.getOrNull Jan 22, 2017
finagle-netty4 util-core, finagle-core: Misc Buf changes Jan 21, 2017
finagle-ostrich4 twitter-server: Add ability to specify admin interface UI grouping, a… Nov 14, 2016
finagle-redis finagle: dschobel to root owners Jan 13, 2017
finagle-serversets Science Is All Around Us Jan 17, 2017
finagle-spdy Remove Target “default” name in BUILD files - batch 2 Nov 7, 2016
finagle-stats Science Is All Around Us Jan 17, 2017
finagle-stream Remove Target “default” name in BUILD files - batch 2 Nov 7, 2016
finagle-thrift finagle-core: Back Context with a Map and reduce the API surface Jan 11, 2017
finagle-thriftmux DPB-7578: add used but undeclared dependencies (7/) Dec 12, 2016
finagle-toggle finagle-toggle: Hash the inputs to ToggleMap Toggles Jan 3, 2017
finagle-zipkin-core source: Deprecate com.twitter.util.NonFatal Dec 5, 2016
finagle-zipkin finagle-core: Remove deprecated ClientBuilder methods Dec 12, 2016
project util-core, finagle-core: Misc Buf changes Jan 21, 2017
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 libraries: Cache Dodo build artifacts Jan 9, 2017
ADOPTERS.md Adding EnerNOC Inc to the list of adopters Nov 7, 2016
CHANGES finagle-http: Introduce HeaderMap.getOrNull Jan 22, 2017
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 finagle: dschobel to root owners Jan 13, 2017
README.md util,scrooge,ostrich,twitter-server: More 2.12 Jan 5, 2017
link-netty.sh [split] finagle-core: introduce Transports and Dispatchers Apr 12, 2012
pushsite.bash csl: Fix Finagle pushsite for 2.12 Dec 21, 2016
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.