Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Thrift Wiki" for change 
notification.

The following page has been changed by JohanStuyts:
http://wiki.apache.org/thrift/ThriftFeatures

New page:
= Thrift Features =

== Features ==

 * 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
 * exceptions - If an error occurs a function can throw a standard or 
user-defined exception. See ThriftTypes

== Non-features ==

The following is not supported by Thrift:

 * cyclic structs - Structs can only contain structs that have been declared 
before it. A struct also cannot contain itself
 * struct inheritance - Use struct composition instead
 * polymorphism - As there is no inheritance, polymorphism is also not supported
 * heterogeneous containers - All items in a container must be of the same type 
 * {{{null}}} return - {{{null}}} cannot be returned directly from a function. 
Use a wrapper struct or a marker value instead

Reply via email to