Index
A
- Adopters page
- URL / Apache Thrift in Twitter
- Ansible
- URL / Code deployment
- Apache Avro
- URL / Apache Avro
- about / Apache Avro
- Apache Thrift
- distributed systems / Distributed systems and their services, Distributed systems
- service-oriented architecture / Service-oriented architecture
- about / An introduction to Apache Thrift
- supported programming languages / Supported programming languages
- reference / Supported programming languages
- data types / Data types
- transports / Transports
- protocols / Protocols
- versioning / Versioning
- security / Security
- interface description language / Interface description language
- considerations / When to choose Apache Thrift
- installing, on Linux / Installing Apache Thrift on Linux
- installing, on Mac OS X / Installing Apache Thrift on Mac OS X, Installing Apache Thrift
- installing, on Windows / Installing Apache Thrift on Windows
- installation, testing / Testing the installation
- tools, preparing / Prepare your tools
- architecture / Apache Thrift's architecture
- type system / Apache Thrift's type system
- IDL syntax / IDL syntax
- real-world examples / Real-world examples of the usage of Apache Thrift
- Apache Thrift, in production
- about / Apache Thrift in production
- code version control systems / Code version control systems
- code deployment / Code deployment
- Apache Thrift versioning / Apache Thrift versioning
- Apache Thrift performance / Apache Thrift performance
- service multiplexing / Service multiplexing
- security issues / Security issues
- Apache Thrift-enabled application
- necessary project files, creating / Creating necessary project files
- code, running / Running the code, What really happened?
- code, analyzing / Analyzing the code
- Apache Thrift document
- preparing / Preparing the Apache Thrift document
- base.thrift / The basic toolbox – base.thrift
- mytoolbox.thrift / The MyToolbox service – mytoolbox.thrift
- IDL files compiling / Compiling the IDL files
- Apache Thrift installation, on Linux
- performing / Installing Apache Thrift on Linux, Installing Apache Thrift
- requisites / Installation requirements
- dependencies, installing / Installing dependencies
- dependencies, installing on CentOS / Installing dependencies on CentOS
- dependencies, installing on Debian and Ubuntu / Installing dependencies on Debian and Ubuntu
- Apache Thrift performance
- about / Apache Thrift performance
- Java servers, comparing / Comparing Java servers
- C++ servers, comparing / Comparing C++ servers
- architecture, Apache Thrift
- about / Apache Thrift's architecture
- schema, for typical workflow / Going about using the tool
- network stack / The network stack
- authentication / General security tips
- authorization / General security tips
B
- base.thrift / The basic toolbox – base.thrift
- basic variable types
- about / Basic types
C
- C++
- about / C++
- code, generating / Generating the code
- code, examining / Examining the code
- transports / Transports
- protocols / Protocols
- servers / Servers
- service, implementing / Implementing and running the service
- service, running / Implementing and running the service
- client, implementing / Implementing and running the client
- client, running / Implementing and running the client
- Capistrano
- URL / Code deployment
- Chef
- URL / Code deployment
- clients
- implementing / Implementing and running clients
- running / Implementing and running clients
- creating, in PHP / Creating a client in PHP
- creating, in Ruby / Creating a client in Ruby
- code, Apache Thrift-enabled application
- analyzing / Analyzing the code
- service description / The service description – IDL
- server script / The server script – PHP
- client script / The client script – Python
- Common Object Request Broker Architecture (CORBA)
- compiler errors
- about / Syntax errors
- containers
- about / Containers
- list / list
- set / set
- map / map
- usage / Usage of containers
- custom protocols
- about / Custom protocols
- disadvantages / Custom protocols
D
- data types
- about / Data types
- decoding / Protocol
- definitions
- about / Definitions
- const keyword / const
- typedef keyword / typedef
- dependency hell
- about / Versioning
- Diffy
- about / Apache Thrift in Twitter
- URL / Apache Thrift in Twitter
- distributed systems, Apache Thrift
- about / Distributed systems
- maintainability / Maintainability
- scalability / Scalability
- testability / Testability
E
- encoding / Protocol
- enums
- about / Enums
- errors
- about / What are the type of errors that can occur?
- syntax errors / Syntax errors
- runtime errors / Runtime errors
- logic errors / Logic errors
- Evernote
- URL / Apache Thrift in Evernote
- about / Apache Thrift in Evernote
- usage, in Apache Thrift / Apache Thrift in Evernote
- example application
- about / Our example application
- planning / Planning out your work
- overview / Getting a general idea of the example application
- errors / Getting a general idea of the example application
- technical overview / A technical overview of the application
- exception handling, Apache Thrift
- about / Handling exceptions in Apache Thrift
- example code / An example code
- divide method, implementing / Implementing the divide method
- without error handling / Running the application without error handling
- error handling, adding to server / Adding error handling to the server
- error handling, adding to client / Adding error handling to the client
- advanced error handling / Advanced error handling
- exceptions
F
- Facebook
- URL / FBThrift in Facebook
- FBThrift, in Facebook
- about / FBThrift in Facebook
- URL / FBThrift in Facebook
- Finagle
- URL / Apache Thrift in Twitter
- about / Apache Thrift in Twitter
- Flipkart
- Folly
- URL / FBThrift in Facebook
G
- guest / Installing dependencies
H
- headers, IDL syntax
- about / Headers
- Thrift include / Thrift include
- C++ include / C++ include
- namespace / Namespace
- Homebrew
- horizontal scaling / Scalability
- host / Installing dependencies
- HTTP methods
- GET / RESTful APIs
- PUT / RESTful APIs
- POST / RESTful APIs
- DELETE / RESTful APIs
I
- IDL syntax
- about / IDL syntax
- comments / Comments
- document / Document
- headers / Headers
- definitions / Definitions
- installation
- Apache Thrift, on Linux / Installing Apache Thrift on Linux
- Apache Thrift, on Mac OS X / Installing Apache Thrift on Mac OS X
- Apache Thrift, on Windows / Installing Apache Thrift on Windows
- interface definition language (IDL) / An introduction to Apache Thrift
J
- Java
- about / Java
- code, generating / Generating the code
- code, examining / Examining the code
- transports / Transports
- protocols / Protocols
- servers / Servers
- service, implementing / Implementing and running the service
- service, running / Implementing and running the service
- client, running / Implementing and running the client
- client, implementing / Implementing and running the client
- JavaScript
- about / JavaScript
- code, generating / Generating the code
- code, examining / Examining the code
- servers / Transport, protocol, and servers
- transports / Transport, protocol, and servers
- protocols / Transport, protocol, and servers
- client, implementing / Implementing and running the client
- client, running / Implementing and running the client
- JSON-RPC
- about / XML-RPC and JSON-RPC
L
- Linux
- Apache Thrift, installing / Installing Apache Thrift on Linux
- Linux ISO image
- URL / Installing dependencies
- logic errors
- about / Logic errors
M
- Mac OS X
- Apache Thrift, installing / Installing Apache Thrift on Mac OS X, Installing Apache Thrift
- MapKeeper
- reference / Apache Thrift performance
- multiplexing
- about / Protocols
- mytoolbox.thrift / The MyToolbox service – mytoolbox.thrift
N
- network stack
- transport layer / Transport
- protocol / Protocol
- processor / Processor
- server and client / Server and client
- example / Example
- new_style classes / Generating the code
- nodes / Scalability
O
- Oracle VirtualBox
- URL / Installing dependencies
P
- Phantom
- PHP
- about / PHP
- code, generating / Generating the code
- code, examining / Examining the code
- transports / Transports
- protocols / Protocols
- servers / Servers
- service, implementing / Implementing and running the service
- service, running / Implementing and running the service
- client, implementing / Implementing and running the client
- client, running / Implementing and running the client
- PHP documentation
- URL / The service code in PHP
- project files, Apache Thrift-enabled application
- creating / Creating necessary project files
- local copy of Apache Thrift libraries, creating / Creating a local copy of the Apache Thrift libraries
- first service, defining / Defining our first service and generating files
- files, generating / Defining our first service and generating files
- service code, in PHP / The service code in PHP
- client code, in Python / The client code in Python
- Protocol Buffers
- about / Protocol Buffers
- protocols
- Puppet
- URL / Code deployment
- Python
- about / Python
- code, generating / Generating the code
- code, examining / Examining the code
- transports / Transports
- protocols / Protocols
- servers / Servers
- libraries, building / Building the libraries
- service, implementing / Implementing and running the service
- service, running / Implementing and running the service
- client, implementing / Implementing and running the client
- client, running / Implementing and running the client
Q
- Quasar
R
- real-world examples, Apache Thrift
- FBThrift in Facebook / FBThrift in Facebook
- Apache Thrift in Evernote / Apache Thrift in Evernote
- Apache Thrift in Twitter / Apache Thrift in Twitter
- Apache Thrift in other companies / Apache Thrift in other companies
- remote procedure call (RPC)
- about / XML-RPC and JSON-RPC
- Representational State Transfer (REST)
- about / RESTful APIs
- RESTful APIs
- about / RESTful APIs
- HTTP methods, using / RESTful APIs
- advantages / RESTful APIs
- disadvantages / RESTful APIs
- Ruby
- about / Ruby
- code, generating / Generating the code
- code, examining / Examining the code
- transports / Transports
- protocols / Protocols
- servers / Servers
- service, implementing / Implementing and running the service
- service, running / Implementing and running the service
- client, implementing / Implementing and running the client
- client, running / Implementing and running the client
- runtime errors
- about / Runtime errors
- examples / Runtime errors
S
- Scala Build Tool (SBT) / Apache Thrift in Twitter
- Scrooge
- URL / Apache Thrift in Twitter
- about / Apache Thrift in Twitter
- security
- about / Security
- security issues
- about / Security issues
- general security tips / General security tips
- Transport Layer Security (TLS) / Transport Layer Security/Secure Sockets Layer
- Secure Sockets Layer (SSL) / Transport Layer Security/Secure Sockets Layer
- keystores, generating / Generating keystores
- keystores, using in Java code / Using keystores in the Java code
- serialization / An introduction to Apache Thrift
- server
- about / Server and client
- TNonblockingServer / Server and client
- TThreadPoolServer / Server and client
- TSimpleServer / Server and client
- server implementation
- about / Implementing the server
- files, importing / Imports
- errors, displaying on console / Displaying errors on the console (logger)
- service methods, implementing / Implementing service methods
- server, creating / Creating the server
- server, running / Running the server
- servers, Java
- servers, Python
- servers, Ruby
- service-oriented architecture (SOA) / Service-oriented architecture
- services
- about / Services
- Simple Authentication and Security Layer (SASL) / Transports
- slots
- about / Generating the code
- reference / Generating the code
- SOAP
- about / SOAP and WSDL
- SOAP message
- envelope / SOAP and WSDL
- header / SOAP and WSDL
- body / SOAP and WSDL
- fault / SOAP and WSDL
- special types
- about / Special types
- structs
- about / Structs
T
- technical overview, example application
- about / A technical overview of the application
- get_distance / get_distance
- find_occurences / find_occurences
- save_to_log / save_to_log
- server / The server
- clients / Clients
- test-driven development (TDD)
- about / Logic errors
- throwing an exception / What are exceptions and how to handle them?
- time zone identifiers
- reference / The service code in PHP
- tornado
- about / Generating the code
- URL / Generating the code
- transports
- transports, C++
- about / Transports
- TMemoryBuffer / Transports
- THttpTransport / Transports
- TPipe / Transports
- TSSLSocket / Transports
- TZlibTransport / Transports
- transports, Java
- TFastFramedTransport / Transports
- TSaslClientTransport / Transports
- TSaslServerTransport / Transports
- transports, Python
- about / Transports
- TMemoryBuffer / Transports
- TSSLSocket / Transports
- TSaslClient / Transports
- TZlibTransport / Transports
- THttpClient / Transports
- transports, Ruby
- about / Transports
- IOStreamTransport / Transports
- MemoryBufferTransport / Transports
- twisted
- about / Generating the code
- URL / Generating the code
- Twitter
- about / Apache Thrift in Twitter
- URL / Apache Thrift in Twitter
- usage, in Apache Thrift / Apache Thrift in Twitter
- type system
- about / Apache Thrift's type system
- basic types / Apache Thrift's type system, Basic types
- special types / Apache Thrift's type system, Special types
- structs / Apache Thrift's type system, Structs
- containers / Apache Thrift's type system, Containers
- exceptions / Apache Thrift's type system, Exceptions
- services / Apache Thrift's type system, Services
- unions / Unions
- enums / Enums
U
- uniformly namespaces / Namespace
- unions
- about / Unions
- Universal Resource Identifier (URI) / RESTful APIs
- utf8strings
- about / Generating the code
V
- version control systems (VCSs) / Code version control systems
- security (backup) / Code version control systems
- collaboration / Code version control systems
- version control / Code version control systems
- code delivery / Code version control systems
- versioning
- about / Versioning
- vertical scaling / Scalability
- VMware Player Pro
- URL / Installing dependencies
W
- Web Services Description Language (WSDL) / SOAP and WSDL
- Windows
- Apache Thrift, installing / Installing Apache Thrift on Windows
- workflow, Apache Thrift
- services, designing / Designing the services
- interface description, preparing / Preparing the interface description
- service, generating / Generating service and client libraries
- client libraries / Generating service and client libraries
- services, implementing / Implementing services and clients
- clients, implementing / Implementing services and clients
- server, running / Running server and clients
- clients, running / Running server and clients
X
- XML-RPC
- about / XML-RPC and JSON-RPC