Skip to content

apakulov/scrooge

This branch is 621 commits behind twitter/scrooge:develop.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

df53ee3 · Jun 1, 2017
Jul 7, 2016
May 9, 2017
Mar 25, 2017
Jun 1, 2017
Nov 14, 2016
May 15, 2017
May 26, 2017
May 26, 2017
Feb 27, 2017
Apr 20, 2017
Oct 17, 2016
Nov 7, 2016
Oct 7, 2014
Jun 1, 2017
May 26, 2017
May 28, 2014
Apr 25, 2017
Aug 1, 2013
Jul 30, 2013
Feb 3, 2017
May 15, 2017
Nov 7, 2016
Jun 1, 2017

Repository files navigation

Scrooge

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

Packages

No packages published

Languages

  • Scala 58.5%
  • Java 19.6%
  • HTML 7.2%
  • Thrift 6.2%
  • Objective-C 5.2%
  • Shell 1.4%
  • Other 1.9%