scrooge - A Thrift parser/generator

  •        11

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.

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

Tags
Implementation
License
Platform

   




Related Projects

finatra - Fast, testable, Scala services built on Twitter-Server and Finagle

  •    Scala

This project is used in production at Twitter (and many other organizations), and is being actively developed and maintained.Finatra is a lightweight framework for building fast, testable, scala applications on top of TwitterServer and Finagle. Finatra provides an easy-to-use API for creating and testing Finagle servers and apps as well as powerful JSON support, modern logging via SLF4J, Finagle client utilities, and more.

snowflake - Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees

  •    Scala

We have retired the initial release of Snowflake and working on open sourcing the next version based on Twitter-server, in a form that can run anywhere without requiring Twitter's own infrastructure services.The initial version, released in 2010, was based on Apache Thrift and it predated Finagle, our building block for RPC services at Twitter. The Snowflake we're using internally is a full rewrite and heavily relies on existing infrastructure at Twitter to run. We cannot commit to a date but we're doing our best to add necessary features to make Snowflake fit for many environments outside of Twitter.

snowflake - Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees

  •    Scala

We have retired the initial release of Snowflake and working on open sourcing the next version based on Twitter-server, in a form that can run anywhere without requiring Twitter's own infrastructure services. The initial version, released in 2010, was based on Apache Thrift and it predated Finagle, our building block for RPC services at Twitter. The Snowflake we're using internally is a full rewrite and heavily relies on existing infrastructure at Twitter to run. We cannot commit to a date but we're doing our best to add necessary features to make Snowflake fit for many environments outside of Twitter.

thrift - Mirror of Apache Thrift

  •    C++

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.Thrift is a lightweight, language-independent software stack with an associated code generation mechanism for RPC. Thrift provides clean abstractions for data transport, data serialization, and application level processing. The code generation system takes a simple definition language as its input and generates code across programming languages that uses the abstracted stack to build interoperable RPC clients and servers.

thrifty - Thrift for Android that saves you methods

  •    Java

Thrifty is an implementation of the Apache Thrift software stack for Android, which uses 1/4 of the method count taken by the Apache Thrift compiler.Thrift is a widely-used cross-language service-definition software stack, with a nifty interface definition language from which to generate types and RPC implementations. Unfortunately for Android devs, the canonical implementation generates very verbose and method-heavy Java code, in a manner that is not very Proguard-friendly.


go-thrift - A native Thrift package for Go

  •    Go

3-clause BSD. See LICENSE file. Thrift is an IDL that can be used to generate RPC client and server bindings for a variety of languages. This package includes client and server codecs, serialization, and code generation for Go. It tries to be a more natural mapping to the language compared to other implementations. For instance, Go already has the idea of a thrift transport in the ReadWriteCloser interfaces.

Finagle - A fault tolerant, protocol-agnostic RPC system

  •    Java

Finagle is an asynchronous network stack for the JVM that you can use to build asynchronous Remote Procedure Call (RPC) clients and servers in Java, Scala, or any JVM-hosted language. Finagle provides a rich set of tools that are protocol independent.

android-parcelable-intellij-plugin - IntelliJ Plugin for Android Parcelable boilerplate code generation

  •    Java

This tool generates an Android Parcelable implementation based on fields in the class. Just press ALT + Insert (or your equivalent keybinding for code generation) in your editor and select Parcelable. It allows you to select the fields to be parceled.

Android-Bootstrap - Bootstrap style widgets for Android, with Glyph Icons

  •    Java

Android Bootstrap is an Android library which provides custom views styled according to the Twitter Bootstrap Specification. This allows you to spend more time on development rather than trying to get a consistent theme across your app, especially if you are already familiar with the Bootstrap Framework. You should then checkout the library and investigate the sample code, which covers most of the features. The sample app is also available on Google Play.

apollo-android - :pager: A strongly-typed, caching GraphQL client for Android, written in Java

  •    Java

Apollo-Android is a GraphQL compliant client that generates Java models from standard GraphQL queries. These models give you a typesafe API to work with GraphQL servers. Apollo will help you keep your GraphQL query statements together, organized, and easy to access from Java. Change a query and recompile your project - Apollo code gen will rebuild your data model. Code generation also allows Apollo to read and unmarshal responses from the network without the need of any reflection (see example generated code below). Future versions of Apollo-Android will also work with AutoValue and other value object generators.

android-contentprovider-generator - A tool to generate Android ContentProviders.

  •    Java

The Gradle plugin is perhaps the 'cleaner' way in the sense that the generated code won't be part of the source (not checked into VCS). The configuration is declared inside the Gradle script which allows to update it easily. Alternatively, a one-time generation can be done (typically at the beginning of the project.) The generated code is part of the source and checked into VCS: this allows you to modify it if you need to.

finch - Scala combinator library for building Finagle HTTP services

  •    Scala

Finch is a thin layer of purely functional basic blocks atop of Finagle for building composable HTTP APIs. Its mission is to provide the developers simple and robust HTTP primitives being as close as possible to the bare metal Finagle API. Every Finch module is published at Maven Central. Use the following sbt snippet ...

RoboBinding - A data-binding Presentation Model(MVVM) framework for the Android platform.

  •    Java

As personal time contraints, I am currently unable to keep up. Please use official android databinding instead. A data-binding Presentation Model (MVVM) framework for the Android platform. RoboBinding helps you write UI code that is easier to read, test and maintain without performance compromise (code generation instead of java reflection).

RoboCoP - Pure Java code generation tool for generating a fully functional ContentProvider for Android

  •    Java

RoboCoP is a Java library that can generate a fully-functional ContentProvider from a simple JSON schema file. Remember that for the code generation to generate nice looking code, you need to write all of your schema values in lower case and underscore-separated.

elephant-bird - Twitter's collection of LZO and Protocol Buffer-related Hadoop, Pig, Hive, and HBase code

  •    Java

Elephant Bird is Twitter's open source library of LZO, Thrift, and/or Protocol Buffer-related Hadoop InputFormats, OutputFormats, Writables, Pig LoadFuncs, Hive SerDe, HBase miscellanea, etc. The majority of these are in production at Twitter running over data every day.

riffed - Provides idiomatic Elixir bindings for Apache Thrift

  •    Elixir

Thrift's Erlang implementation isn't very pleasant to use in Elixir. It prefers records to structs, littering your code with tuples. It swallows enumerations you've defined, banishing them to the realm of wind and ghosts. It requires that you write a bunch of boilerplate handler code, and client code that's not very Elixir-y. Riffed fixes this. For a detailed guide on how to get started with Riffed, and creating your first Riffed server and client, see the Getting Started Guide. For a general summary of some of the features Riffed provides, continue reading.

web3j - Connect Java and Android apps to the Ethereum blockchain

  •    Java

web3j is a lightweight, reactive, type safe Java and Android library for integrating with clients (nodes) on the Ethereum network. This allows you to work with the Ethereum blockchain, without the additional overhead of having to write your own integration code for the platform.

dagger2-example - Sample Android project using Dagger2, retrolambda, lombok and butterknife

  •    Java

This is just a sample Android project which demonstrates the way of integrating Dagger2 into your application. Additionally, this app also acts as a demo of retrolambda, lombok and butterknife usage in your android apps. Checkout the code to find lambdas from Java8 and automatic boilerplate code generation.

talon-for-twitter-android - The Material Design version of my popular Android Talon for Twitter app, 100% open-source

  •    Java

This is the complete version of the Twitter client that I created for Android. It is 100% open source, the only thing that you will have to do plug in is your own API keys. I am lucky enough to say that, as a paid app, Talon has perched itself at the top of the top paid social apps list since it's release in 2014. It has amassed 100,000+ downloads while holding a 4.6 star rating on the Play Store. This app is one of the more successful apps I have ever made and I am open sourcing it as a "thank you" to everyone that has supported my work over the years! It works great and I'm proud to say that it can probably be considered one of the most popular third party Twitter apps.

android-parcelable-intellij-plugin-kotlin - Plugin which generates Android Parcelable boilerplate code for kotlin's class

  •    Java

It depends on the latest version of Kotlin plugin. Just press ALT + Insert (or your equivalent keybinding for code generation) in your editor and select Parcelable. It will auto generate Parcelable boilerplate code for your class.