All Projects → twitter → Scrooge

twitter / Scrooge

Licence: apache-2.0
A Thrift parser/generator

Programming Languages

java
68154 projects - #9 most used programming language
scala
5932 projects
lua
6591 projects

Projects that are alternatives of or similar to Scrooge

Awesome Tensor Compilers
A list of awesome compiler projects and papers for tensor computation and deep learning.
Stars: ✭ 490 (-32.32%)
Mutual labels:  code-generation
Bender
An easy-to-use library for creating load testing applications
Stars: ✭ 583 (-19.48%)
Mutual labels:  thrift
Jboot
一个优雅的微服务框架,SpringCloud 之外的另一个选择,已经使用在用户量过亿的商业产品上,有超过1000家公司在使用Jboot做极速开发...
Stars: ✭ 655 (-9.53%)
Mutual labels:  thrift
Srpc
RPC based on C++ Workflow
Stars: ✭ 521 (-28.04%)
Mutual labels:  thrift
Weaver
Dependency Injection framework for Swift (iOS/macOS/Linux)
Stars: ✭ 546 (-24.59%)
Mutual labels:  code-generation
Strongbox
A KeePass/Password Safe Client for iOS and OS X
Stars: ✭ 586 (-19.06%)
Mutual labels:  cocoa
Laravel Code Generator
An intelligent code generator for Laravel framework that will save you time! This awesome tool will help you generate resources like views, controllers, routes, migrations, languages and/or form-requests! It is extremely flexible and customizable to cover many on the use cases. It is shipped with cross-browsers compatible template, along with a client-side validation to modernize your application.
Stars: ✭ 485 (-33.01%)
Mutual labels:  code-generation
Xit
Mac OS X Git GUI
Stars: ✭ 700 (-3.31%)
Mutual labels:  cocoa
Entityframework Reverse Poco Code First Generator
EntityFramework Reverse POCO Code First Generator - Beautifully generated code that is fully customisable. This generator creates code as if you reverse engineered a database and lovingly created the code by hand. It is free to academics (you need a .edu or a .ac email address), not free for commercial use. Obtain your licence from
Stars: ✭ 562 (-22.38%)
Mutual labels:  code-generation
Orsserialport
Serial port library for Objective-C and Swift macOS apps
Stars: ✭ 609 (-15.88%)
Mutual labels:  cocoa
Truss
Truss helps you build go-kit microservices without having to worry about writing or maintaining boilerplate code.
Stars: ✭ 523 (-27.76%)
Mutual labels:  code-generation
Brian2
Brian is a free, open source simulator for spiking neural networks.
Stars: ✭ 533 (-26.38%)
Mutual labels:  code-generation
Colfer
binary serialization format
Stars: ✭ 597 (-17.54%)
Mutual labels:  code-generation
Brisk
✨Cross-platform set of tools for building native UIs with Reason/OCaml
Stars: ✭ 518 (-28.45%)
Mutual labels:  cocoa
Latest
A small utility app for macOS that makes sure you know about all the latest updates to the apps you use.
Stars: ✭ 657 (-9.25%)
Mutual labels:  cocoa
Midiapps
MIDI apps for Mac OS X: MIDI Monitor and SysEx Librarian.
Stars: ✭ 488 (-32.6%)
Mutual labels:  cocoa
Vimr
Project VimR is a Neovim GUI for macOS. The goal is to build an editor that uses Neovim inside with many of the convenience GUI features similar to those present in modern editors. We mainly use Swift, but also use C/Objective-C when where appropriate.
Stars: ✭ 5,524 (+662.98%)
Mutual labels:  cocoa
Casadi
CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.
Stars: ✭ 714 (-1.38%)
Mutual labels:  code-generation
Tiramisu
A polyhedral compiler for expressing fast and portable data parallel algorithms
Stars: ✭ 685 (-5.39%)
Mutual labels:  code-generation
Jsesc
Given some data, jsesc returns the shortest possible stringified & ASCII-safe representation of that data.
Stars: ✭ 600 (-17.13%)
Mutual labels:  code-generation

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/

License

Copyright 2013 Twitter, Inc.

Licensed under the Apache License, Version 2.0: https://www.apache.org/licenses/LICENSE-2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].