Thrift

A software framework for scalable cross-language services development
Download

Thrift Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Apache
  • Price:
  • FREE
  • Publisher Name:
  • Apache Software Foundation
  • Publisher web site:
  • http://www.apache.org/
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 654 KB

Thrift Tags


Thrift Description

A software framework for scalable cross-language services development Thrift combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Ruby, Erlang, Perl, Java, Python, PHP, Haskell, C#, Cocoa, Smalltalk, and OCaml.Thrift allows you to define data types and service interfaces in a simple definition file. Taking that file as input, the compiler generates code to be used to easily build RPC clients and servers that communicate seamlessly across programming languages.Thrift is specifically designed to support non-atomic version changes across client and server code.NOTE: Detailed Mac OS X installation instructions can be found HERE. Here are some key features of "Thrift": Simplicity: · Thrift code is simple and approachable, free of unnecessary dependencies. Transparency: · Thrift conforms to the most common idioms in all languages. Consistency: · Niche, language-specific features belong in extensions, not the core library. Performance: · Strive for performance first, elegance second. · interface description language - Everything is specified in an IDL file from which bindings for many languages can be generated. See ThriftIDL · language bindings - Thrift is supported in many languages and environments: C++, C#, Cocoa, Erlang, Haskell, Java, OCaml, Perl, PHP, Python, Ruby, Smalltalk. · namespaces - Each Thrift file is in its own namespace allowing you to use the same identifier in multiple Thrift files · language namespaces - Per Thrift file you can specify which namespace should be used for each programming language · base types - Thrift has a small set of base types. See ThriftTypes · constants and enumerations - Constant values can be assigned logical names · structs - Use structs to group related data. Structs can have fields of any type. See ThriftTypes · sparse structs - Optional base fields that have not been set and reference fields that are null will not be sent across the wire · struct evolution - The addition and removal of fields is handled without breaking existing clients by using integer identifiers for fields · containers - You can use sets, lists and maps of any type: base types, structs and other containers. See ThriftTypes · type definitions - Any type can be given a name that better describes it · services - A service is a group of functions · service inheritance - Subservices implement all functions of their base services and can have additional functions · asynchronous invocations - Functions that do not return a result can be invoked asynchronously so the client is not blocked until the server has finished processing the request. The server may execute asynchronous invocations of the same client in parallel/out of order · exceptions - If an error occurs a function can throw a standard or user-defined exception.


Thrift Related Software