Skip to content

Latest commit

 

History

History
94 lines (87 loc) · 4.25 KB

index.md

File metadata and controls

94 lines (87 loc) · 4.25 KB
title
Home

The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.

Getting Started

  • Download Apache Thrift

    To get started, download a copy of Thrift.

  • Build and Install the Apache Thrift compiler

    You will then need to build the Apache Thrift compiler and install it. See the installing Thrift guide for any help with this step.

  • Writing a .thrift file

    After the Thrift compiler is installed you will need to create a thrift file. This file is an interface definition made up of thrift types and Services. The services you define in this file are implemented by the server and are called by any clients. The Thrift compiler is used to generate your Thrift File into source code which is used by the different client libraries and the server you write. To generate the source from a thrift file run

    thrift --gen <language> <Thrift filename>

    The sample tutorial.thrift file used for all the client and server tutorials can be found here.


To learn more about Apache Thrift Read the Whitepaper

Download

Apache Thrift v{{ site.current_release }}

Download v{{ site.current_release }}

SHA256 | SHA1 | MD5 | PGP


Example

Apache 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. Instead of writing a load of boilerplate code to serialize and transport your objects and invoke remote methods, you can get right down to business.

The following example is a simple service to store user objects for a web front end.

{% remote_snippet tutorial/tutorial.thrift text 123,150 %}
{% remote_snippet tutorial/py/PythonClient.py py 35,55 %}
Initialize the Server: {% remote_snippet tutorial/java/src/JavaServer.java java 64,76 %}
The CalculatorHandler:
  {% remote_snippet tutorial/java/src/CalculatorHandler.java java 27,91 %}
</div>