A Thrift parser/generator
Clone or download
kevinoliver and jenkins finagle-core: Java compat for TypeAgnostic.Identity
Problem

Java users don't have a clean API to access `Filter.TypeAgnostic.Identity`.

Solution

Introduce `Filter.typeAgnosticIdentity()`.

JIRA Issues: CSL-7227

Differential Revision: https://phabricator.twitter.biz/D242006
Latest commit a7ac3be Nov 14, 2018
Permalink
Failed to load latest commit information.
.github Twitter OSS: Add ISSUE_TEMPLATE Jul 7, 2016
demos/scrooge-maven-demo Twitter-oss: update OSS libraries post-release to 18.12 Nov 13, 2018
doc/src/sphinx Rename CHANGES to CHANGELOG.rst Aug 24, 2018
project scrooge: Turn on scrooge-adaptive Jul 3, 2018
scrooge-adaptive scrooge: Enable scalafmt Nov 1, 2018
scrooge-benchmark Convert deprecated fatal_warnings usages to use the new compiler_opti… Sep 12, 2018
scrooge-core scrooge: Enable scalafmt Nov 1, 2018
scrooge-generator-tests finagle-core: Java compat for TypeAgnostic.Identity Nov 14, 2018
scrooge-generator finagle-core: Java compat for TypeAgnostic.Identity Nov 14, 2018
scrooge-linter scrooge: Enable scalafmt Nov 1, 2018
scrooge-maven-plugin Twitter-oss: update OSS libraries post-release to 18.12 Nov 13, 2018
scrooge-sbt-plugin scrooge-sbt-plugin: Clarify default for scroogeThriftOutputFolder Mar 6, 2018
scrooge-serializer Convert deprecated fatal_warnings usages to use the new compiler_opti… Sep 12, 2018
.gitignore [split] scrooge: Cache mustache resources to improve generation perfo… Oct 7, 2014
.travis.yml Upgrade scalac 2.12 to 2.12.7 Oct 15, 2018
CHANGELOG.rst finagle-thrift,scrooge-generator: Add `c.t.finagle.thrift.MethodMetad… Nov 14, 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 [split] improve SocialGraphUtil exception logging Sep 11, 2014
CONTRIBUTING.md Rename CHANGES to CHANGELOG.rst Aug 24, 2018
GROUPS [split] improve SocialGraphUtil exception logging Sep 11, 2014
LICENSE [split] improve SocialGraphUtil exception logging Sep 11, 2014
OWNERS finagle/scrooge/util: add dschobel to owners Nov 16, 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
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

Scrooge

Build status Codecov Project status Gitter Maven Central

Scrooge is a thrift code generator written in Scala, which currently generates code for Scala, Java, Cocoa, Android and Lua.

It's meant to be a replacement for the apache thrift code generator, and generates conforming, compatible binary codecs by building on top of libthrift. It integrates with the finagle project, exporting stats and finagle APIs, and makes it easy to build high throughput, low latency, robust thrift servers and clients.

Part of the motivation behind scrooge's scala implementation is that since Scala is API-compatible with Java, you can use the apache thrift code generator to generate Java files and use them from within Scala, but the generated code uses Java collections and mutable "bean" classes, causing some annoying boilerplate conversions to be hand-written. Scrooge bypasses the problem by generating Scala code directly. It also uses Scala syntax so the generated code is much more compact.

There is a comprehensive set of unit tests, which generate code, compile it, and execute it to verify expectations, as well as gold files to make it easy to review the effects of changes to the generator.

Status

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

Building the develop branch locally

We are not currently publishing snapshots for Scrooge's dependencies, which means that it may be necessary to publish the develop branches of these libraries locally in order to work on Scrooge's develop branch. To do so you can use our build tool, dodo.

curl -s https://raw.githubusercontent.com/twitter/dodo/develop/bin/build | bash -s -- --no-test scrooge

If you have any questions or run into any problems, please create an issue here, tweet at us at @finagle, or email the Finaglers mailing list.

Full Documentation

https://twitter.github.io/scrooge/

Copyright 2013-2017 Twitter, Inc.