【例子介绍】使用thrift、websocket在javascript和cpp之间建立rpc调用
使用thrift、websocket在javascript和c 之间建立rpc调用机制。 如果要使用js html来写界面,cpp来写底层业务逻辑,这就非常有用了。 当然,如果底层不用cpp来写,也可以参考本代码的js对thrift的rpc包装。
【相关图片】
【源码结构】
文件清单
└── js_cpp_rpc
├── aclocal
│ ├── ax_boost_base.m4
│ ├── ax_check_openssl.m4
│ ├── ax_dmd.m4
│ ├── ax_javac_and_java.m4
│ ├── ax_lib_event.m4
│ ├── ax_lib_zlib.m4
│ ├── ax_prog_perl_modules.m4
│ ├── ax_signed_right_shift.m4
│ └── ax_thrift_internal.m4
├── bootstrap.sh
├── CHANGES
├── cleanup.sh
├── compiler
│ └── cpp
│ ├── compiler.sln
│ ├── compiler.vcxproj
│ ├── compiler.vcxproj.filters
│ ├── Makefile.am
│ ├── README
│ ├── README_Windows.txt
│ ├── src
│ │ ├── generate
│ │ │ ├── t_as3_generator.cc
│ │ │ ├── t_c_glib_generator.cc
│ │ │ ├── t_cocoa_generator.cc
│ │ │ ├── t_cpp_generator.cc
│ │ │ ├── t_csharp_generator.cc
│ │ │ ├── t_delphi_generator.cc
│ │ │ ├── t_d_generator.cc
│ │ │ ├── t_erl_generator.cc
│ │ │ ├── t_generator.cc
│ │ │ ├── t_generator.h
│ │ │ ├── t_generator_registry.h
│ │ │ ├── t_go_generator.cc
│ │ │ ├── t_hs_generator.cc
│ │ │ ├── t_html_generator.cc
│ │ │ ├── t_html_generator.h
│ │ │ ├── t_java_generator.cc
│ │ │ ├── t_javame_generator.cc
│ │ │ ├── t_js_generator.cc
│ │ │ ├── t_ocaml_generator.cc
│ │ │ ├── t_oop_generator.h
│ │ │ ├── t_perl_generator.cc
│ │ │ ├── t_php_generator.cc
│ │ │ ├── t_py_generator.cc
│ │ │ ├── t_rb_generator.cc
│ │ │ ├── t_st_generator.cc
│ │ │ └── t_xsd_generator.cc
│ │ ├── globals.h
│ │ ├── main.cc
│ │ ├── main.h
│ │ ├── md5.c
│ │ ├── md5.h
│ │ ├── parse
│ │ │ ├── parse.cc
│ │ │ ├── t_base_type.h
│ │ │ ├── t_const.h
│ │ │ ├── t_const_value.h
│ │ │ ├── t_container.h
│ │ │ ├── t_doc.h
│ │ │ ├── t_enum.h
│ │ │ ├── t_enum_value.h
│ │ │ ├── t_field.h
│ │ │ ├── t_function.h
│ │ │ ├── t_list.h
│ │ │ ├── t_map.h
│ │ │ ├── t_program.h
│ │ │ ├── t_scope.h
│ │ │ ├── t_service.h
│ │ │ ├── t_set.h
│ │ │ ├── t_struct.h
│ │ │ ├── t_typedef.h
│ │ │ └── t_type.h
│ │ ├── platform.h
│ │ ├── thriftl.cc
│ │ ├── thriftl.ll
│ │ ├── thrifty.cc
│ │ ├── thrifty.h
│ │ ├── thrifty.yy
│ │ └── windows
│ │ ├── config.h
│ │ ├── version.h
│ │ └── version.h.in
│ ├── test_parser.sh
│ └── version.h.in
├── configure.ac
├── contrib
│ ├── async-test
│ │ ├── aggr.thrift
│ │ ├── Makefile
│ │ ├── test-leaf.py
│ │ └── test-server.cpp
│ ├── create-debian-packages.sh
│ ├── debian
│ │ ├── changelog
│ │ ├── compat
│ │ ├── control
│ │ ├── copyright
│ │ ├── debian
│ │ ├── dirs
│ │ ├── docs
│ │ ├── libthrift0.install
│ │ ├── libthrift-dev.install
│ │ ├── php5-thrift.dirs
│ │ ├── rules
│ │ ├── substvars
│ │ ├── thrift-doc.docs
│ │ └── thrift-doc.install
│ ├── fb303
│ │ ├── acinclude.m4
│ │ ├── aclocal
│ │ │ └── ax_boost_base.m4
│ │ ├── bootstrap.sh
│ │ ├── configure.ac
│ │ ├── cpp
│ │ │ ├── FacebookBase.cpp
│ │ │ ├── FacebookBase.h
│ │ │ ├── Makefile.am
│ │ │ ├── ServiceTracker.cpp
│ │ │ └── ServiceTracker.h
│ │ ├── global_footer.mk
│ │ ├── global_header.mk
│ │ ├── if
│ │ │ └── fb303.thrift
│ │ ├── java
│ │ │ ├── build.xml
│ │ │ └── src
│ │ │ └── FacebookBase.java
│ │ ├── LICENSE
│ │ ├── Makefile.am
│ │ ├── php
│ │ │ └── FacebookBase.php
│ │ ├── py
│ │ │ ├── fb303
│ │ │ │ └── FacebookBase.py
│ │ │ ├── fb303_scripts
│ │ │ │ ├── fb303_simple_mgmt.py
│ │ │ │ └── __init__.py
│ │ │ ├── Makefile.am
│ │ │ └── setup.py
│ │ ├── README
│ │ ├── TClientInfo.cpp
│ │ └── TClientInfo.h
│ ├── mingw-cross-compile.sh
│ ├── parse_profiling.py
│ ├── thrift_dump.cpp
│ ├── thrift.el
│ ├── thrift.spec
│ ├── thrift.vim
│ ├── transport-sample
│ │ ├── client
│ │ │ ├── client.cpp
│ │ │ ├── client.vcxproj
│ │ │ ├── client.vcxproj.filters
│ │ │ ├── ReadMe.txt
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ │ ├── config.h
│ │ ├── Makefile
│ │ ├── README.txt
│ │ ├── Sample.thrift
│ │ ├── server
│ │ │ ├── ReadMe.txt
│ │ │ ├── server.cpp
│ │ │ ├── server.vcxproj
│ │ │ ├── server.vcxproj.filters
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ │ ├── ThriftCommon.cpp
│ │ ├── ThriftCommon.h
│ │ ├── thriftme.bat
│ │ ├── thriftme.sh
│ │ └── transport-sample.sln
│ └── zeromq
│ ├── csharp
│ │ ├── AssemblyInfo.cs
│ │ ├── Main.cs
│ │ ├── ThriftZMQ.csproj
│ │ ├── ThriftZMQ.sln
│ │ ├── TZmqClient.cs
│ │ └── TZmqServer.cs
│ ├── Makefile
│ ├── README
│ ├── storage.thrift
│ ├── test-client.cpp
│ ├── test-client.py
│ ├── test-receiver.cpp
│ ├── test-sender.cpp
│ ├── test-server.cpp
│ ├── test-server.py
│ ├── TZmqClient.cpp
│ ├── TZmqClient.h
│ ├── TZmqClient.py
│ ├── TZmqServer.cpp
│ ├── TZmqServer.h
│ └── TZmqServer.py
├── CONTRIBUTORS
├── DISCLAIMER
├── doap.rdf
├── doc
│ ├── lgpl-2.1.txt
│ ├── old-thrift-license.txt
│ ├── otp-base-license.txt
│ ├── thrift.bnf
│ ├── thrift-sasl-spec.txt
│ └── thrift.tex
├── lib
│ ├── as3
│ │ ├── build.xml
│ │ └── src
│ │ └── org
│ │ └── apache
│ │ └── thrift
│ │ ├── AbstractMethodError.as
│ │ ├── meta_data
│ │ │ ├── FieldMetaData.as
│ │ │ ├── FieldValueMetaData.as
│ │ │ ├── ListMetaData.as
│ │ │ ├── MapMetaData.as
│ │ │ ├── SetMetaData.as
│ │ │ └── StructMetaData.as
│ │ ├── protocol
│ │ │ ├── TBinaryProtocol.as
│ │ │ ├── TField.as
│ │ │ ├── TList.as
│ │ │ ├── TMap.as
│ │ │ ├── TMessage.as
│ │ │ ├── TMessageType.as
│ │ │ ├── TProtocol.as
│ │ │ ├── TProtocolError.as
│ │ │ ├── TProtocolFactory.as
│ │ │ ├── TProtocolUtil.as
│ │ │ ├── TSet.as
│ │ │ ├── TStruct.as
│ │ │ └── TType.as
│ │ ├── Set.as
│ │ ├── TApplicationError.as
│ │ ├── TBase.as
│ │ ├── TError.as
│ │ ├── TFieldRequirementType.as
│ │ ├── TProcessor.as
│ │ └── transport
│ │ ├── TFullDuplexHttpClient.as
│ │ ├── THttpClient.as
│ │ ├── TTransport.as
│ │ └── TTransportError.as
│ ├── c_glib
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── src
│ │ │ └── thrift
│ │ │ ├── processor
│ │ │ │ ├── thrift_processor.c
│ │ │ │ └── thrift_processor.h
│ │ │ ├── protocol
│ │ │ │ ├── thrift_binary_protocol.c
│ │ │ │ ├── thrift_binary_protocol_factory.c
│ │ │ │ ├── thrift_binary_protocol_factory.h
│ │ │ │ ├── thrift_binary_protocol.h
│ │ │ │ ├── thrift_protocol.c
│ │ │ │ ├── thrift_protocol_factory.c
│ │ │ │ ├── thrift_protocol_factory.h
│ │ │ │ └── thrift_protocol.h
│ │ │ ├── server
│ │ │ │ ├── thrift_server.c
│ │ │ │ ├── thrift_server.h
│ │ │ │ ├── thrift_simple_server.c
│ │ │ │ └── thrift_simple_server.h
│ │ │ ├── thrift_application_exception.c
│ │ │ ├── thrift_application_exception.h
│ │ │ ├── thrift.c
│ │ │ ├── thrift.h
│ │ │ ├── thrift_struct.c
│ │ │ ├── thrift_struct.h
│ │ │ └── transport
│ │ │ ├── thrift_buffered_transport.c
│ │ │ ├── thrift_buffered_transport.h
│ │ │ ├── thrift_framed_transport.c
│ │ │ ├── thrift_framed_transport.h
│ │ │ ├── thrift_memory_buffer.c
│ │ │ ├── thrift_memory_buffer.h
│ │ │ ├── thrift_server_socket.c
│ │ │ ├── thrift_server_socket.h
│ │ │ ├── thrift_server_transport.c
│ │ │ ├── thrift_server_transport.h
│ │ │ ├── thrift_socket.c
│ │ │ ├── thrift_socket.h
│ │ │ ├── thrift_transport.c
│ │ │ ├── thrift_transport_factory.c
│ │ │ ├── thrift_transport_factory.h
│ │ │ └── thrift_transport.h
│ │ ├── test
│ │ │ ├── glib.suppress
│ │ │ ├── Makefile.am
│ │ │ ├── testbinaryprotocol.c
│ │ │ ├── testbufferedtransport.c
│ │ │ ├── testdebugproto.c
│ │ │ ├── testframedtransport.c
│ │ │ ├── testmemorybuffer.c
│ │ │ ├── testoptionalrequired.c
│ │ │ ├── testsimpleserver.c
│ │ │ ├── teststruct.c
│ │ │ ├── testthrifttest.c
│ │ │ ├── testthrifttestclient.cpp
│ │ │ └── testtransportsocket.c
│ │ └── thrift_c_glib.pc.in
│ ├── cocoa
│ │ ├── README
│ │ └── src
│ │ ├── protocol
│ │ │ ├── TBinaryProtocol.h
│ │ │ ├── TBinaryProtocol.m
│ │ │ ├── TProtocolException.h
│ │ │ ├── TProtocolException.m
│ │ │ ├── TProtocolFactory.h
│ │ │ ├── TProtocol.h
│ │ │ ├── TProtocolUtil.h
│ │ │ └── TProtocolUtil.m
│ │ ├── server
│ │ │ ├── TSocketServer.h
│ │ │ └── TSocketServer.m
│ │ ├── TApplicationException.h
│ │ ├── TApplicationException.m
│ │ ├── TException.h
│ │ ├── TException.m
│ │ ├── TObjective-C.h
│ │ ├── TProcessorFactory.h
│ │ ├── TProcessor.h
│ │ ├── transport
│ │ │ ├── THTTPClient.h
│ │ │ ├── THTTPClient.m
│ │ │ ├── TMemoryBuffer.h
│ │ │ ├── TMemoryBuffer.m
│ │ │ ├── TNSFileHandleTransport.h
│ │ │ ├── TNSFileHandleTransport.m
│ │ │ ├── TNSStreamTransport.h
│ │ │ ├── TNSStreamTransport.m
│ │ │ ├── TSocketClient.h
│ │ │ ├── TSocketClient.m
│ │ │ ├── TTransportException.h
│ │ │ ├── TTransportException.m
│ │ │ └── TTransport.h
│ │ ├── TSharedProcessorFactory.h
│ │ └── TSharedProcessorFactory.m
│ ├── cpp
│ │ ├── libthriftnb.vcxproj
│ │ ├── libthriftnb.vcxproj.filters
│ │ ├── libthrift.vcxproj
│ │ ├── libthrift.vcxproj.filters
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── README.SSL
│ │ ├── README_WINDOWS
│ │ ├── src
│ │ │ └── thrift
│ │ │ ├── async
│ │ │ │ ├── TAsyncBufferProcessor.h
│ │ │ │ ├── TAsyncChannel.cpp
│ │ │ │ ├── TAsyncChannel.h
│ │ │ │ ├── TAsyncDispatchProcessor.h
│ │ │ │ ├── TAsyncProcessor.h
│ │ │ │ ├── TAsyncProtocolProcessor.cpp
│ │ │ │ ├── TAsyncProtocolProcessor.h
│ │ │ │ ├── TEvhttpClientChannel.cpp
│ │ │ │ ├── TEvhttpClientChannel.h
│ │ │ │ ├── TEvhttpServer.cpp
│ │ │ │ └── TEvhttpServer.h
│ │ │ ├── concurrency
│ │ │ │ ├── BoostMonitor.cpp
│ │ │ │ ├── BoostMutex.cpp
│ │ │ │ ├── BoostThreadFactory.cpp
│ │ │ │ ├── BoostThreadFactory.h
│ │ │ │ ├── Exception.h
│ │ │ │ ├── FunctionRunner.h
│ │ │ │ ├── Monitor.cpp
│ │ │ │ ├── Monitor.h
│ │ │ │ ├── Mutex.cpp
│ │ │ │ ├── Mutex.h
│ │ │ │ ├── PlatformThreadFactory.h
│ │ │ │ ├── PosixThreadFactory.cpp
│ │ │ │ ├── PosixThreadFactory.h
│ │ │ │ ├── Thread.h
│ │ │ │ ├── ThreadManager.cpp
│ │ │ │ ├── ThreadManager.h
│ │ │ │ ├── TimerManager.cpp
│ │ │ │ ├── TimerManager.h
│ │ │ │ ├── Util.cpp
│ │ │ │ └── Util.h
│ │ │ ├── config.h
│ │ │ ├── cxxfunctional.h
│ │ │ ├── processor
│ │ │ │ ├── PeekProcessor.cpp
│ │ │ │ ├── PeekProcessor.h
│ │ │ │ └── StatsProcessor.h
│ │ │ ├── protocol
│ │ │ │ ├── TBase64Utils.cpp
│ │ │ │ ├── TBase64Utils.h
│ │ │ │ ├── TBinaryProtocol.h
│ │ │ │ ├── TBinaryProtocol.tcc
│ │ │ │ ├── TCompactProtocol.h
│ │ │ │ ├── TCompactProtocol.tcc
│ │ │ │ ├── TDebugProtocol.cpp
│ │ │ │ ├── TDebugProtocol.h
│ │ │ │ ├── TDenseProtocol.cpp
│ │ │ │ ├── TDenseProtocol.h
│ │ │ │ ├── TJSONProtocol.cpp
│ │ │ │ ├── TJSONProtocol.h
│ │ │ │ ├── TProtocolException.h
│ │ │ │ ├── TProtocol.h
│ │ │ │ ├── TProtocolTap.h
│ │ │ │ └── TVirtualProtocol.h
│ │ │ ├── qt
│ │ │ │ ├── TQIODeviceTransport.cpp
│ │ │ │ ├── TQIODeviceTransport.h
│ │ │ │ ├── TQTcpServer.cpp
│ │ │ │ └── TQTcpServer.h
│ │ │ ├── server
│ │ │ │ ├── TNonblockingServer.cpp
│ │ │ │ ├── TNonblockingServer.h
│ │ │ │ ├── TServer.cpp
│ │ │ │ ├── TServerEventHandlerImpl.h
│ │ │ │ ├── TServer.h
│ │ │ │ ├── TSimpleServer.cpp
│ │ │ │ ├── TSimpleServer.h
│ │ │ │ ├── TThreadedServer.cpp
│ │ │ │ ├── TThreadedServer.h
│ │ │ │ ├── TThreadPoolServer.cpp
│ │ │ │ └── TThreadPoolServer.h
│ │ │ ├── TApplicationException.cpp
│ │ │ ├── TApplicationException.h
│ │ │ ├── TDispatchProcessor.h
│ │ │ ├── Thrift.cpp
│ │ │ ├── Thrift.h
│ │ │ ├── TLogging.h
│ │ │ ├── TProcessor.h
│ │ │ ├── transport
│ │ │ │ ├── TBufferTransports.cpp
│ │ │ │ ├── TBufferTransports.h
│ │ │ │ ├── TFDTransport.cpp
│ │ │ │ ├── TFDTransport.h
│ │ │ │ ├── TFileTransport.cpp
│ │ │ │ ├── TFileTransport.h
│ │ │ │ ├── THttpClient.cpp
│ │ │ │ ├── THttpClient.h
│ │ │ │ ├── THttpServer.cpp
│ │ │ │ ├── THttpServer.h
│ │ │ │ ├── THttpTransport.cpp
│ │ │ │ ├── THttpTransport.h
│ │ │ │ ├── TPipe.cpp
│ │ │ │ ├── TPipe.h
│ │ │ │ ├── TPipeServer.cpp
│ │ │ │ ├── TPipeServer.h
│ │ │ │ ├── TServerSocket.cpp
│ │ │ │ ├── TServerSocket.h
│ │ │ │ ├── TServerTransport.h
│ │ │ │ ├── TShortReadTransport.h
│ │ │ │ ├── TSimpleFileTransport.cpp
│ │ │ │ ├── TSimpleFileTransport.h
│ │ │ │ ├── TSocket.cpp
│ │ │ │ ├── TSocket.h
│ │ │ │ ├── TSocketPool.cpp
│ │ │ │ ├── TSocketPool.h
│ │ │ │ ├── TSSLServerSocket.cpp
│ │ │ │ ├── TSSLServerSocket.h
│ │ │ │ ├── TSSLSocket.cpp
│ │ │ │ ├── TSSLSocket.h
│ │ │ │ ├── TTransportException.cpp
│ │ │ │ ├── TTransportException.h
│ │ │ │ ├── TTransport.h
│ │ │ │ ├── TTransportUtils.cpp
│ │ │ │ ├── TTransportUtils.h
│ │ │ │ ├── TVirtualTransport.h
│ │ │ │ ├── TWebSocketTransport.cpp
│ │ │ │ ├── TWebSocketTransport.h
│ │ │ │ ├── TZlibTransport.cpp
│ │ │ │ ├── TZlibTransport.h
│ │ │ │ └── Websocket
│ │ │ │ ├── base64
│ │ │ │ │ ├── base64.cpp
│ │ │ │ │ └── base64.h
│ │ │ │ ├── md5
│ │ │ │ │ ├── md5.cpp
│ │ │ │ │ ├── md5.h
│ │ │ │ │ ├── Md5Hash.cpp
│ │ │ │ │ ├── md5_loc.h
│ │ │ │ │ ├── md5_t.c
│ │ │ │ │ └── md5 test.cpp
│ │ │ │ ├── sha1
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── Makefile.nt
│ │ │ │ │ ├── sha1.cpp
│ │ │ │ │ ├── sha1.h
│ │ │ │ │ ├── shacmp.cpp
│ │ │ │ │ ├── sha.cpp
│ │ │ │ │ └── shatest.cpp
│ │ │ │ ├── WebsocketDataMessage.h
│ │ │ │ ├── WebsocketHandshakeMessage.cpp
│ │ │ │ ├── WebsocketHandshakeMessage.h
│ │ │ │ ├── WebsocketMessage.h
│ │ │ │ ├── WebsocketProtocol.cpp
│ │ │ │ └── WebsocketProtocol.h
│ │ │ ├── TReflectionLocal.h
│ │ │ ├── VirtualProfiling.cpp
│ │ │ └── windows
│ │ │ ├── config.h
│ │ │ ├── force_inc.h
│ │ │ ├── GetTimeOfDay.cpp
│ │ │ ├── GetTimeOfDay.h
│ │ │ ├── Operators.h
│ │ │ ├── SocketPair.cpp
│ │ │ ├── SocketPair.h
│ │ │ ├── StdAfx.cpp
│ │ │ ├── StdAfx.h
│ │ │ ├── TargetVersion.h
│ │ │ ├── tr1
│ │ │ │ └── functional
│ │ │ ├── TWinsockSingleton.cpp
│ │ │ ├── TWinsockSingleton.h
│ │ │ ├── WinFcntl.cpp
│ │ │ └── WinFcntl.h
│ │ ├── test
│ │ │ ├── AllProtocolTests.cpp
│ │ │ ├── AllProtocolTests.tcc
│ │ │ ├── Base64Test.cpp
│ │ │ ├── Benchmark.cpp
│ │ │ ├── concurrency
│ │ │ │ ├── Tests.cpp
│ │ │ │ ├── ThreadFactoryTests.h
│ │ │ │ ├── ThreadManagerTests.h
│ │ │ │ └── TimerManagerTests.h
│ │ │ ├── DebugProtoTest.cpp
│ │ │ ├── DebugProtoTest_extras.cpp
│ │ │ ├── DenseProtoTest.cpp
│ │ │ ├── GenericHelpers.h
│ │ │ ├── JSONProtoTest.cpp
│ │ │ ├── Makefile.am
│ │ │ ├── OptionalRequiredTest.cpp
│ │ │ ├── processor
│ │ │ │ ├── EventLog.cpp
│ │ │ │ ├── EventLog.h
│ │ │ │ ├── Handlers.h
│ │ │ │ ├── ProcessorTest.cpp
│ │ │ │ ├── proc.thrift
│ │ │ │ ├── ServerThread.cpp
│ │ │ │ └── ServerThread.h
│ │ │ ├── RWMutexStarveTest.cpp
│ │ │ ├── SpecializationTest.cpp
│ │ │ ├── TBufferBaseTest.cpp
│ │ │ ├── TFDTransportTest.cpp
│ │ │ ├── TFileTransportTest.cpp
│ │ │ ├── ThriftTest_extras.cpp
│ │ │ ├── TMemoryBufferTest.cpp
│ │ │ ├── TPipedTransportTest.cpp
│ │ │ ├── TransportTest.cpp
│ │ │ ├── UnitTestMain.cpp
│ │ │ └── ZlibTest.cpp
│ │ ├── thrift-nb.pc.in
│ │ ├── thrift.pc.in
│ │ ├── thrift-qt.pc.in
│ │ ├── thrift.sln
│ │ └── thrift-z.pc.in
│ ├── csharp
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── src
│ │ │ ├── Collections
│ │ │ │ └── THashSet.cs
│ │ │ ├── Properties
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ └── AssemblyInfo.WP7.cs
│ │ │ ├── Protocol
│ │ │ │ ├── TBase64Utils.cs
│ │ │ │ ├── TBase.cs
│ │ │ │ ├── TBinaryProtocol.cs
│ │ │ │ ├── TCompactProtocol.cs
│ │ │ │ ├── TField.cs
│ │ │ │ ├── TJSONProtocol.cs
│ │ │ │ ├── TList.cs
│ │ │ │ ├── TMap.cs
│ │ │ │ ├── TMessage.cs
│ │ │ │ ├── TMessageType.cs
│ │ │ │ ├── TProtocol.cs
│ │ │ │ ├── TProtocolException.cs
│ │ │ │ ├── TProtocolFactory.cs
│ │ │ │ ├── TProtocolUtil.cs
│ │ │ │ ├── TSet.cs
│ │ │ │ ├── TStruct.cs
│ │ │ │ └── TType.cs
│ │ │ ├── Server
│ │ │ │ ├── TServer.cs
│ │ │ │ ├── TSimpleServer.cs
│ │ │ │ ├── TThreadedServer.cs
│ │ │ │ └── TThreadPoolServer.cs
│ │ │ ├── TApplicationException.cs
│ │ │ ├── Thrift.csproj
│ │ │ ├── Thrift.sln
│ │ │ ├── Thrift.WP7.csproj
│ │ │ ├── TProcessor.cs
│ │ │ └── Transport
│ │ │ ├── TBufferedTransport.cs
│ │ │ ├── TFramedTransport.cs
│ │ │ ├── THttpClient.cs
│ │ │ ├── THttpHandler.cs
│ │ │ ├── TServerSocket.cs
│ │ │ ├── TServerTransport.cs
│ │ │ ├── TSocket.cs
│ │ │ ├── TStreamTransport.cs
│ │ │ ├── TTransport.cs
│ │ │ ├── TTransportException.cs
│ │ │ └── TTransportFactory.cs
│ │ └── ThriftMSBuildTask
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── ThriftBuild.cs
│ │ └── ThriftMSBuildTask.csproj
│ ├── d
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── src
│ │ │ └── thrift
│ │ │ ├── async
│ │ │ │ ├── base.d
│ │ │ │ ├── libevent.d
│ │ │ │ ├── socket.d
│ │ │ │ └── ssl.d
│ │ │ ├── base.d
│ │ │ ├── codegen
│ │ │ │ ├── async_client.d
│ │ │ │ ├── async_client_pool.d
│ │ │ │ ├── base.d
│ │ │ │ ├── client.d
│ │ │ │ ├── client_pool.d
│ │ │ │ ├── idlgen.d
│ │ │ │ └── processor.d
│ │ │ ├── index.d
│ │ │ ├── internal
│ │ │ │ ├── algorithm.d
│ │ │ │ ├── codegen.d
│ │ │ │ ├── ctfe.d
│ │ │ │ ├── endian.d
│ │ │ │ ├── resource_pool.d
│ │ │ │ ├── socket.d
│ │ │ │ ├── ssl_bio.d
│ │ │ │ ├── ssl.d
│ │ │ │ ├── test
│ │ │ │ │ ├── protocol.d
│ │ │ │ │ └── server.d
│ │ │ │ └── traits.d
│ │ │ ├── protocol
│ │ │ │ ├── base.d
│ │ │ │ ├── binary.d
│ │ │ │ ├── compact.d
│ │ │ │ ├── json.d
│ │ │ │ └── processor.d
│ │ │ ├── server
│ │ │ │ ├── base.d
│ │ │ │ ├── nonblocking.d
│ │ │ │ ├── simple.d
│ │ │ │ ├── taskpool.d
│ │ │ │ ├── threaded.d
│ │ │ │ └── transport
│ │ │ │ ├── base.d
│ │ │ │ ├── socket.d
│ │ │ │ └── ssl.d
│ │ │ ├── transport
│ │ │ │ ├── base.d
│ │ │ │ ├── buffered.d
│ │ │ │ ├── file.d
│ │ │ │ ├── framed.d
│ │ │ │ ├── http.d
│ │ │ │ ├── memory.d
│ │ │ │ ├── piped.d
│ │ │ │ ├── range.d
│ │ │ │ ├── socket.d
│ │ │ │ ├── ssl.d
│ │ │ │ └── zlib.d
│ │ │ └── util
│ │ │ ├── awaitable.d
│ │ │ ├── cancellation.d
│ │ │ ├── future.d
│ │ │ └── hashset.d
│ │ └── test
│ │ ├── async_test.d
│ │ ├── async_test_runner.sh
│ │ ├── client_pool_test.d
│ │ ├── Makefile.am
│ │ ├── openssl.test.cnf
│ │ ├── serialization_benchmark.d
│ │ ├── stress_test_server.d
│ │ ├── test_utils.d
│ │ ├── thrift_test_client.d
│ │ ├── thrift_test_common.d
│ │ ├── thrift_test_runner.sh
│ │ ├── thrift_test_server.d
│ │ └── transport_test.d
│ ├── delphi
│ │ ├── src
│ │ │ ├── Thrift.Collections.pas
│ │ │ ├── Thrift.Console.pas
│ │ │ ├── Thrift.pas
│ │ │ ├── Thrift.Protocol.JSON.pas
│ │ │ ├── Thrift.Protocol.pas
│ │ │ ├── Thrift.Serializer.pas
│ │ │ ├── Thrift.Server.pas
│ │ │ ├── Thrift.Stream.pas
│ │ │ ├── Thrift.Transport.pas
│ │ │ ├── Thrift.Transport.Pipes.pas
│ │ │ └── Thrift.Utils.pas
│ │ └── test
│ │ ├── client.dpr
│ │ ├── codegen
│ │ │ ├── README.txt
│ │ │ ├── ReservedKeywords.thrift
│ │ │ └── run-Pascal-Codegen-Tests.bat.tmpl
│ │ ├── maketest.sh
│ │ ├── serializer
│ │ │ ├── TestSerializer.Data.pas
│ │ │ └── TestSerializer.dpr
│ │ ├── server.dpr
│ │ ├── skip
│ │ │ ├── idl
│ │ │ │ ├── skiptest_version_1.thrift
│ │ │ │ └── skiptest_version_2.thrift
│ │ │ ├── README.txt
│ │ │ ├── skiptest_version1.dpr
│ │ │ └── skiptest_version2.dpr
│ │ ├── TestClient.pas
│ │ ├── TestConstants.pas
│ │ └── TestServer.pas
│ ├── erl
│ │ ├── include
│ │ │ ├── thrift_constants.hrl
│ │ │ ├── thrift_protocol_behaviour.hrl
│ │ │ ├── thrift_protocol.hrl
│ │ │ └── thrift_transport_behaviour.hrl
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── rebar
│ │ ├── rebar.config
│ │ ├── src
│ │ │ ├── thrift.app.src
│ │ │ ├── thrift_base64_transport.erl
│ │ │ ├── thrift_binary_protocol.erl
│ │ │ ├── thrift_buffered_transport.erl
│ │ │ ├── thrift_client.erl
│ │ │ ├── thrift_client_util.erl
│ │ │ ├── thrift_disk_log_transport.erl
│ │ │ ├── thrift_file_transport.erl
│ │ │ ├── thrift_framed_transport.erl
│ │ │ ├── thrift_http_transport.erl
│ │ │ ├── thrift_json_protocol.erl
│ │ │ ├── thrift_memory_buffer.erl
│ │ │ ├── thrift_processor.erl
│ │ │ ├── thrift_protocol.erl
│ │ │ ├── thrift_reconnecting_client.erl
│ │ │ ├── thrift_server.erl
│ │ │ ├── thrift_service.erl
│ │ │ ├── thrift_socket_server.erl
│ │ │ ├── thrift_socket_transport.erl
│ │ │ ├── thrift_transport.erl
│ │ │ └── thrift_transport_state_test.erl
│ │ └── test
│ │ ├── stress_server.erl
│ │ ├── test_client.erl
│ │ ├── test_disklog.erl
│ │ ├── test_membuffer.erl
│ │ ├── test_server.erl
│ │ ├── test_thrift_1151.erl
│ │ ├── Thrift1151.thrift
│ │ └── Thrift1475.thrift
│ ├── go
│ │ ├── deps.bash
│ │ ├── Make.deps
│ │ ├── Makefile
│ │ └── thrift
│ │ ├── Makefile
│ │ ├── tapplication_exception.go
│ │ ├── tapplication_exception_test.go
│ │ ├── tbase.go
│ │ ├── tbinary_protocol.go
│ │ ├── tbinary_protocol_test.go
│ │ ├── tcompact_protocol.go
│ │ ├── tcompact_protocol_test.go
│ │ ├── tcompare.go
│ │ ├── tcontainer.go
│ │ ├── _testmain.go
│ │ ├── texception.go
│ │ ├── texception_test.go
│ │ ├── tfield.go
│ │ ├── tframed_transport.go
│ │ ├── tframed_transport_test.go
│ │ ├── thttp_client.go
│ │ ├── thttp_client_test.go
│ │ ├── tiostream_transport.go
│ │ ├── tiostream_transport_test.go
│ │ ├── tjson_protocol.go
│ │ ├── tjson_protocol_test.go
│ │ ├── tlist.go
│ │ ├── tmap.go
│ │ ├── tmemory_buffer.go
│ │ ├── tmemory_buffer_test.go
│ │ ├── tmessage.go
│ │ ├── tmessagetype.go
│ │ ├── tnonblocking_server.go
│ │ ├── tnonblocking_server_socket.go
│ │ ├── tnonblocking_socket.go
│ │ ├── tnonblocking_transport.go
│ │ ├── tnonblocking_transport_test.go
│ │ ├── tnumeric.go
│ │ ├── tprocessor_factory.go
│ │ ├── tprocessor.go
│ │ ├── tprotocol_exception.go
│ │ ├── tprotocol_factory.go
│ │ ├── tprotocol.go
│ │ ├── tprotocol_test.go
│ │ ├── tserver.go
│ │ ├── tserver_socket.go
│ │ ├── tserver_test.go
│ │ ├── tserver_transport.go
│ │ ├── tset.go
│ │ ├── tsimple_json_protocol.go
│ │ ├── tsimple_json_protocol_test.go
│ │ ├── tsimple_server.go
│ │ ├── tsocket.go
│ │ ├── tstruct.go
│ │ ├── ttransport_exception.go
│ │ ├── ttransport_factory.go
│ │ ├── ttransport.go
│ │ ├── ttransport_test.go
│ │ └── ttype.go
│ ├── hs
│ │ ├── LICENSE
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── Setup.lhs
│ │ ├── src
│ │ │ ├── Thrift
│ │ │ │ ├── Protocol
│ │ │ │ │ └── Binary.hs
│ │ │ │ ├── Protocol.hs
│ │ │ │ ├── Server.hs
│ │ │ │ ├── Transport
│ │ │ │ │ ├── Framed.hs
│ │ │ │ │ ├── Handle.hs
│ │ │ │ │ └── HttpClient.hs
│ │ │ │ ├── Transport.hs
│ │ │ │ └── Types.hs
│ │ │ └── Thrift.hs
│ │ ├── Thrift.cabal
│ │ └── TODO
│ ├── java
│ │ ├── build.properties
│ │ ├── build.xml
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── src
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── thrift
│ │ │ ├── async
│ │ │ │ ├── AsyncMethodCallback.java
│ │ │ │ ├── TAsyncClientFactory.java
│ │ │ │ ├── TAsyncClient.java
│ │ │ │ ├── TAsyncClientManager.java
│ │ │ │ └── TAsyncMethodCall.java
│ │ │ ├── EncodingUtils.java
│ │ │ ├── meta_data
│ │ │ │ ├── EnumMetaData.java
│ │ │ │ ├── FieldMetaData.java
│ │ │ │ ├── FieldValueMetaData.java
│ │ │ │ ├── ListMetaData.java
│ │ │ │ ├── MapMetaData.java
│ │ │ │ ├── SetMetaData.java
│ │ │ │ └── StructMetaData.java
│ │ │ ├── ProcessFunction.java
│ │ │ ├── protocol
│ │ │ │ ├── TBase64Utils.java
│ │ │ │ ├── TBinaryProtocol.java
│ │ │ │ ├── TCompactProtocol.java
│ │ │ │ ├── TField.java
│ │ │ │ ├── TJSONProtocol.java
│ │ │ │ ├── TList.java
│ │ │ │ ├── TMap.java
│ │ │ │ ├── TMessage.java
│ │ │ │ ├── TMessageType.java
│ │ │ │ ├── TProtocolException.java
│ │ │ │ ├── TProtocolFactory.java
│ │ │ │ ├── TProtocol.java
│ │ │ │ ├── TProtocolUtil.java
│ │ │ │ ├── TSet.java
│ │ │ │ ├── TSimpleJSONProtocol.java
│ │ │ │ ├── TStruct.java
│ │ │ │ ├── TTupleProtocol.java
│ │ │ │ └── TType.java
│ │ │ ├── scheme
│ │ │ │ ├── IScheme.java
│ │ │ │ ├── SchemeFactory.java
│ │ │ │ ├── StandardScheme.java
│ │ │ │ └── TupleScheme.java
│ │ │ ├── server
│ │ │ │ ├── AbstractNonblockingServer.java
│ │ │ │ ├── Invocation.java
│ │ │ │ ├── ServerContext.java
│ │ │ │ ├── TExtensibleServlet.java
│ │ │ │ ├── THsHaServer.java
│ │ │ │ ├── TNonblockingServer.java
│ │ │ │ ├── TServerEventHandler.java
│ │ │ │ ├── TServer.java
│ │ │ │ ├── TServlet.java
│ │ │ │ ├── TSimpleServer.java
│ │ │ │ ├── TThreadedSelectorServer.java
│ │ │ │ └── TThreadPoolServer.java
│ │ │ ├── ShortStack.java
│ │ │ ├── TApplicationException.java
│ │ │ ├── TBaseHelper.java
│ │ │ ├── TBase.java
│ │ │ ├── TBaseProcessor.java
│ │ │ ├── TByteArrayOutputStream.java
│ │ │ ├── TDeserializer.java
│ │ │ ├── TEnumHelper.java
│ │ │ ├── TEnum.java
│ │ │ ├── TException.java
│ │ │ ├── TFieldIdEnum.java
│ │ │ ├── TFieldRequirementType.java
│ │ │ ├── TProcessorFactory.java
│ │ │ ├── TProcessor.java
│ │ │ ├── transport
│ │ │ │ ├── AutoExpandingBuffer.java
│ │ │ │ ├── AutoExpandingBufferReadTransport.java
│ │ │ │ ├── AutoExpandingBufferWriteTransport.java
│ │ │ │ ├── TFastFramedTransport.java
│ │ │ │ ├── TFileProcessor.java
│ │ │ │ ├── TFileTransport.java
│ │ │ │ ├── TFramedTransport.java
│ │ │ │ ├── THttpClient.java
│ │ │ │ ├── TIOStreamTransport.java
│ │ │ │ ├── TMemoryBuffer.java
│ │ │ │ ├── TMemoryInputTransport.java
│ │ │ │ ├── TNonblockingServerSocket.java
│ │ │ │ ├── TNonblockingServerTransport.java
│ │ │ │ ├── TNonblockingSocket.java
│ │ │ │ ├── TNonblockingTransport.java
│ │ │ │ ├── TSaslClientTransport.java
│ │ │ │ ├── TSaslServerTransport.java
│ │ │ │ ├── TSaslTransport.java
│ │ │ │ ├── TSeekableFile.java
│ │ │ │ ├── TServerSocket.java
│ │ │ │ ├── TServerTransport.java
│ │ │ │ ├── TSocket.java
│ │ │ │ ├── TSSLTransportFactory.java
│ │ │ │ ├── TStandardFile.java
│ │ │ │ ├── TTransportException.java
│ │ │ │ ├── TTransportFactory.java
│ │ │ │ └── TTransport.java
│ │ │ ├── TSerializer.java
│ │ │ ├── TServiceClientFactory.java
│ │ │ ├── TServiceClient.java
│ │ │ └── TUnion.java
│ │ └── test
│ │ ├── log4j.properties
│ │ └── org
│ │ └── apache
│ │ └── thrift
│ │ ├── async
│ │ │ ├── TestTAsyncClient.java
│ │ │ └── TestTAsyncClientManager.java
│ │ ├── Fixtures.java
│ │ ├── protocol
│ │ │ ├── BenchmarkProtocols.java
│ │ │ ├── ProtocolTestBase.java
│ │ │ ├── TestTBinaryProtocol.java
│ │ │ ├── TestTCompactProtocol.java
│ │ │ ├── TestTJSONProtocol.java
│ │ │ ├── TestTProtocolUtil.java
│ │ │ └── TestTTupleProtocol.java
│ │ ├── scheme
│ │ │ └── TestStandardScheme.java
│ │ ├── server
│ │ │ ├── ServerTestBase.java
│ │ │ ├── TestHsHaServer.java
│ │ │ ├── TestNonblockingServer.java
│ │ │ └── TestThreadedSelectorServer.java
│ │ ├── test
│ │ │ ├── EqualityTest.java
│ │ │ ├── JavaBeansTest.java
│ │ │ ├── ReadStruct.java
│ │ │ ├── SerializationBenchmark.java
│ │ │ ├── TestClient.java
│ │ │ ├── TestNonblockingServer.java
│ │ │ ├── TestServer.java
│ │ │ └── WriteStruct.java
│ │ ├── TestOptionals.java
│ │ ├── TestShortStack.java
│ │ ├── TestStruct.java
│ │ ├── TestTBaseHelper.java
│ │ ├── TestTDeserializer.java
│ │ ├── TestTEnumHelper.java
│ │ ├── TestTUnion.java
│ │ └── transport
│ │ ├── ReadCountingTransport.java
│ │ ├── TestAutoExpandingBuffer.java
│ │ ├── TestAutoExpandingBufferReadTransport.java
│ │ ├── TestAutoExpandingBufferWriteTransport.java
│ │ ├── TestTFastFramedTransport.java
│ │ ├── TestTFramedTransport.java
│ │ ├── TestTMemoryInputTransport.java
│ │ ├── TestTSaslTransports.java
│ │ ├── TestTSSLTransportFactory.java
│ │ └── WriteCountingTransport.java
│ ├── javame
│ │ └── src
│ │ └── org
│ │ └── apache
│ │ └── thrift
│ │ ├── meta_data
│ │ │ ├── FieldMetaData.java
│ │ │ ├── FieldValueMetaData.java
│ │ │ ├── ListMetaData.java
│ │ │ ├── MapMetaData.java
│ │ │ ├── SetMetaData.java
│ │ │ └── StructMetaData.java
│ │ ├── protocol
│ │ │ ├── TBase64Utils.java
│ │ │ ├── TBinaryProtocol.java
│ │ │ ├── TField.java
│ │ │ ├── TList.java
│ │ │ ├── TMap.java
│ │ │ ├── TMessage.java
│ │ │ ├── TMessageType.java
│ │ │ ├── TProtocolException.java
│ │ │ ├── TProtocolFactory.java
│ │ │ ├── TProtocol.java
│ │ │ ├── TProtocolUtil.java
│ │ │ ├── TSet.java
│ │ │ ├── TStruct.java
│ │ │ └── TType.java
│ │ ├── TApplicationException.java
│ │ ├── TBaseHelper.java
│ │ ├── TBase.java
│ │ ├── TByteArrayOutputStream.java
│ │ ├── TDeserializer.java
│ │ ├── TEnum.java
│ │ ├── TException.java
│ │ ├── TFieldRequirementType.java
│ │ ├── TProcessorFactory.java
│ │ ├── TProcessor.java
│ │ ├── transport
│ │ │ ├── TFramedTransport.java
│ │ │ ├── THttpClient.java
│ │ │ ├── TIOStreamTransport.java
│ │ │ ├── TTransportException.java
│ │ │ ├── TTransportFactory.java
│ │ │ └── TTransport.java
│ │ ├── TSerializer.java
│ │ └── TServiceClient.java
│ ├── js
│ │ ├── README
│ │ ├── test
│ │ │ ├── build.xml
│ │ │ ├── jsTestDriver.conf
│ │ │ ├── Makefile.am
│ │ │ ├── phantomjs-qunit.js
│ │ │ ├── src
│ │ │ │ └── test
│ │ │ │ └── Httpd.java
│ │ │ ├── test.html
│ │ │ └── test.js
│ │ ├── thrift.js
│ │ └── websocketTransport.js
│ ├── Makefile.am
│ ├── nodejs
│ │ ├── examples
│ │ │ ├── client.js
│ │ │ ├── client_multitransport.js
│ │ │ ├── Makefile
│ │ │ ├── parse.js
│ │ │ ├── README.md
│ │ │ ├── server.js
│ │ │ ├── server_multitransport.js
│ │ │ └── user.thrift
│ │ ├── lib
│ │ │ └── thrift
│ │ │ ├── binary.js
│ │ │ ├── connection.js
│ │ │ ├── index.js
│ │ │ ├── protocol.js
│ │ │ ├── server.js
│ │ │ ├── thrift.js
│ │ │ └── transport.js
│ │ ├── package.json
│ │ ├── README.md
│ │ └── test
│ │ └── binary.test.js
│ ├── ocaml
│ │ ├── Makefile
│ │ ├── OCamlMakefile
│ │ ├── README
│ │ ├── README-OCamlMakefile
│ │ ├── src
│ │ │ ├── Makefile
│ │ │ ├── TBinaryProtocol.ml
│ │ │ ├── TChannelTransport.ml
│ │ │ ├── TFramedTransport.ml
│ │ │ ├── Thrift.ml
│ │ │ ├── TServer.ml
│ │ │ ├── TServerSocket.ml
│ │ │ ├── TSimpleServer.ml
│ │ │ ├── TSocket.ml
│ │ │ └── TThreadedServer.ml
│ │ └── TODO
│ ├── perl
│ │ ├── lib
│ │ │ ├── Thrift
│ │ │ │ ├── BinaryProtocol.pm
│ │ │ │ ├── BufferedTransport.pm
│ │ │ │ ├── FramedTransport.pm
│ │ │ │ ├── HttpClient.pm
│ │ │ │ ├── MemoryBuffer.pm
│ │ │ │ ├── Protocol.pm
│ │ │ │ ├── Server.pm
│ │ │ │ ├── Socket.pm
│ │ │ │ └── Transport.pm
│ │ │ └── Thrift.pm
│ │ ├── Makefile.am
│ │ ├── Makefile.PL
│ │ ├── README
│ │ ├── test
│ │ │ ├── Makefile.am
│ │ │ ├── memory_buffer.t
│ │ │ └── processor.t
│ │ └── test.pl
│ ├── php
│ │ ├── lib
│ │ │ └── Thrift
│ │ │ ├── Base
│ │ │ │ └── TBase.php
│ │ │ ├── ClassLoader
│ │ │ │ └── ThriftClassLoader.php
│ │ │ ├── Exception
│ │ │ │ ├── TApplicationException.php
│ │ │ │ ├── TException.php
│ │ │ │ ├── TProtocolException.php
│ │ │ │ └── TTransportException.php
│ │ │ ├── Factory
│ │ │ │ ├── TBinaryProtocolFactory.php
│ │ │ │ ├── TCompactProtocolFactory.php
│ │ │ │ ├── TJSONProtocolFactory.php
│ │ │ │ ├── TProtocolFactory.php
│ │ │ │ ├── TStringFuncFactory.php
│ │ │ │ └── TTransportFactory.php
│ │ │ ├── Protocol
│ │ │ │ ├── JSON
│ │ │ │ │ ├── BaseContext.php
│ │ │ │ │ ├── ListContext.php
│ │ │ │ │ ├── LookaheadReader.php
│ │ │ │ │ └── PairContext.php
│ │ │ │ ├── TBinaryProtocolAccelerated.php
│ │ │ │ ├── TBinaryProtocol.php
│ │ │ │ ├── TCompactProtocol.php
│ │ │ │ ├── TJSONProtocol.php
│ │ │ │ └── TProtocol.php
│ │ │ ├── Serializer
│ │ │ │ └── TBinarySerializer.php
│ │ │ ├── Server
│ │ │ │ ├── TForkingServer.php
│ │ │ │ ├── TServer.php
│ │ │ │ ├── TServerSocket.php
│ │ │ │ ├── TServerTransport.php
│ │ │ │ └── TSimpleServer.php
│ │ │ ├── StringFunc
│ │ │ │ ├── Core.php
│ │ │ │ ├── Mbstring.php
│ │ │ │ └── TStringFunc.php
│ │ │ ├── Transport
│ │ │ │ ├── TBufferedTransport.php
│ │ │ │ ├── TFramedTransport.php
│ │ │ │ ├── THttpClient.php
│ │ │ │ ├── TMemoryBuffer.php
│ │ │ │ ├── TNullTransport.php
│ │ │ │ ├── TPhpStream.php
│ │ │ │ ├── TSocket.php
│ │ │ │ ├── TSocketPool.php
│ │ │ │ └── TTransport.php
│ │ │ └── Type
│ │ │ ├── TMessageType.php
│ │ │ └── TType.php
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── README.apache
│ │ ├── src
│ │ │ ├── autoload.php
│ │ │ ├── ext
│ │ │ │ └── thrift_protocol
│ │ │ │ ├── config.m4
│ │ │ │ ├── config.w32
│ │ │ │ ├── php_thrift_protocol.cpp
│ │ │ │ └── php_thrift_protocol.h
│ │ │ ├── Thrift.php
│ │ │ └── TStringUtils.php
│ │ ├── test
│ │ │ ├── Makefile.am
│ │ │ └── Test
│ │ │ └── Thrift
│ │ │ ├── Fixtures.php
│ │ │ └── Protocol
│ │ │ └── TestTJSONProtocol.php
│ │ └── thrift_protocol.ini
│ ├── py
│ │ ├── compat
│ │ │ └── win32
│ │ │ └── stdint.h
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── setup.cfg
│ │ ├── setup.py
│ │ └── src
│ │ ├── __init__.py
│ │ ├── protocol
│ │ │ ├── fastbinary.c
│ │ │ ├── __init__.py
│ │ │ ├── TBase.py
│ │ │ ├── TBinaryProtocol.py
│ │ │ ├── TCompactProtocol.py
│ │ │ ├── TJSONProtocol.py
│ │ │ └── TProtocol.py
│ │ ├── server
│ │ │ ├── __init__.py
│ │ │ ├── THttpServer.py
│ │ │ ├── TNonblockingServer.py
│ │ │ ├── TProcessPoolServer.py
│ │ │ └── TServer.py
│ │ ├── Thrift.py
│ │ ├── transport
│ │ │ ├── __init__.py
│ │ │ ├── THttpClient.py
│ │ │ ├── TSocket.py
│ │ │ ├── TSSLSocket.py
│ │ │ ├── TTransport.py
│ │ │ ├── TTwisted.py
│ │ │ └── TZlibTransport.py
│ │ ├── TSCons.py
│ │ └── TSerialization.py
│ ├── rb
│ │ ├── benchmark
│ │ │ ├── benchmark.rb
│ │ │ ├── Benchmark.thrift
│ │ │ ├── client.rb
│ │ │ ├── server.rb
│ │ │ └── thin_server.rb
│ │ ├── CHANGELOG
│ │ ├── ext
│ │ │ ├── binary_protocol_accelerated.c
│ │ │ ├── binary_protocol_accelerated.h
│ │ │ ├── bytes.c
│ │ │ ├── bytes.h
│ │ │ ├── compact_protocol.c
│ │ │ ├── compact_protocol.h
│ │ │ ├── constants.h
│ │ │ ├── extconf.rb
│ │ │ ├── macros.h
│ │ │ ├── memory_buffer.c
│ │ │ ├── memory_buffer.h
│ │ │ ├── protocol.c
│ │ │ ├── protocol.h
│ │ │ ├── strlcpy.c
│ │ │ ├── strlcpy.h
│ │ │ ├── struct.c
│ │ │ ├── struct.h
│ │ │ └── thrift_native.c
│ │ ├── Gemfile
│ │ ├── lib
│ │ │ ├── thrift
│ │ │ │ ├── bytes.rb
│ │ │ │ ├── client.rb
│ │ │ │ ├── core_ext
│ │ │ │ │ └── fixnum.rb
│ │ │ │ ├── core_ext.rb
│ │ │ │ ├── exceptions.rb
│ │ │ │ ├── processor.rb
│ │ │ │ ├── protocol
│ │ │ │ │ ├── base_protocol.rb
│ │ │ │ │ ├── binary_protocol_accelerated.rb
│ │ │ │ │ ├── binary_protocol.rb
│ │ │ │ │ ├── compact_protocol.rb
│ │ │ │ │ └── json_protocol.rb
│ │ │ │ ├── serializer
│ │ │ │ │ ├── deserializer.rb
│ │ │ │ │ └── serializer.rb
│ │ │ │ ├── server
│ │ │ │ │ ├── base_server.rb
│ │ │ │ │ ├── mongrel_http_server.rb
│ │ │ │ │ ├── nonblocking_server.rb
│ │ │ │ │ ├── simple_server.rb
│ │ │ │ │ ├── threaded_server.rb
│ │ │ │ │ └── thread_pool_server.rb
│ │ │ │ ├── struct.rb
│ │ │ │ ├── struct_union.rb
│ │ │ │ ├── thrift_native.rb
│ │ │ │ ├── transport
│ │ │ │ │ ├── base_server_transport.rb
│ │ │ │ │ ├── base_transport.rb
│ │ │ │ │ ├── buffered_transport.rb
│ │ │ │ │ ├── framed_transport.rb
│ │ │ │ │ ├── http_client_transport.rb
│ │ │ │ │ ├── io_stream_transport.rb
│ │ │ │ │ ├── memory_buffer_transport.rb
│ │ │ │ │ ├── server_socket.rb
│ │ │ │ │ ├── socket.rb
│ │ │ │ │ ├── unix_server_socket.rb
│ │ │ │ │ └── unix_socket.rb
│ │ │ │ ├── types.rb
│ │ │ │ └── union.rb
│ │ │ └── thrift.rb
│ │ ├── Makefile.am
│ │ ├── Rakefile
│ │ ├── README
│ │ ├── script
│ │ │ ├── proto_benchmark.rb
│ │ │ ├── read_struct.rb
│ │ │ └── write_struct.rb
│ │ ├── spec
│ │ │ ├── base_protocol_spec.rb
│ │ │ ├── base_transport_spec.rb
│ │ │ ├── binary_protocol_accelerated_spec.rb
│ │ │ ├── binary_protocol_spec.rb
│ │ │ ├── binary_protocol_spec_shared.rb
│ │ │ ├── bytes_spec.rb
│ │ │ ├── client_spec.rb
│ │ │ ├── compact_protocol_spec.rb
│ │ │ ├── exception_spec.rb
│ │ │ ├── http_client_spec.rb
│ │ │ ├── json_protocol_spec.rb
│ │ │ ├── mongrel_http_server_spec.rb
│ │ │ ├── nonblocking_server_spec.rb
│ │ │ ├── processor_spec.rb
│ │ │ ├── serializer_spec.rb
│ │ │ ├── server_socket_spec.rb
│ │ │ ├── server_spec.rb
│ │ │ ├── socket_spec.rb
│ │ │ ├── socket_spec_shared.rb
│ │ │ ├── spec_helper.rb
│ │ │ ├── struct_nested_containers_spec.rb
│ │ │ ├── struct_spec.rb
│ │ │ ├── ThriftSpec.thrift
│ │ │ ├── types_spec.rb
│ │ │ ├── union_spec.rb
│ │ │ └── unix_socket_spec.rb
│ │ └── thrift.gemspec
│ └── st
│ ├── README
│ └── thrift.st
├── LICENSE
├── Makefile.am
├── NEWS
├── NOTICE
├── rat_exclude
├── README
├── test
│ ├── AnnotationTest.thrift
│ ├── BrokenConstants.thrift
│ ├── ConstantsDemo.thrift
│ ├── cpp
│ │ ├── Makefile.am
│ │ ├── realloc
│ │ │ ├── Makefile
│ │ │ └── realloc_test.c
│ │ └── src
│ │ ├── StressTest.cpp
│ │ ├── StressTestNonBlocking.cpp
│ │ ├── TestClient.cpp
│ │ └── TestServer.cpp
│ ├── csharp
│ │ └── ThriftTest
│ │ ├── maketest.sh
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── TestClient.cs
│ │ ├── TestServer.cs
│ │ └── ThriftTest.csproj
│ ├── DebugProtoTest.thrift
│ ├── DenseLinkingTest.thrift
│ ├── DocTest.thrift
│ ├── FastbinaryTest.py
│ ├── hs
│ │ ├── ConstantsDemo_Main.hs
│ │ ├── DebugProtoTest_Main.hs
│ │ ├── Makefile.am
│ │ ├── run-test.sh
│ │ ├── ThriftTest_Main.hs
│ │ └── ThriftTestUtils.hs
│ ├── JavaBeansTest.thrift
│ ├── Makefile.am
│ ├── ManyOptionals.thrift
│ ├── ManyTypedefs.thrift
│ ├── nodejs
│ │ ├── client.js
│ │ ├── Makefile.am
│ │ ├── package.json
│ │ └── server.js
│ ├── ocaml
│ │ ├── client
│ │ │ ├── Makefile
│ │ │ └── TestClient.ml
│ │ ├── Makefile
│ │ └── server
│ │ ├── Makefile
│ │ └── TestServer.ml
│ ├── OptionalRequiredTest.thrift
│ ├── perl
│ │ ├── Makefile.am
│ │ └── TestClient.pl
│ ├── php
│ │ ├── Makefile.am
│ │ ├── TestClient.php
│ │ └── TestInline.php
│ ├── py
│ │ ├── explicit_module
│ │ │ ├── runtest.sh
│ │ │ ├── test1.thrift
│ │ │ └── test2.thrift
│ │ ├── Makefile.am
│ │ ├── RunClientServer.py
│ │ ├── SerializationTest.py
│ │ ├── test_cert.pem
│ │ ├── test_cert.readme
│ │ ├── TestClient.py
│ │ ├── TestEof.py
│ │ ├── TestServer.py
│ │ ├── TestSocket.py
│ │ └── TestSyntax.py
│ ├── py.twisted
│ │ ├── Makefile.am
│ │ └── test_suite.py
│ ├── rb
│ │ ├── benchmarks
│ │ │ └── protocol_benchmark.rb
│ │ ├── core
│ │ │ ├── test_backwards_compatability.rb
│ │ │ ├── test_exceptions.rb
│ │ │ └── transport
│ │ │ └── test_transport.rb
│ │ ├── fixtures
│ │ │ └── structs.rb
│ │ ├── generation
│ │ │ ├── test_enum.rb
│ │ │ └── test_struct.rb
│ │ ├── integration
│ │ │ ├── accelerated_buffered_client.rb
│ │ │ ├── accelerated_buffered_server.rb
│ │ │ ├── buffered_client.rb
│ │ │ ├── simple_client.rb
│ │ │ ├── simple_server.rb
│ │ │ └── test_simple_handler.rb
│ │ ├── Makefile.am
│ │ ├── test_helper.rb
│ │ └── test_suite.rb
│ ├── SmallTest.thrift
│ ├── StressTest.thrift
│ ├── test.sh
│ ├── threads
│ │ ├── Makefile
│ │ ├── ThreadsClient.cpp
│ │ ├── ThreadsServer.cpp
│ │ └── ThreadsTest.thrift
│ └── ThriftTest.thrift
├── testrpc
│ ├── divMoveTest.html
│ ├── gen-cpp
│ │ ├── client
│ │ │ ├── client.vcxproj
│ │ │ └── ReadMe.txt
│ │ ├── server
│ │ │ ├── ReadMe.txt
│ │ │ └── server.vcxproj
│ │ ├── test_constants.cpp
│ │ ├── test_constants.h
│ │ ├── test_types.cpp
│ │ ├── test_types.h
│ │ ├── UserStorageClient.cpp
│ │ ├── UserStorage.cpp
│ │ ├── UserStorage.h
│ │ └── UserStorage_server.skeleton.cpp
│ ├── gen-js
│ │ ├── test_types.js
│ │ └── UserStorage.js
│ ├── jquery.min.js
│ ├── test.pro
│ ├── tutorial.html
│ └── UserStorage_server.skeleton.cpp
└── tutorial
├── cpp
│ ├── CppClient.cpp
│ ├── CppServer.cpp
│ └── Makefile.am
├── csharp
│ ├── CsharpClient
│ │ ├── CsharpClient.cs
│ │ ├── CsharpClient.csproj
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── CsharpServer
│ │ ├── CsharpServer.cs
│ │ ├── CsharpServer.csproj
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ └── tutorial.sln
├── d
│ ├── async_client.d
│ ├── client.d
│ ├── Makefile
│ └── server.d
├── delphi
│ ├── DelphiClient
│ │ ├── DelphiClient.dpr
│ │ └── DelphiClient.dproj
│ ├── DelphiServer
│ │ ├── DelphiServer.dpr
│ │ └── DelphiServer.dproj
│ └── Tutorial.groupproj
├── erl
│ ├── client.erl
│ ├── client.sh
│ ├── json_client.erl
│ ├── README
│ ├── server.erl
│ └── server.sh
├── go
│ ├── deps.bash
│ ├── Make.deps
│ ├── Makefile
│ └── src
│ ├── CalculatorHandler.go
│ ├── GoClient.go
│ ├── GoServer.go
│ ├── main.go
│ └── Makefile
├── hs
│ ├── HaskellClient.hs
│ ├── HaskellServer.hs
│ └── ThriftTutorial.cabal
├── java
│ ├── build.xml
│ ├── Makefile.am
│ ├── README
│ └── src
│ ├── CalculatorHandler.java
│ ├── JavaClient.java
│ └── JavaServer.java
├── js
│ ├── build.xml
│ ├── Makefile.am
│ ├── src
│ │ └── Httpd.java
│ └── tutorial.html
├── Makefile.am
├── perl
│ ├── PerlClient.pl
│ └── PerlServer.pl
├── php
│ ├── PhpClient.php
│ ├── PhpServer.php
│ └── runserver.py
├── py
│ ├── Makefile.am
│ ├── PythonClient.py
│ └── PythonServer.py
├── py.twisted
│ ├── Makefile.am
│ ├── PythonClient.py
│ ├── PythonServer.py
│ └── PythonServer.tac
├── rb
│ ├── RubyClient.rb
│ └── RubyServer.rb
├── README
├── shared.thrift
└── tutorial.thrift
247 directories, 1335 files
评论