Full Code of apache/thrift for AI

master 3b0ab4dfa16a cached
2773 files
16.6 MB
4.5M tokens
14969 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (17,929K chars total). Download the full file to get everything.
Repository: apache/thrift
Branch: master
Commit: 3b0ab4dfa16a
Files: 2773
Total size: 16.6 MB

Directory structure:
gitextract_p34yoq1j/

├── .asf.yaml
├── .clang-format
├── .dockerignore
├── .editorconfig
├── .flake8
├── .gitattributes
├── .github/
│   ├── dependabot.yml
│   ├── mergeable.yml
│   ├── pull_request_template.md
│   ├── stale.yml
│   └── workflows/
│       ├── build.yml
│       ├── cmake.yml
│       ├── msvc.yml
│       ├── publish.yml
│       ├── pypi.yml
│       ├── release_rust.yml
│       └── sca.yml
├── .gitignore
├── .gitmodules
├── .travis.yml
├── ApacheThrift.nuspec
├── CHANGES.md
├── CMakeLists.txt
├── CONTRIBUTING.md
├── FUZZING.md
├── LANGUAGES.md
├── LICENSE
├── Makefile.am
├── NOTICE
├── Package.swift
├── README.md
├── Thrift.podspec
├── aclocal/
│   ├── ac_prog_bison.m4
│   ├── ax_boost_base.m4
│   ├── ax_check_openssl.m4
│   ├── ax_compare_version.m4
│   ├── ax_cxx_compile_stdcxx.m4
│   ├── ax_cxx_compile_stdcxx_11.m4
│   ├── ax_dmd.m4
│   ├── ax_javac_and_java.m4
│   ├── ax_lib_event.m4
│   ├── ax_lib_zlib.m4
│   ├── ax_lua.m4
│   ├── ax_prog_dotnetcore_version.m4
│   ├── ax_prog_haxe_version.m4
│   ├── ax_prog_perl_modules.m4
│   ├── ax_signed_right_shift.m4
│   ├── ax_thrift_internal.m4
│   └── tar.m4
├── appveyor.yml
├── bootstrap.sh
├── bower.json
├── build/
│   ├── appveyor/
│   │   ├── CYGWIN-appveyor-full.bat
│   │   ├── MINGW-appveyor-full.bat
│   │   ├── MSVC-appveyor-full.bat
│   │   ├── MSYS-appveyor-full.bat
│   │   ├── README.md
│   │   ├── build-libevent.bat
│   │   ├── build-zlib.bat
│   │   ├── simulate-appveyor.bat
│   │   └── win_showenv.bat
│   ├── cmake/
│   │   ├── BoostMacros.cmake
│   │   ├── BuildType.cmake
│   │   ├── CPackConfig.cmake
│   │   ├── ConfigureChecks.cmake
│   │   ├── DefineCMakeDefaults.cmake
│   │   ├── DefineInstallationPaths.cmake
│   │   ├── DefineOptions.cmake
│   │   ├── DefinePlatformSpecifc.cmake
│   │   ├── FindAnt.cmake
│   │   ├── FindClangTools.cmake
│   │   ├── FindGLIB.cmake
│   │   ├── FindGradle.cmake
│   │   ├── FindInttypes.cmake
│   │   ├── FindLibevent.cmake
│   │   ├── GenerateConfigModule.cmake
│   │   ├── NewPlatformDebug.cmake
│   │   ├── README-MSYS2.md
│   │   ├── README.md
│   │   ├── StaticCodeAnalysis.cmake
│   │   ├── ThriftConfig.cmake.in
│   │   ├── ThriftMacros.cmake
│   │   ├── android-toolchain.cmake
│   │   ├── config.h.in
│   │   ├── mingw32-toolchain.cmake
│   │   └── uninstall.cmake
│   ├── docker/
│   │   ├── README.md
│   │   ├── msvc/
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── build-compiler.bat
│   │   │   └── build.bat
│   │   ├── refresh.sh
│   │   ├── run.sh
│   │   ├── scripts/
│   │   │   ├── autotools.sh
│   │   │   ├── cmake.sh
│   │   │   ├── coverity.sh
│   │   │   ├── covscan.sh
│   │   │   ├── cross-test.sh
│   │   │   ├── dpkg.sh
│   │   │   ├── make-dist.sh
│   │   │   ├── sca.sh
│   │   │   └── ubsan.sh
│   │   ├── ubuntu-focal/
│   │   │   └── Dockerfile
│   │   ├── ubuntu-jammy/
│   │   │   └── Dockerfile
│   │   └── ubuntu-noble/
│   │       └── Dockerfile
│   ├── fixchanges.sh
│   └── veralign.sh
├── compiler/
│   └── cpp/
│       ├── CMakeLists.txt
│       ├── Makefile.am
│       ├── README.md
│       ├── coding_standards.md
│       ├── compiler.sln
│       ├── compiler.vcxproj
│       ├── compiler.vcxproj.filters
│       ├── src/
│       │   ├── Makefile.am
│       │   └── thrift/
│       │       ├── audit/
│       │       │   ├── t_audit.cpp
│       │       │   └── t_audit.h
│       │       ├── common.cc
│       │       ├── common.h
│       │       ├── generate/
│       │       │   ├── go_validator_generator.cc
│       │       │   ├── go_validator_generator.h
│       │       │   ├── t_c_glib_generator.cc
│       │       │   ├── t_cl_generator.cc
│       │       │   ├── t_cpp_generator.cc
│       │       │   ├── t_d_generator.cc
│       │       │   ├── t_dart_generator.cc
│       │       │   ├── t_delphi_generator.cc
│       │       │   ├── t_erl_generator.cc
│       │       │   ├── t_generator.cc
│       │       │   ├── t_generator.h
│       │       │   ├── t_generator_registry.h
│       │       │   ├── t_go_generator.cc
│       │       │   ├── t_go_generator.h
│       │       │   ├── t_gv_generator.cc
│       │       │   ├── t_haxe_generator.cc
│       │       │   ├── t_html_generator.cc
│       │       │   ├── t_html_generator.h
│       │       │   ├── t_java_generator.cc
│       │       │   ├── t_javame_generator.cc
│       │       │   ├── t_js_generator.cc
│       │       │   ├── t_json_generator.cc
│       │       │   ├── t_kotlin_generator.cc
│       │       │   ├── t_lua_generator.cc
│       │       │   ├── t_markdown_generator.cc
│       │       │   ├── t_netstd_generator.cc
│       │       │   ├── t_netstd_generator.h
│       │       │   ├── 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_rs_generator.cc
│       │       │   ├── t_st_generator.cc
│       │       │   ├── t_swift_generator.cc
│       │       │   ├── t_xml_generator.cc
│       │       │   ├── t_xsd_generator.cc
│       │       │   ├── validator_parser.cc
│       │       │   └── validator_parser.h
│       │       ├── globals.h
│       │       ├── logging.cc
│       │       ├── logging.h
│       │       ├── main.cc
│       │       ├── main.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_type.h
│       │       │   ├── t_typedef.cc
│       │       │   └── t_typedef.h
│       │       ├── platform.h
│       │       ├── thriftl.ll
│       │       ├── thrifty.yy
│       │       └── windows/
│       │           └── config.h
│       ├── test/
│       │   ├── CMakeLists.txt
│       │   ├── Makefile.am
│       │   ├── compiler/
│       │   │   ├── Included.thrift
│       │   │   ├── Including.thrift
│       │   │   ├── Single.thrift
│       │   │   └── staleness_check.py
│       │   └── keyword-samples/
│       │       ├── const1_return.thrift
│       │       ├── enum1_return.thrift
│       │       ├── enum2_return.thrift
│       │       ├── exception1_return.thrift
│       │       ├── exception2_return.thrift
│       │       ├── service1_return.thrift
│       │       ├── service2_return.thrift
│       │       ├── service3_return.thrift
│       │       ├── service4_return.thrift
│       │       ├── struct1_return.thrift
│       │       ├── struct2_return.thrift
│       │       ├── typedef1_return.thrift
│       │       ├── union1_return.thrift
│       │       └── union2_return.thrift
│       └── tests/
│           ├── CMakeLists.txt
│           ├── README.md
│           ├── catch/
│           │   └── catch.hpp
│           ├── cpp/
│           │   ├── expected_Color_default.txt
│           │   ├── expected_Color_enum_class.txt
│           │   ├── expected_Color_pure_enums.txt
│           │   ├── expected_TestStruct_default.txt
│           │   ├── expected_TestStruct_private_optional.txt
│           │   ├── t_cpp_generator_enum_class_tests.cc
│           │   ├── t_cpp_generator_forward_setter_tests.cc
│           │   ├── t_cpp_generator_private_optional_tests.cc
│           │   ├── t_cpp_generator_template_streamop_tests.cc
│           │   ├── t_cpp_generator_test_utils.h
│           │   ├── test_enum_class.thrift
│           │   ├── test_forward_setter.thrift
│           │   ├── test_private_optional.thrift
│           │   └── test_template_streamop.thrift
│           ├── netcore/
│           │   ├── t_netcore_generator_functional_tests.cc
│           │   ├── t_netcore_generator_functional_tests_helpers.cc
│           │   ├── t_netcore_generator_functional_tests_helpers.h
│           │   ├── t_netcore_generator_helpers_tests.cc
│           │   └── t_netcore_generator_initialization_tests.cc
│           ├── ocaml/
│           │   ├── README.md
│           │   ├── snapshot_exception_types_i.hpp
│           │   ├── snapshot_service_handle_ex.hpp
│           │   ├── snapshot_typedefs.cc
│           │   └── t_ocaml_generator_tests.cc
│           ├── tests_main.cc
│           ├── thrift_test_globals.cc
│           └── thrift_test_parser_support.cc
├── composer.json
├── configure.ac
├── contrib/
│   ├── README.md
│   ├── Rebus/
│   │   ├── App.config
│   │   ├── Program.cs
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── README.md
│   │   ├── RebusSample.csproj
│   │   ├── RebusSample.sln
│   │   ├── ServiceImpl/
│   │   │   ├── Both.cs
│   │   │   ├── Client.cs
│   │   │   └── Server.cs
│   │   └── sample.thrift
│   ├── Stomp/
│   │   ├── README.md
│   │   └── Thrift.Transport.STOMP.pas
│   ├── Vagrantfile
│   ├── async-test/
│   │   ├── aggr.thrift
│   │   ├── test-leaf.py
│   │   └── test-server.cpp
│   ├── fb303/
│   │   ├── LICENSE
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── TClientInfo.cpp
│   │   ├── TClientInfo.h
│   │   ├── aclocal/
│   │   │   ├── ax_boost_base.m4
│   │   │   ├── ax_cxx_compile_stdcxx_11.m4
│   │   │   ├── ax_javac_and_java.m4
│   │   │   └── ax_thrift_internal.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.properties
│   │   │   ├── build.xml
│   │   │   └── src/
│   │   │       └── FacebookBase.java
│   │   ├── php/
│   │   │   └── FacebookBase.php
│   │   └── py/
│   │       ├── Makefile.am
│   │       ├── fb303/
│   │       │   └── FacebookBase.py
│   │       ├── fb303_scripts/
│   │       │   ├── __init__.py
│   │       │   └── fb303_simple_mgmt.py
│   │       └── setup.py
│   ├── mingw-cross-compile.sh
│   ├── parse_profiling.py
│   ├── thrift-maven-plugin/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── apache/
│   │       │               └── thrift/
│   │       │                   └── maven/
│   │       │                       ├── AbstractThriftMojo.java
│   │       │                       ├── Thrift.java
│   │       │                       ├── ThriftCompileMojo.java
│   │       │                       └── ThriftTestCompileMojo.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── apache/
│   │           │           └── thrift/
│   │           │               └── maven/
│   │           │                   ├── TestAbstractThriftMojo.java
│   │           │                   └── TestThrift.java
│   │           └── resources/
│   │               └── idl/
│   │                   ├── shared.thrift
│   │                   └── tutorial.thrift
│   ├── thrift.el
│   ├── thrift.spec
│   ├── thrift.vim
│   ├── thrift_dump.cpp
│   ├── transport-sample/
│   │   ├── README.md
│   │   ├── Sample.thrift
│   │   ├── ThriftCommon.cpp
│   │   ├── ThriftCommon.h
│   │   ├── client/
│   │   │   ├── ReadMe.txt
│   │   │   ├── client.cpp
│   │   │   ├── client.vcxproj
│   │   │   ├── client.vcxproj.filters
│   │   │   ├── stdafx.cpp
│   │   │   ├── stdafx.h
│   │   │   └── targetver.h
│   │   ├── config.h
│   │   ├── server/
│   │   │   ├── ReadMe.txt
│   │   │   ├── server.cpp
│   │   │   ├── server.vcxproj
│   │   │   ├── server.vcxproj.filters
│   │   │   ├── stdafx.cpp
│   │   │   ├── stdafx.h
│   │   │   └── targetver.h
│   │   ├── thriftme.bat
│   │   ├── thriftme.sh
│   │   └── transport-sample.sln
│   ├── vagrant/
│   │   └── centos-6.5/
│   │       ├── README.md
│   │       └── Vagrantfile
│   └── zeromq/
│       ├── README.md
│       ├── TZmqClient.cpp
│       ├── TZmqClient.h
│       ├── TZmqClient.py
│       ├── TZmqServer.cpp
│       ├── TZmqServer.h
│       ├── TZmqServer.py
│       ├── csharp/
│       │   ├── AssemblyInfo.cs
│       │   ├── Main.cs
│       │   ├── TZmqClient.cs
│       │   ├── TZmqServer.cs
│       │   ├── ThriftZMQ.csproj
│       │   └── ThriftZMQ.sln
│       ├── storage.thrift
│       ├── test-client.cpp
│       ├── test-client.py
│       ├── test-receiver.cpp
│       ├── test-sender.cpp
│       ├── test-server.cpp
│       └── test-server.py
├── debian/
│   ├── README.md
│   ├── changelog
│   ├── compat
│   ├── control
│   ├── copyright
│   ├── dirs
│   ├── docs
│   ├── libthrift-dev.install
│   ├── libthrift0.install
│   ├── php5-thrift.dirs
│   ├── rules
│   ├── substvars
│   ├── thrift-doc.docs
│   └── thrift-doc.install
├── doap.rdf
├── doc/
│   ├── ReleaseManagement.md
│   ├── coding_standards.md
│   ├── committers.md
│   ├── install/
│   │   ├── README.md
│   │   ├── centos.md
│   │   ├── debian.md
│   │   ├── os_x.md
│   │   └── windows.md
│   ├── licenses/
│   │   └── otp-base-license.txt
│   └── specs/
│       ├── HeaderFormat.md
│       ├── SequenceNumbers.md
│       ├── idl.md
│       ├── thrift-binary-protocol.md
│       ├── thrift-compact-protocol.md
│       ├── thrift-parameter-validation-proposal.md
│       ├── thrift-protocol-spec.md
│       ├── thrift-rpc.md
│       ├── thrift-sasl-spec.txt
│       ├── thrift-tconfiguration.md
│       └── thrift.tex
├── dub.json
├── eslint.config.mjs
├── go.mod
├── jitpack.yml
├── lib/
│   ├── Makefile.am
│   ├── c_glib/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── src/
│   │   │   └── thrift/
│   │   │       └── c_glib/
│   │   │           ├── processor/
│   │   │           │   ├── thrift_dispatch_processor.c
│   │   │           │   ├── thrift_dispatch_processor.h
│   │   │           │   ├── thrift_multiplexed_processor.c
│   │   │           │   ├── thrift_multiplexed_processor.h
│   │   │           │   ├── thrift_processor.c
│   │   │           │   └── thrift_processor.h
│   │   │           ├── protocol/
│   │   │           │   ├── thrift_binary_protocol.c
│   │   │           │   ├── thrift_binary_protocol.h
│   │   │           │   ├── thrift_binary_protocol_factory.c
│   │   │           │   ├── thrift_binary_protocol_factory.h
│   │   │           │   ├── thrift_compact_protocol.c
│   │   │           │   ├── thrift_compact_protocol.h
│   │   │           │   ├── thrift_compact_protocol_factory.c
│   │   │           │   ├── thrift_compact_protocol_factory.h
│   │   │           │   ├── thrift_multiplexed_protocol.c
│   │   │           │   ├── thrift_multiplexed_protocol.h
│   │   │           │   ├── thrift_protocol.c
│   │   │           │   ├── thrift_protocol.h
│   │   │           │   ├── thrift_protocol_decorator.c
│   │   │           │   ├── thrift_protocol_decorator.h
│   │   │           │   ├── thrift_protocol_factory.c
│   │   │           │   ├── thrift_protocol_factory.h
│   │   │           │   ├── thrift_stored_message_protocol.c
│   │   │           │   └── thrift_stored_message_protocol.h
│   │   │           ├── server/
│   │   │           │   ├── thrift_server.c
│   │   │           │   ├── thrift_server.h
│   │   │           │   ├── thrift_simple_server.c
│   │   │           │   └── thrift_simple_server.h
│   │   │           ├── thrift.c
│   │   │           ├── thrift.h
│   │   │           ├── thrift_application_exception.c
│   │   │           ├── thrift_application_exception.h
│   │   │           ├── thrift_configuration.c
│   │   │           ├── thrift_configuration.h
│   │   │           ├── thrift_struct.c
│   │   │           ├── thrift_struct.h
│   │   │           └── transport/
│   │   │               ├── thrift_buffered_transport.c
│   │   │               ├── thrift_buffered_transport.h
│   │   │               ├── thrift_buffered_transport_factory.c
│   │   │               ├── thrift_buffered_transport_factory.h
│   │   │               ├── thrift_fd_transport.c
│   │   │               ├── thrift_fd_transport.h
│   │   │               ├── thrift_framed_transport.c
│   │   │               ├── thrift_framed_transport.h
│   │   │               ├── thrift_framed_transport_factory.c
│   │   │               ├── thrift_framed_transport_factory.h
│   │   │               ├── thrift_memory_buffer.c
│   │   │               ├── thrift_memory_buffer.h
│   │   │               ├── thrift_platform_socket.h
│   │   │               ├── thrift_server_socket.c
│   │   │               ├── thrift_server_socket.h
│   │   │               ├── thrift_server_transport.c
│   │   │               ├── thrift_server_transport.h
│   │   │               ├── thrift_socket.c
│   │   │               ├── thrift_socket.h
│   │   │               ├── thrift_ssl_socket.c
│   │   │               ├── thrift_ssl_socket.h
│   │   │               ├── thrift_transport.c
│   │   │               ├── thrift_transport.h
│   │   │               ├── thrift_transport_factory.c
│   │   │               ├── thrift_transport_factory.h
│   │   │               ├── thrift_zlib_transport.c
│   │   │               ├── thrift_zlib_transport.h
│   │   │               ├── thrift_zlib_transport_factory.c
│   │   │               └── thrift_zlib_transport_factory.h
│   │   ├── test/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ContainerTest.thrift
│   │   │   ├── Makefile.am
│   │   │   ├── fuzz/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── README.md
│   │   │   │   ├── fuzz_parse_binary.c
│   │   │   │   └── fuzz_parse_compact.c
│   │   │   ├── glib.suppress
│   │   │   ├── testapplicationexception.c
│   │   │   ├── testbinaryprotocol.c
│   │   │   ├── testbufferedtransport.c
│   │   │   ├── testcompactprotocol.c
│   │   │   ├── testcontainertest.c
│   │   │   ├── testdebugproto.c
│   │   │   ├── testfdtransport.c
│   │   │   ├── testframedtransport.c
│   │   │   ├── testmemorybuffer.c
│   │   │   ├── testoptionalrequired.c
│   │   │   ├── testserialization.c
│   │   │   ├── testsimpleserver.c
│   │   │   ├── teststruct.c
│   │   │   ├── testthriftbinaryreadcheck.c
│   │   │   ├── testthriftbufferedreadcheck.c
│   │   │   ├── testthriftcompactreadcheck.c
│   │   │   ├── testthriftfdreadcheck.c
│   │   │   ├── testthriftframedreadcheck.c
│   │   │   ├── testthriftmemorybufferreadcheck.c
│   │   │   ├── testthrifttest.c
│   │   │   ├── testthrifttestclient.cpp
│   │   │   ├── testthrifttestzlibclient.cpp
│   │   │   ├── testtransportsocket.c
│   │   │   ├── testtransportsslsocket.c
│   │   │   └── testzlibtransport.c
│   │   └── thrift_c_glib.pc.in
│   ├── cl/
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── READMES/
│   │   │   └── readme-cassandra.lisp
│   │   ├── ensure-externals.sh
│   │   ├── load-locally.lisp
│   │   └── test/
│   │       └── make-test-binary.lisp
│   ├── cpp/
│   │   ├── 3rdparty.props
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── libthrift.vcxproj
│   │   ├── libthrift.vcxproj.filters
│   │   ├── libthriftnb.vcxproj
│   │   ├── libthriftnb.vcxproj.filters
│   │   ├── src/
│   │   │   └── thrift/
│   │   │       ├── TApplicationException.cpp
│   │   │       ├── TApplicationException.h
│   │   │       ├── TBase.h
│   │   │       ├── TConfiguration.h
│   │   │       ├── TDispatchProcessor.h
│   │   │       ├── TLogging.h
│   │   │       ├── TNonCopyable.h
│   │   │       ├── TOutput.cpp
│   │   │       ├── TOutput.h
│   │   │       ├── TPrintTo.h
│   │   │       ├── TProcessor.h
│   │   │       ├── TToString.h
│   │   │       ├── TUuid.cpp
│   │   │       ├── TUuid.h
│   │   │       ├── Thrift.h
│   │   │       ├── VirtualProfiling.cpp
│   │   │       ├── async/
│   │   │       │   ├── TAsyncBufferProcessor.h
│   │   │       │   ├── TAsyncChannel.cpp
│   │   │       │   ├── TAsyncChannel.h
│   │   │       │   ├── TAsyncDispatchProcessor.h
│   │   │       │   ├── TAsyncProcessor.h
│   │   │       │   ├── TAsyncProtocolProcessor.cpp
│   │   │       │   ├── TAsyncProtocolProcessor.h
│   │   │       │   ├── TConcurrentClientSyncInfo.cpp
│   │   │       │   ├── TConcurrentClientSyncInfo.h
│   │   │       │   ├── TEvhttpClientChannel.cpp
│   │   │       │   ├── TEvhttpClientChannel.h
│   │   │       │   ├── TEvhttpServer.cpp
│   │   │       │   └── TEvhttpServer.h
│   │   │       ├── concurrency/
│   │   │       │   ├── Exception.h
│   │   │       │   ├── FunctionRunner.h
│   │   │       │   ├── Monitor.cpp
│   │   │       │   ├── Monitor.h
│   │   │       │   ├── Mutex.cpp
│   │   │       │   ├── Mutex.h
│   │   │       │   ├── Thread.cpp
│   │   │       │   ├── Thread.h
│   │   │       │   ├── ThreadFactory.cpp
│   │   │       │   ├── ThreadFactory.h
│   │   │       │   ├── ThreadManager.cpp
│   │   │       │   ├── ThreadManager.h
│   │   │       │   ├── TimerManager.cpp
│   │   │       │   └── TimerManager.h
│   │   │       ├── processor/
│   │   │       │   ├── PeekProcessor.cpp
│   │   │       │   ├── PeekProcessor.h
│   │   │       │   ├── StatsProcessor.h
│   │   │       │   └── TMultiplexedProcessor.h
│   │   │       ├── protocol/
│   │   │       │   ├── TBase64Utils.cpp
│   │   │       │   ├── TBase64Utils.h
│   │   │       │   ├── TBinaryProtocol.h
│   │   │       │   ├── TBinaryProtocol.tcc
│   │   │       │   ├── TCompactProtocol.h
│   │   │       │   ├── TCompactProtocol.tcc
│   │   │       │   ├── TDebugProtocol.cpp
│   │   │       │   ├── TDebugProtocol.h
│   │   │       │   ├── TEnum.h
│   │   │       │   ├── THeaderProtocol.cpp
│   │   │       │   ├── THeaderProtocol.h
│   │   │       │   ├── TJSONProtocol.cpp
│   │   │       │   ├── TJSONProtocol.h
│   │   │       │   ├── TList.h
│   │   │       │   ├── TMap.h
│   │   │       │   ├── TMultiplexedProtocol.cpp
│   │   │       │   ├── TMultiplexedProtocol.h
│   │   │       │   ├── TProtocol.cpp
│   │   │       │   ├── TProtocol.h
│   │   │       │   ├── TProtocolDecorator.h
│   │   │       │   ├── TProtocolException.h
│   │   │       │   ├── TProtocolTap.h
│   │   │       │   ├── TProtocolTypes.h
│   │   │       │   ├── TSet.h
│   │   │       │   └── TVirtualProtocol.h
│   │   │       ├── qt/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── TQIODeviceTransport.cpp
│   │   │       │   ├── TQIODeviceTransport.h
│   │   │       │   ├── TQTcpServer.cpp
│   │   │       │   └── TQTcpServer.h
│   │   │       ├── server/
│   │   │       │   ├── TConnectedClient.cpp
│   │   │       │   ├── TConnectedClient.h
│   │   │       │   ├── TNonblockingServer.cpp
│   │   │       │   ├── TNonblockingServer.h
│   │   │       │   ├── TServer.cpp
│   │   │       │   ├── TServer.h
│   │   │       │   ├── TServerFramework.cpp
│   │   │       │   ├── TServerFramework.h
│   │   │       │   ├── TSimpleServer.cpp
│   │   │       │   ├── TSimpleServer.h
│   │   │       │   ├── TThreadPoolServer.cpp
│   │   │       │   ├── TThreadPoolServer.h
│   │   │       │   ├── TThreadedServer.cpp
│   │   │       │   └── TThreadedServer.h
│   │   │       ├── thrift-config.h
│   │   │       ├── thrift_export.h
│   │   │       ├── transport/
│   │   │       │   ├── PlatformSocket.h
│   │   │       │   ├── SocketCommon.cpp
│   │   │       │   ├── SocketCommon.h
│   │   │       │   ├── TBufferTransports.cpp
│   │   │       │   ├── TBufferTransports.h
│   │   │       │   ├── TFDTransport.cpp
│   │   │       │   ├── TFDTransport.h
│   │   │       │   ├── TFileTransport.cpp
│   │   │       │   ├── TFileTransport.h
│   │   │       │   ├── THeaderTransport.cpp
│   │   │       │   ├── THeaderTransport.h
│   │   │       │   ├── THttpClient.cpp
│   │   │       │   ├── THttpClient.h
│   │   │       │   ├── THttpServer.cpp
│   │   │       │   ├── THttpServer.h
│   │   │       │   ├── THttpTransport.cpp
│   │   │       │   ├── THttpTransport.h
│   │   │       │   ├── TNonblockingSSLServerSocket.cpp
│   │   │       │   ├── TNonblockingSSLServerSocket.h
│   │   │       │   ├── TNonblockingServerSocket.cpp
│   │   │       │   ├── TNonblockingServerSocket.h
│   │   │       │   ├── TNonblockingServerTransport.h
│   │   │       │   ├── TPipe.cpp
│   │   │       │   ├── TPipe.h
│   │   │       │   ├── TPipeServer.cpp
│   │   │       │   ├── TPipeServer.h
│   │   │       │   ├── TSSLServerSocket.cpp
│   │   │       │   ├── TSSLServerSocket.h
│   │   │       │   ├── TSSLSocket.cpp
│   │   │       │   ├── TSSLSocket.h
│   │   │       │   ├── TServerSocket.cpp
│   │   │       │   ├── TServerSocket.h
│   │   │       │   ├── TServerTransport.h
│   │   │       │   ├── TShortReadTransport.h
│   │   │       │   ├── TSimpleFileTransport.cpp
│   │   │       │   ├── TSimpleFileTransport.h
│   │   │       │   ├── TSocket.cpp
│   │   │       │   ├── TSocket.h
│   │   │       │   ├── TSocketPool.cpp
│   │   │       │   ├── TSocketPool.h
│   │   │       │   ├── TSocketUtils.h
│   │   │       │   ├── TTransport.h
│   │   │       │   ├── TTransportException.cpp
│   │   │       │   ├── TTransportException.h
│   │   │       │   ├── TTransportUtils.cpp
│   │   │       │   ├── TTransportUtils.h
│   │   │       │   ├── TVirtualTransport.h
│   │   │       │   ├── TWebSocketServer.cpp
│   │   │       │   ├── TWebSocketServer.h
│   │   │       │   ├── TZlibTransport.cpp
│   │   │       │   └── TZlibTransport.h
│   │   │       └── windows/
│   │   │           ├── GetTimeOfDay.cpp
│   │   │           ├── GetTimeOfDay.h
│   │   │           ├── Operators.h
│   │   │           ├── OverlappedSubmissionThread.cpp
│   │   │           ├── OverlappedSubmissionThread.h
│   │   │           ├── SocketPair.cpp
│   │   │           ├── SocketPair.h
│   │   │           ├── Sync.h
│   │   │           ├── TWinsockSingleton.cpp
│   │   │           ├── TWinsockSingleton.h
│   │   │           ├── WinFcntl.cpp
│   │   │           ├── WinFcntl.h
│   │   │           └── config.h
│   │   ├── test/
│   │   │   ├── AllProtocolTests.cpp
│   │   │   ├── AllProtocolTests.tcc
│   │   │   ├── AnnotationTest.cpp
│   │   │   ├── Base64Test.cpp
│   │   │   ├── Benchmark.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DebugProtoTest.cpp
│   │   │   ├── DebugProtoTest_extras.cpp
│   │   │   ├── EnumTest.cpp
│   │   │   ├── GenericHelpers.h
│   │   │   ├── JSONProtoTest.cpp
│   │   │   ├── Makefile.am
│   │   │   ├── OneWayHTTPTest.cpp
│   │   │   ├── OneWayTest.thrift
│   │   │   ├── OpenSSLManualInitTest.cpp
│   │   │   ├── OptionalRequiredTest.cpp
│   │   │   ├── RecursiveTest.cpp
│   │   │   ├── RenderedDoubleConstantsTest.cpp
│   │   │   ├── SecurityFromBufferTest.cpp
│   │   │   ├── SecurityTest.cpp
│   │   │   ├── SpecializationTest.cpp
│   │   │   ├── TBufferBaseTest.cpp
│   │   │   ├── TFDTransportTest.cpp
│   │   │   ├── TFileTransportTest.cpp
│   │   │   ├── TMemoryBufferTest.cpp
│   │   │   ├── TNonblockingSSLServerTest.cpp
│   │   │   ├── TNonblockingServerTest.cpp
│   │   │   ├── TPipeInterruptTest.cpp
│   │   │   ├── TPipedTransportTest.cpp
│   │   │   ├── TSSLSocketInterruptTest.cpp
│   │   │   ├── TServerIntegrationTest.cpp
│   │   │   ├── TServerSocketTest.cpp
│   │   │   ├── TServerTransportTest.cpp
│   │   │   ├── TSocketInterruptTest.cpp
│   │   │   ├── TTransportCheckThrow.h
│   │   │   ├── TUuidTest.cpp
│   │   │   ├── TUuidTestBoost.cpp
│   │   │   ├── TUuidTestBoostNoDirective.cpp
│   │   │   ├── Thrift5272.cpp
│   │   │   ├── Thrift5272.thrift
│   │   │   ├── ThriftTest_extras.cpp
│   │   │   ├── ThrifttReadCheckTests.cpp
│   │   │   ├── ToStringTest.cpp
│   │   │   ├── TransportTest.cpp
│   │   │   ├── TypedefTest.cpp
│   │   │   ├── UnitTestMain.cpp
│   │   │   ├── ZlibTest.cpp
│   │   │   ├── concurrency/
│   │   │   │   ├── Tests.cpp
│   │   │   │   ├── ThreadFactoryTests.h
│   │   │   │   ├── ThreadManagerTests.h
│   │   │   │   └── TimerManagerTests.h
│   │   │   ├── fuzz/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FuzzCommon.tcc
│   │   │   │   ├── FuzzParseBinary.cpp
│   │   │   │   ├── FuzzParseCompact.cpp
│   │   │   │   ├── FuzzParseJson.cpp
│   │   │   │   ├── FuzzRoundtripBinary.cpp
│   │   │   │   ├── FuzzRoundtripCompact.cpp
│   │   │   │   ├── FuzzRoundtripJson.cpp
│   │   │   │   ├── Makefile.am
│   │   │   │   └── README.md
│   │   │   ├── link/
│   │   │   │   ├── LinkTest.cpp
│   │   │   │   ├── TemplatedService1.cpp
│   │   │   │   └── TemplatedService2.cpp
│   │   │   ├── processor/
│   │   │   │   ├── EventLog.cpp
│   │   │   │   ├── EventLog.h
│   │   │   │   ├── Handlers.h
│   │   │   │   ├── ProcessorTest.cpp
│   │   │   │   ├── ServerThread.cpp
│   │   │   │   ├── ServerThread.h
│   │   │   │   └── proc.thrift
│   │   │   └── qt/
│   │   │       ├── CMakeLists.txt
│   │   │       └── TQTcpServerTest.cpp
│   │   ├── thrift-nb.pc.in
│   │   ├── thrift-qt5.pc.in
│   │   ├── thrift-z.pc.in
│   │   ├── thrift.pc.in
│   │   └── thrift.sln
│   ├── d/
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── 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.d
│   │   │       │   ├── ssl_bio.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
│   │   │       │   ├── websocket.d
│   │   │       │   └── zlib.d
│   │   │       └── util/
│   │   │           ├── awaitable.d
│   │   │           ├── cancellation.d
│   │   │           ├── future.d
│   │   │           └── hashset.d
│   │   └── test/
│   │       ├── Makefile.am
│   │       ├── async_test.d
│   │       ├── async_test_runner.sh
│   │       ├── client_pool_test.d
│   │       ├── 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
│   ├── dart/
│   │   ├── LICENSE
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── coding_standards.md
│   │   ├── lib/
│   │   │   ├── src/
│   │   │   │   ├── browser/
│   │   │   │   │   └── t_web_socket.dart
│   │   │   │   ├── console/
│   │   │   │   │   ├── t_tcp_socket.dart
│   │   │   │   │   └── t_web_socket.dart
│   │   │   │   ├── protocol/
│   │   │   │   │   ├── t_binary_protocol.dart
│   │   │   │   │   ├── t_compact_protocol.dart
│   │   │   │   │   ├── t_field.dart
│   │   │   │   │   ├── t_json_protocol.dart
│   │   │   │   │   ├── t_list.dart
│   │   │   │   │   ├── t_map.dart
│   │   │   │   │   ├── t_message.dart
│   │   │   │   │   ├── t_multiplexed_protocol.dart
│   │   │   │   │   ├── t_protocol.dart
│   │   │   │   │   ├── t_protocol_decorator.dart
│   │   │   │   │   ├── t_protocol_error.dart
│   │   │   │   │   ├── t_protocol_factory.dart
│   │   │   │   │   ├── t_protocol_util.dart
│   │   │   │   │   ├── t_set.dart
│   │   │   │   │   ├── t_struct.dart
│   │   │   │   │   └── t_type.dart
│   │   │   │   ├── serializer/
│   │   │   │   │   ├── t_deserializer.dart
│   │   │   │   │   └── t_serializer.dart
│   │   │   │   ├── t_application_error.dart
│   │   │   │   ├── t_base.dart
│   │   │   │   ├── t_error.dart
│   │   │   │   ├── t_processor.dart
│   │   │   │   └── transport/
│   │   │   │       ├── t_buffered_transport.dart
│   │   │   │       ├── t_framed_transport.dart
│   │   │   │       ├── t_http_transport.dart
│   │   │   │       ├── t_message_reader.dart
│   │   │   │       ├── t_socket.dart
│   │   │   │       ├── t_socket_transport.dart
│   │   │   │       ├── t_transport.dart
│   │   │   │       ├── t_transport_error.dart
│   │   │   │       └── t_transport_factory.dart
│   │   │   ├── thrift.dart
│   │   │   ├── thrift_browser.dart
│   │   │   └── thrift_console.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── protocol/
│   │       │   └── t_protocol_test.dart
│   │       ├── serializer/
│   │       │   ├── serializer_test.dart
│   │       │   └── serializer_test_data.dart
│   │       ├── t_application_error_test.dart
│   │       └── transport/
│   │           ├── t_framed_transport_test.dart
│   │           ├── t_http_transport_test.dart
│   │           ├── t_socket_transport_test.dart
│   │           └── t_transport_test.dart
│   ├── delphi/
│   │   ├── DelphiThrift.groupproj
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── src/
│   │   │   ├── Thrift.Collections.pas
│   │   │   ├── Thrift.Configuration.pas
│   │   │   ├── Thrift.Defines.inc
│   │   │   ├── Thrift.Exception.pas
│   │   │   ├── Thrift.Processor.Multiplex.pas
│   │   │   ├── Thrift.Protocol.Compact.pas
│   │   │   ├── Thrift.Protocol.JSON.pas
│   │   │   ├── Thrift.Protocol.Multiplex.pas
│   │   │   ├── Thrift.Protocol.pas
│   │   │   ├── Thrift.Serializer.pas
│   │   │   ├── Thrift.Server.pas
│   │   │   ├── Thrift.Socket.pas
│   │   │   ├── Thrift.Stream.pas
│   │   │   ├── Thrift.Transport.MsxmlHTTP.pas
│   │   │   ├── Thrift.Transport.Pipes.pas
│   │   │   ├── Thrift.Transport.WinHTTP.pas
│   │   │   ├── Thrift.Transport.pas
│   │   │   ├── Thrift.TypeRegistry.pas
│   │   │   ├── Thrift.Utils.pas
│   │   │   ├── Thrift.WinHTTP.pas
│   │   │   └── Thrift.pas
│   │   └── test/
│   │       ├── ConsoleHelper.pas
│   │       ├── client.dpr
│   │       ├── client.dproj
│   │       ├── codegen/
│   │       │   ├── README.md
│   │       │   └── run-Pascal-Codegen-Tests.ps1
│   │       ├── keywords/
│   │       │   ├── ReservedIncluded.thrift
│   │       │   ├── ReservedKeywords.dpr
│   │       │   ├── ReservedKeywords.dproj
│   │       │   └── ReservedKeywords.thrift
│   │       ├── maketest.sh
│   │       ├── multiplexed/
│   │       │   ├── Multiplex.Client.Main.pas
│   │       │   ├── Multiplex.Server.Main.pas
│   │       │   ├── Multiplex.Test.Client.dpr
│   │       │   ├── Multiplex.Test.Client.dproj
│   │       │   ├── Multiplex.Test.Common.pas
│   │       │   ├── Multiplex.Test.Server.dpr
│   │       │   └── Multiplex.Test.Server.dproj
│   │       ├── serializer/
│   │       │   ├── SerializerData.dpr
│   │       │   ├── SerializerData.dproj
│   │       │   ├── SerializerData.res
│   │       │   ├── SimpleException.thrift
│   │       │   ├── TestSerializer.Data.pas
│   │       │   ├── TestSerializer.Tests.pas
│   │       │   ├── TestSerializer.dpr
│   │       │   └── TestSerializer.dproj
│   │       ├── server.dpr
│   │       ├── server.dproj
│   │       ├── skip/
│   │       │   ├── README.md
│   │       │   ├── idl/
│   │       │   │   ├── skiptest_version_1.thrift
│   │       │   │   └── skiptest_version_2.thrift
│   │       │   ├── skiptest_version1.dpr
│   │       │   ├── skiptest_version1.dproj
│   │       │   ├── skiptest_version2.dpr
│   │       │   └── skiptest_version2.dproj
│   │       ├── testsuite/
│   │       │   ├── TestConstants.pas
│   │       │   ├── client/
│   │       │   │   ├── Performance/
│   │       │   │   │   ├── DataFactory.pas
│   │       │   │   │   └── PerfTests.pas
│   │       │   │   ├── TestClient.pas
│   │       │   │   ├── TestLogger.pas
│   │       │   │   └── UnitTests.pas
│   │       │   └── server/
│   │       │       ├── TestServer.pas
│   │       │       └── TestServerEvents.pas
│   │       └── typeregistry/
│   │           ├── Test.EnumToString.pas
│   │           ├── Test.TypeRegistry.pas
│   │           ├── TestTypeRegistry.dpr
│   │           └── TestTypeRegistry.dproj
│   ├── erl/
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── include/
│   │   │   ├── thrift_constants.hrl
│   │   │   └── thrift_protocol.hrl
│   │   ├── rebar.config
│   │   ├── rebar.config.script
│   │   ├── src/
│   │   │   ├── thrift_base64_transport.erl
│   │   │   ├── thrift_binary_protocol.erl
│   │   │   ├── thrift_buffered_transport.erl
│   │   │   ├── thrift_client.erl
│   │   │   ├── thrift_client_util.erl
│   │   │   ├── thrift_compact_protocol.erl
│   │   │   ├── thrift_disk_log_transport.erl
│   │   │   ├── thrift_file_transport.erl
│   │   │   ├── thrift_framed_transport.erl
│   │   │   ├── thrift_http_transport.erl
│   │   │   ├── thrift_json_parser.erl
│   │   │   ├── thrift_json_protocol.erl
│   │   │   ├── thrift_membuffer_transport.erl
│   │   │   ├── thrift_memory_buffer.erl
│   │   │   ├── thrift_multiplexed_map_wrapper.erl
│   │   │   ├── thrift_multiplexed_protocol.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_sslsocket_transport.erl
│   │   │   ├── thrift_transport.erl
│   │   │   └── thrift_transport_state_test.erl
│   │   └── test/
│   │       ├── Thrift1151.thrift
│   │       ├── Thrift1475.thrift
│   │       ├── Thrift_omit_with.thrift
│   │       ├── flags/
│   │       │   ├── LegacyNames.thrift
│   │       │   └── Thrift3214.thrift
│   │       ├── legacy_names_test.erl
│   │       ├── multiplexing.thrift
│   │       ├── multiplexing_test.erl
│   │       ├── name_conflict_test.erl
│   │       ├── stress_server.erl
│   │       ├── test_const.erl
│   │       ├── test_disklog.erl
│   │       ├── test_omit.erl
│   │       ├── test_rendered_double_constants.erl
│   │       ├── test_thrift_1151.erl
│   │       ├── test_thrift_3214.erl
│   │       ├── test_thrift_buffered_transport.erl
│   │       ├── test_thrift_compact_protocol.erl
│   │       ├── test_thrift_file_transport.erl
│   │       ├── test_thrift_framed_transport.erl
│   │       ├── test_thrift_membuffer_transport.erl
│   │       ├── test_thrift_socket_transport.erl
│   │       ├── thrift_socket_server_test.erl
│   │       └── thrift_test_test.erl
│   ├── go/
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── test/
│   │   │   ├── BinaryKeyTest.thrift
│   │   │   ├── ClientMiddlewareExceptionTest.thrift
│   │   │   ├── ConflictArgNamesTest.thrift
│   │   │   ├── ConflictNamespaceServiceTest.thrift
│   │   │   ├── ConflictNamespaceTestA.thrift
│   │   │   ├── ConflictNamespaceTestB.thrift
│   │   │   ├── ConflictNamespaceTestC.thrift
│   │   │   ├── ConflictNamespaceTestD.thrift
│   │   │   ├── ConflictNamespaceTestE.thrift
│   │   │   ├── ConflictNamespaceTestF.thrift
│   │   │   ├── ConflictNamespaceTestSuperThing.thrift
│   │   │   ├── ConstOptionalField.thrift
│   │   │   ├── ConstOptionalFieldImport.thrift
│   │   │   ├── DontExportRWTest.thrift
│   │   │   ├── DuplicateImportsTest.thrift
│   │   │   ├── EqualsTest.thrift
│   │   │   ├── ErrorTest.thrift
│   │   │   ├── ForwardType.thrift
│   │   │   ├── GoTagTest.thrift
│   │   │   ├── IgnoreInitialismsTest.thrift
│   │   │   ├── IncludesTest.thrift
│   │   │   ├── InitialismsTest.thrift
│   │   │   ├── Makefile.am
│   │   │   ├── MultiplexedProtocolTest.thrift
│   │   │   ├── NamesTest.thrift
│   │   │   ├── NamespacedTest.thrift
│   │   │   ├── OnewayTest.thrift
│   │   │   ├── OptionalFieldsTest.thrift
│   │   │   ├── ProcessorMiddlewareTest.thrift
│   │   │   ├── RefAnnotationFieldsTest.thrift
│   │   │   ├── RequiredFieldTest.thrift
│   │   │   ├── ServicesTest.thrift
│   │   │   ├── StringParseAllocationTest.thrift
│   │   │   ├── TypedefFieldTest.thrift
│   │   │   ├── UnionBinaryTest.thrift
│   │   │   ├── UnionDefaultValueTest.thrift
│   │   │   ├── ValidateTest.thrift
│   │   │   ├── common/
│   │   │   │   ├── a.thrift
│   │   │   │   └── b.thrift
│   │   │   ├── dontexportrwtest/
│   │   │   │   └── compile_test.go
│   │   │   ├── fuzz/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── README.md
│   │   │   │   ├── fuzz.go
│   │   │   │   ├── fuzz_test.go
│   │   │   │   └── go.mod
│   │   │   ├── go.mod
│   │   │   ├── go.sum
│   │   │   └── tests/
│   │   │       ├── binary_key_test.go
│   │   │       ├── client_error_test.go
│   │   │       ├── client_middleware_exception_test.go
│   │   │       ├── conflict_arg_names_test.go
│   │   │       ├── conflict_namespace_test.go
│   │   │       ├── const_optional_field_test.go
│   │   │       ├── context.go
│   │   │       ├── encoding_json_test.go
│   │   │       ├── enum_values_test.go
│   │   │       ├── equals_test.go
│   │   │       ├── forwardtype_test.go
│   │   │       ├── gotag_test.go
│   │   │       ├── header_zlib_test.go
│   │   │       ├── ignoreinitialisms_test.go
│   │   │       ├── initialisms_test.go
│   │   │       ├── json_protocol_deserializer_test.go
│   │   │       ├── multiplexed_protocol_test.go
│   │   │       ├── names_test.go
│   │   │       ├── one_way_test.go
│   │   │       ├── optional_fields_test.go
│   │   │       ├── processor_middleware_test.go
│   │   │       ├── protocol_mock.go
│   │   │       ├── protocols_test.go
│   │   │       ├── required_fields_test.go
│   │   │       ├── server_connectivity_check_test.go
│   │   │       ├── slog_tstruct_wrapper_test.go
│   │   │       ├── string_parse_allocation_test.go
│   │   │       ├── struct_args_rets_test.go
│   │   │       ├── thrifttest_driver.go
│   │   │       ├── thrifttest_handler.go
│   │   │       ├── union_binary_test.go
│   │   │       ├── union_default_value_test.go
│   │   │       ├── validate_test.go
│   │   │       └── write_texception_test.go
│   │   └── thrift/
│   │       ├── application_exception.go
│   │       ├── application_exception_test.go
│   │       ├── binary_protocol.go
│   │       ├── binary_protocol_test.go
│   │       ├── buffered_transport.go
│   │       ├── buffered_transport_test.go
│   │       ├── client.go
│   │       ├── common_test.go
│   │       ├── compact_protocol.go
│   │       ├── compact_protocol_test.go
│   │       ├── configuration.go
│   │       ├── configuration_test.go
│   │       ├── context.go
│   │       ├── debug_protocol.go
│   │       ├── deserializer.go
│   │       ├── duplicate_protocol.go
│   │       ├── duplicate_protocol_test.go
│   │       ├── example_client_middleware_test.go
│   │       ├── example_processor_middleware_test.go
│   │       ├── exception.go
│   │       ├── exception_test.go
│   │       ├── framed_transport.go
│   │       ├── framed_transport_test.go
│   │       ├── header_context.go
│   │       ├── header_context_test.go
│   │       ├── header_protocol.go
│   │       ├── header_protocol_test.go
│   │       ├── header_transport.go
│   │       ├── header_transport_test.go
│   │       ├── http_client.go
│   │       ├── http_client_test.go
│   │       ├── http_transport.go
│   │       ├── iostream_transport.go
│   │       ├── iostream_transport_test.go
│   │       ├── json_protocol.go
│   │       ├── json_protocol_test.go
│   │       ├── logger.go
│   │       ├── lowlevel_benchmarks_test.go
│   │       ├── memory_buffer.go
│   │       ├── memory_buffer_test.go
│   │       ├── messagetype.go
│   │       ├── middleware.go
│   │       ├── middleware_test.go
│   │       ├── multiplexed_protocol.go
│   │       ├── multiplexed_protocol_test.go
│   │       ├── numeric.go
│   │       ├── pointerize.go
│   │       ├── pool.go
│   │       ├── pool_test.go
│   │       ├── processor_factory.go
│   │       ├── protocol.go
│   │       ├── protocol_exception.go
│   │       ├── protocol_factory.go
│   │       ├── protocol_test.go
│   │       ├── response_helper.go
│   │       ├── response_helper_test.go
│   │       ├── rich_transport.go
│   │       ├── rich_transport_test.go
│   │       ├── serializer.go
│   │       ├── serializer_test.go
│   │       ├── serializer_types_test.go
│   │       ├── server.go
│   │       ├── server_socket.go
│   │       ├── server_socket_test.go
│   │       ├── server_test.go
│   │       ├── server_transport.go
│   │       ├── simple_json_protocol.go
│   │       ├── simple_json_protocol_test.go
│   │       ├── simple_server.go
│   │       ├── simple_server_test.go
│   │       ├── slog.go
│   │       ├── slog_test.go
│   │       ├── socket.go
│   │       ├── socket_aix_syscall.go
│   │       ├── socket_conn.go
│   │       ├── socket_conn_test.go
│   │       ├── socket_non_aix_syscall.go
│   │       ├── socket_non_unix_conn.go
│   │       ├── socket_unix_conn.go
│   │       ├── socket_unix_conn_test.go
│   │       ├── ssl_server_socket.go
│   │       ├── ssl_socket.go
│   │       ├── staticcheck.conf
│   │       ├── transport.go
│   │       ├── transport_exception.go
│   │       ├── transport_exception_test.go
│   │       ├── transport_factory.go
│   │       ├── transport_test.go
│   │       ├── type.go
│   │       ├── uuid.go
│   │       ├── uuid_test.go
│   │       ├── zlib_pool.go
│   │       ├── zlib_pool_test.go
│   │       ├── zlib_transport.go
│   │       └── zlib_transport_test.go
│   ├── haxe/
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── haxelib.json
│   │   ├── src/
│   │   │   └── org/
│   │   │       └── apache/
│   │   │           └── thrift/
│   │   │               ├── AbstractMethodError.hx
│   │   │               ├── ArgumentError.hx
│   │   │               ├── Limits.hx
│   │   │               ├── TApplicationException.hx
│   │   │               ├── TBase.hx
│   │   │               ├── TConfiguration.hx
│   │   │               ├── TException.hx
│   │   │               ├── TFieldRequirementType.hx
│   │   │               ├── TProcessor.hx
│   │   │               ├── helper/
│   │   │               │   ├── BitConverter.hx
│   │   │               │   ├── Int64Map.hx
│   │   │               │   ├── IntSet.hx
│   │   │               │   ├── ObjectSet.hx
│   │   │               │   ├── StringSet.hx
│   │   │               │   ├── UuidHelper.hx
│   │   │               │   └── ZigZag.hx
│   │   │               ├── protocol/
│   │   │               │   ├── TBinaryProtocol.hx
│   │   │               │   ├── TBinaryProtocolFactory.hx
│   │   │               │   ├── TCompactProtocol.hx
│   │   │               │   ├── TCompactProtocolFactory.hx
│   │   │               │   ├── TCompactTypes.hx
│   │   │               │   ├── TField.hx
│   │   │               │   ├── TJSONProtocol.hx
│   │   │               │   ├── TJSONProtocolFactory.hx
│   │   │               │   ├── TList.hx
│   │   │               │   ├── TMap.hx
│   │   │               │   ├── TMessage.hx
│   │   │               │   ├── TMessageType.hx
│   │   │               │   ├── TMultiplexedProcessor.hx
│   │   │               │   ├── TMultiplexedProtocol.hx
│   │   │               │   ├── TProtocol.hx
│   │   │               │   ├── TProtocolDecorator.hx
│   │   │               │   ├── TProtocolException.hx
│   │   │               │   ├── TProtocolFactory.hx
│   │   │               │   ├── TProtocolImplBase.hx
│   │   │               │   ├── TProtocolUtil.hx
│   │   │               │   ├── TSet.hx
│   │   │               │   ├── TStruct.hx
│   │   │               │   └── TType.hx
│   │   │               ├── server/
│   │   │               │   ├── TServer.hx
│   │   │               │   ├── TServerEventHandler.hx
│   │   │               │   └── TSimpleServer.hx
│   │   │               └── transport/
│   │   │                   ├── TBufferedTransport.hx
│   │   │                   ├── TBufferedTransportFactory.hx
│   │   │                   ├── TEndpointTransport.hx
│   │   │                   ├── TFileStream.hx
│   │   │                   ├── TFramedTransport.hx
│   │   │                   ├── TFramedTransportFactory.hx
│   │   │                   ├── TFullDuplexHttpClient.hx
│   │   │                   ├── THttpClient.hx
│   │   │                   ├── TLayeredTransport.hx
│   │   │                   ├── TMemoryStream.hx
│   │   │                   ├── TServerSocket.hx
│   │   │                   ├── TServerTransport.hx
│   │   │                   ├── TSocket.hx
│   │   │                   ├── TStream.hx
│   │   │                   ├── TStreamTransport.hx
│   │   │                   ├── TTransport.hx
│   │   │                   ├── TTransportException.hx
│   │   │                   ├── TTransportFactory.hx
│   │   │                   └── TWrappingServerTransport.hx
│   │   └── test/
│   │       ├── HaxeTests.hxproj
│   │       ├── Makefile.am
│   │       ├── cpp.hxml
│   │       ├── csharp.hxml
│   │       ├── flash.hxml
│   │       ├── java.hxml
│   │       ├── javascript.hxml
│   │       ├── make_all.bat
│   │       ├── make_all.sh
│   │       ├── neko.hxml
│   │       ├── php.hxml
│   │       ├── project.hide
│   │       ├── python.hxml
│   │       └── src/
│   │           ├── Main.hx
│   │           └── tests/
│   │               ├── ConstantsTest.hx
│   │               ├── MultiplexTest.hx
│   │               ├── StreamTest.hx
│   │               └── TestBase.hx
│   ├── java/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   ├── settings.gradle
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── AndroidManifest.xml
│   │   ├── build.gradle
│   │   ├── code_quality_tools/
│   │   │   └── findbugs-filter.xml
│   │   ├── coding_standards.md
│   │   ├── gradle/
│   │   │   ├── cloverCoverage.gradle
│   │   │   ├── codeQualityChecks.gradle
│   │   │   ├── environment.gradle
│   │   │   ├── functionalTests.gradle
│   │   │   ├── generateTestThrift.gradle
│   │   │   ├── publishing.gradle
│   │   │   ├── sourceConfiguration.gradle
│   │   │   └── unitTests.gradle
│   │   ├── gradle.properties
│   │   ├── settings.gradle
│   │   └── src/
│   │       ├── crossTest/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── apache/
│   │       │   │           └── thrift/
│   │       │   │               └── test/
│   │       │   │                   ├── TestClient.java
│   │       │   │                   ├── TestNonblockingClient.java
│   │       │   │                   ├── TestNonblockingServer.java
│   │       │   │                   ├── TestServer.java
│   │       │   │                   └── TestTServletServer.java
│   │       │   └── resources/
│   │       │       ├── .clientkeystore
│   │       │       ├── .serverkeystore
│   │       │       └── .truststore
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── apache/
│   │       │               └── thrift/
│   │       │                   ├── AsyncProcessFunction.java
│   │       │                   ├── EncodingUtils.java
│   │       │                   ├── Option.java
│   │       │                   ├── ProcessFunction.java
│   │       │                   ├── TApplicationException.java
│   │       │                   ├── TAsyncProcessor.java
│   │       │                   ├── TBase.java
│   │       │                   ├── TBaseAsyncProcessor.java
│   │       │                   ├── TBaseHelper.java
│   │       │                   ├── TBaseProcessor.java
│   │       │                   ├── TByteArrayOutputStream.java
│   │       │                   ├── TConfiguration.java
│   │       │                   ├── TDeserializer.java
│   │       │                   ├── TEnum.java
│   │       │                   ├── TEnumHelper.java
│   │       │                   ├── TException.java
│   │       │                   ├── TFieldIdEnum.java
│   │       │                   ├── TFieldRequirementType.java
│   │       │                   ├── THttpClientResponseHandler.java
│   │       │                   ├── TMultiplexedProcessor.java
│   │       │                   ├── TNonblockingMultiFetchClient.java
│   │       │                   ├── TNonblockingMultiFetchStats.java
│   │       │                   ├── TProcessor.java
│   │       │                   ├── TProcessorFactory.java
│   │       │                   ├── TSerializable.java
│   │       │                   ├── TSerializer.java
│   │       │                   ├── TServiceClient.java
│   │       │                   ├── TServiceClientFactory.java
│   │       │                   ├── TUnion.java
│   │       │                   ├── annotation/
│   │       │                   │   └── Nullable.java
│   │       │                   ├── async/
│   │       │                   │   ├── AsyncMethodCallback.java
│   │       │                   │   ├── AsyncMethodFutureAdapter.java
│   │       │                   │   ├── TAsyncClient.java
│   │       │                   │   ├── TAsyncClientFactory.java
│   │       │                   │   ├── TAsyncClientManager.java
│   │       │                   │   └── TAsyncMethodCall.java
│   │       │                   ├── meta_data/
│   │       │                   │   ├── EnumMetaData.java
│   │       │                   │   ├── FieldMetaData.java
│   │       │                   │   ├── FieldValueMetaData.java
│   │       │                   │   ├── ListMetaData.java
│   │       │                   │   ├── MapMetaData.java
│   │       │                   │   ├── SetMetaData.java
│   │       │                   │   └── StructMetaData.java
│   │       │                   ├── partial/
│   │       │                   │   ├── EnumCache.java
│   │       │                   │   ├── PartialThriftComparer.java
│   │       │                   │   ├── README.md
│   │       │                   │   ├── TFieldData.java
│   │       │                   │   ├── ThriftField.java
│   │       │                   │   ├── ThriftFieldValueProcessor.java
│   │       │                   │   ├── ThriftMetadata.java
│   │       │                   │   ├── ThriftStructProcessor.java
│   │       │                   │   └── Validate.java
│   │       │                   ├── protocol/
│   │       │                   │   ├── ShortStack.java
│   │       │                   │   ├── TBase64Utils.java
│   │       │                   │   ├── TBinaryProtocol.java
│   │       │                   │   ├── TCompactProtocol.java
│   │       │                   │   ├── TField.java
│   │       │                   │   ├── TJSONProtocol.java
│   │       │                   │   ├── TLegacyUuidProtocolDecorator.java
│   │       │                   │   ├── TList.java
│   │       │                   │   ├── TMap.java
│   │       │                   │   ├── TMessage.java
│   │       │                   │   ├── TMessageType.java
│   │       │                   │   ├── TMultiplexedProtocol.java
│   │       │                   │   ├── TProtocol.java
│   │       │                   │   ├── TProtocolDecorator.java
│   │       │                   │   ├── TProtocolException.java
│   │       │                   │   ├── TProtocolFactory.java
│   │       │                   │   ├── TProtocolUtil.java
│   │       │                   │   ├── TReadProtocol.java
│   │       │                   │   ├── TSet.java
│   │       │                   │   ├── TSimpleJSONProtocol.java
│   │       │                   │   ├── TStruct.java
│   │       │                   │   ├── TTupleProtocol.java
│   │       │                   │   ├── TType.java
│   │       │                   │   └── TWriteProtocol.java
│   │       │                   ├── scheme/
│   │       │                   │   ├── IScheme.java
│   │       │                   │   ├── SchemeFactory.java
│   │       │                   │   ├── StandardScheme.java
│   │       │                   │   └── TupleScheme.java
│   │       │                   ├── server/
│   │       │                   │   ├── AbstractNonblockingServer.java
│   │       │                   │   ├── Invocation.java
│   │       │                   │   ├── ServerContext.java
│   │       │                   │   ├── TExtensibleServlet.java
│   │       │                   │   ├── THsHaServer.java
│   │       │                   │   ├── TNonblockingServer.java
│   │       │                   │   ├── TSaslNonblockingServer.java
│   │       │                   │   ├── TServer.java
│   │       │                   │   ├── TServerEventHandler.java
│   │       │                   │   ├── TServlet.java
│   │       │                   │   ├── TSimpleServer.java
│   │       │                   │   ├── TThreadPoolServer.java
│   │       │                   │   └── TThreadedSelectorServer.java
│   │       │                   ├── transport/
│   │       │                   │   ├── AutoExpandingBuffer.java
│   │       │                   │   ├── AutoExpandingBufferReadTransport.java
│   │       │                   │   ├── AutoExpandingBufferWriteTransport.java
│   │       │                   │   ├── SocketAddressProvider.java
│   │       │                   │   ├── TByteBuffer.java
│   │       │                   │   ├── TEOFException.java
│   │       │                   │   ├── TEndpointTransport.java
│   │       │                   │   ├── TFileProcessor.java
│   │       │                   │   ├── TFileTransport.java
│   │       │                   │   ├── THttpClient.java
│   │       │                   │   ├── TIOStreamTransport.java
│   │       │                   │   ├── TMemoryBuffer.java
│   │       │                   │   ├── TMemoryInputTransport.java
│   │       │                   │   ├── TMemoryTransport.java
│   │       │                   │   ├── TNonblockingSSLSocket.java
│   │       │                   │   ├── TNonblockingServerSocket.java
│   │       │                   │   ├── TNonblockingServerTransport.java
│   │       │                   │   ├── TNonblockingSocket.java
│   │       │                   │   ├── TNonblockingTransport.java
│   │       │                   │   ├── TSSLTransportFactory.java
│   │       │                   │   ├── TSaslClientTransport.java
│   │       │                   │   ├── TSaslServerTransport.java
│   │       │                   │   ├── TSaslTransport.java
│   │       │                   │   ├── TSeekableFile.java
│   │       │                   │   ├── TServerSocket.java
│   │       │                   │   ├── TServerTransport.java
│   │       │                   │   ├── TSimpleFileTransport.java
│   │       │                   │   ├── TSocket.java
│   │       │                   │   ├── TStandardFile.java
│   │       │                   │   ├── TTransport.java
│   │       │                   │   ├── TTransportException.java
│   │       │                   │   ├── TTransportFactory.java
│   │       │                   │   ├── TZlibTransport.java
│   │       │                   │   ├── layered/
│   │       │                   │   │   ├── TFastFramedTransport.java
│   │       │                   │   │   ├── TFramedTransport.java
│   │       │                   │   │   └── TLayeredTransport.java
│   │       │                   │   └── sasl/
│   │       │                   │       ├── DataFrameHeaderReader.java
│   │       │                   │       ├── DataFrameReader.java
│   │       │                   │       ├── DataFrameWriter.java
│   │       │                   │       ├── FixedSizeHeaderReader.java
│   │       │                   │       ├── FrameHeaderReader.java
│   │       │                   │       ├── FrameReader.java
│   │       │                   │       ├── FrameWriter.java
│   │       │                   │       ├── NegotiationStatus.java
│   │       │                   │       ├── NonblockingSaslHandler.java
│   │       │                   │       ├── SaslNegotiationFrameReader.java
│   │       │                   │       ├── SaslNegotiationFrameWriter.java
│   │       │                   │       ├── SaslNegotiationHeaderReader.java
│   │       │                   │       ├── SaslPeer.java
│   │       │                   │       ├── ServerSaslPeer.java
│   │       │                   │       ├── TBaseSaslProcessorFactory.java
│   │       │                   │       ├── TInvalidSaslFrameException.java
│   │       │                   │       ├── TSaslNegotiationException.java
│   │       │                   │       ├── TSaslProcessorFactory.java
│   │       │                   │       ├── TSaslServerDefinition.java
│   │       │                   │       └── TSaslServerFactory.java
│   │       │                   └── utils/
│   │       │                       └── StringUtils.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── apache/
│   │           │           └── thrift/
│   │           │               ├── Fixtures.java
│   │           │               ├── TestAnnotationMetadata.java
│   │           │               ├── TestDeepCopy.java
│   │           │               ├── TestDefinitionOrder.java
│   │           │               ├── TestEnumContainers.java
│   │           │               ├── TestFullCamel.java
│   │           │               ├── TestMultiplexedProcessor.java
│   │           │               ├── TestOptionType.java
│   │           │               ├── TestOptionals.java
│   │           │               ├── TestOptionalsWithJdk8.java
│   │           │               ├── TestRenderedDoubleConstants.java
│   │           │               ├── TestReuse.java
│   │           │               ├── TestStruct.java
│   │           │               ├── TestTBaseHelper.java
│   │           │               ├── TestTDeserializer.java
│   │           │               ├── TestTEnumHelper.java
│   │           │               ├── TestTUnion.java
│   │           │               ├── TestUnsafeBinaries.java
│   │           │               ├── async/
│   │           │               │   ├── TestTAsyncClient.java
│   │           │               │   ├── TestTAsyncClientManager.java
│   │           │               │   ├── TestTAsyncSSLClientManager.java
│   │           │               │   └── TestTAsyncSSLClientManagerCustomClient.java
│   │           │               ├── partial/
│   │           │               │   ├── EnumCacheTest.java
│   │           │               │   ├── PartialThriftComparerTest.java
│   │           │               │   ├── PartialThriftTestData.java
│   │           │               │   ├── TFieldDataTest.java
│   │           │               │   ├── TestData.java
│   │           │               │   ├── TestPartialThriftDeserializer.java
│   │           │               │   ├── ThriftFieldTest.java
│   │           │               │   ├── ThriftMetadataTest.java
│   │           │               │   ├── ThriftSerDe.java
│   │           │               │   ├── ThriftStructProcessorTest.java
│   │           │               │   └── ValidateTest.java
│   │           │               ├── protocol/
│   │           │               │   ├── BenchmarkProtocols.java
│   │           │               │   ├── ProtocolTestBase.java
│   │           │               │   ├── TestShortStack.java
│   │           │               │   ├── TestTBinaryProtocol.java
│   │           │               │   ├── TestTCompactProtocol.java
│   │           │               │   ├── TestTField.java
│   │           │               │   ├── TestTJSONProtocol.java
│   │           │               │   ├── TestTLegacyUuidProtocolDecorator.java
│   │           │               │   ├── TestTProtocolUtil.java
│   │           │               │   ├── TestTSimpleJSONProtocol.java
│   │           │               │   └── TestTTupleProtocol.java
│   │           │               ├── scheme/
│   │           │               │   └── TestStandardScheme.java
│   │           │               ├── server/
│   │           │               │   ├── ServerTestBase.java
│   │           │               │   ├── TestAsyncServer.java
│   │           │               │   ├── TestHsHaServer.java
│   │           │               │   ├── TestNonblockingServer.java
│   │           │               │   ├── TestSaslNonblockingServer.java
│   │           │               │   ├── TestThreadPoolServer.java
│   │           │               │   └── TestThreadedSelectorServer.java
│   │           │               ├── test/
│   │           │               │   ├── EqualityTest.java
│   │           │               │   ├── JavaBeansTest.java
│   │           │               │   ├── ReadStruct.java
│   │           │               │   ├── SerializationBenchmark.java
│   │           │               │   ├── TestServlet.java
│   │           │               │   ├── WriteStruct.java
│   │           │               │   ├── fuzz/
│   │           │               │   │   ├── FuzzTestUtils.java
│   │           │               │   │   ├── ParseBinaryFuzzer.java
│   │           │               │   │   ├── ParseCompactFuzzer.java
│   │           │               │   │   ├── ParseJSONFuzzer.java
│   │           │               │   │   ├── README.md
│   │           │               │   │   ├── RoundtripBinaryFuzzer.java
│   │           │               │   │   ├── RoundtripCompactFuzzer.java
│   │           │               │   │   ├── RoundtripJSONFuzzer.java
│   │           │               │   │   └── TestRecursionLimit.java
│   │           │               │   └── voidmethexceptions/
│   │           │               │       ├── ServiceAsyncImp.java
│   │           │               │       ├── ServiceBase.java
│   │           │               │       ├── ServiceSyncImp.java
│   │           │               │       └── TestVoidMethExceptions.java
│   │           │               ├── transport/
│   │           │               │   ├── ReadCountingTransport.java
│   │           │               │   ├── TestAutoExpandingBuffer.java
│   │           │               │   ├── TestAutoExpandingBufferReadTransport.java
│   │           │               │   ├── TestAutoExpandingBufferWriteTransport.java
│   │           │               │   ├── TestNonblockingServerSocket.java
│   │           │               │   ├── TestTByteBuffer.java
│   │           │               │   ├── TestTFastFramedTransport.java
│   │           │               │   ├── TestTFramedTransport.java
│   │           │               │   ├── TestTIOStreamTransport.java
│   │           │               │   ├── TestTMemoryInputTransport.java
│   │           │               │   ├── TestTMemoryTransport.java
│   │           │               │   ├── TestTSSLTransportFactory.java
│   │           │               │   ├── TestTSSLTransportFactoryCustomClient1.java
│   │           │               │   ├── TestTSSLTransportFactoryCustomClient2.java
│   │           │               │   ├── TestTSSLTransportFactoryStreamedStore.java
│   │           │               │   ├── TestTSaslTransports.java
│   │           │               │   ├── TestTSimpleFileTransport.java
│   │           │               │   ├── TestTZlibTransport.java
│   │           │               │   ├── WriteCountingTransport.java
│   │           │               │   └── sasl/
│   │           │               │       ├── TestDataFrameReader.java
│   │           │               │       ├── TestDataFrameWriter.java
│   │           │               │       ├── TestSaslNegotiationFrameReader.java
│   │           │               │       └── TestSaslNegotiationFrameWriter.java
│   │           │               └── utils/
│   │           │                   └── TestStringUtils.java
│   │           └── resources/
│   │               ├── JavaAnnotationTest.thrift
│   │               ├── JavaBeansTest.thrift
│   │               ├── JavaBinaryDefault.thrift
│   │               ├── JavaDeepCopyTest.thrift
│   │               ├── JavaDefinitionOrderA.thrift
│   │               ├── JavaDefinitionOrderB.thrift
│   │               ├── JavaOptionTypeJdk8Test.thrift
│   │               ├── JavaTypes.thrift
│   │               └── log4j.properties
│   ├── javame/
│   │   ├── coding_standards.md
│   │   └── src/
│   │       └── org/
│   │           └── apache/
│   │               └── thrift/
│   │                   ├── TApplicationException.java
│   │                   ├── TBase.java
│   │                   ├── TBaseHelper.java
│   │                   ├── TByteArrayOutputStream.java
│   │                   ├── TDeserializer.java
│   │                   ├── TEnum.java
│   │                   ├── TException.java
│   │                   ├── TFieldRequirementType.java
│   │                   ├── TProcessor.java
│   │                   ├── TProcessorFactory.java
│   │                   ├── TSerializer.java
│   │                   ├── TServiceClient.java
│   │                   ├── meta_data/
│   │                   │   ├── FieldMetaData.java
│   │                   │   ├── FieldValueMetaData.java
│   │                   │   ├── ListMetaData.java
│   │                   │   ├── MapMetaData.java
│   │                   │   ├── SetMetaData.java
│   │                   │   └── StructMetaData.java
│   │                   ├── protocol/
│   │                   │   ├── TBase64Utils.java
│   │                   │   ├── TBinaryProtocol.java
│   │                   │   ├── TField.java
│   │                   │   ├── TJSONProtocol.java
│   │                   │   ├── TList.java
│   │                   │   ├── TMap.java
│   │                   │   ├── TMessage.java
│   │                   │   ├── TMessageType.java
│   │                   │   ├── TProtocol.java
│   │                   │   ├── TProtocolException.java
│   │                   │   ├── TProtocolFactory.java
│   │                   │   ├── TProtocolUtil.java
│   │                   │   ├── TSet.java
│   │                   │   ├── TStruct.java
│   │                   │   └── TType.java
│   │                   └── transport/
│   │                       ├── TFramedTransport.java
│   │                       ├── THttpClient.java
│   │                       ├── TIOStreamTransport.java
│   │                       ├── TMemoryBuffer.java
│   │                       ├── TTransport.java
│   │                       ├── TTransportException.java
│   │                       └── TTransportFactory.java
│   ├── js/
│   │   ├── CMakeLists.txt
│   │   ├── Gruntfile.js
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── thrift.js
│   │   └── test/
│   │       ├── Makefile.am
│   │       ├── README.md
│   │       ├── build.properties
│   │       ├── build.xml
│   │       ├── deep-constructor.test.js
│   │       ├── jsTestDriver.conf
│   │       ├── phantom-client.js
│   │       ├── phantomjs-qunit.js
│   │       ├── server_http.js
│   │       ├── server_https.js
│   │       ├── src/
│   │       │   └── test/
│   │       │       └── Httpd.java
│   │       ├── test-async.js
│   │       ├── test-deep-constructor.html
│   │       ├── test-double-rendering.html
│   │       ├── test-double-rendering.js
│   │       ├── test-es6.html
│   │       ├── test-es6.js
│   │       ├── test-int64.html
│   │       ├── test-int64.js
│   │       ├── test-jq.js
│   │       ├── test-nojq.html
│   │       ├── test-nojq.js
│   │       ├── test.html
│   │       ├── test.js
│   │       ├── test_handler.js
│   │       └── testws.html
│   ├── json/
│   │   ├── Makefile.am
│   │   ├── schema.json
│   │   └── test/
│   │       ├── Makefile.am
│   │       ├── build.properties
│   │       └── build.xml
│   ├── kotlin/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── build.gradle.kts
│   │   ├── cross-test-client/
│   │   │   ├── build.gradle.kts
│   │   │   └── src/
│   │   │       └── main/
│   │   │           ├── kotlin/
│   │   │           │   └── org/
│   │   │           │       └── apache/
│   │   │           │           └── thrift/
│   │   │           │               └── test/
│   │   │           │                   └── TestClient.kt
│   │   │           └── resources/
│   │   │               └── logback.xml
│   │   ├── cross-test-server/
│   │   │   ├── build.gradle.kts
│   │   │   └── src/
│   │   │       └── main/
│   │   │           ├── kotlin/
│   │   │           │   └── org/
│   │   │           │       └── apache/
│   │   │           │           └── thrift/
│   │   │           │               └── test/
│   │   │           │                   ├── TestHandler.kt
│   │   │           │                   └── TestServer.kt
│   │   │           └── resources/
│   │   │               └── logback.xml
│   │   ├── gradle.properties
│   │   ├── settings.gradle.kts
│   │   └── src/
│   │       └── test/
│   │           ├── kotlin/
│   │           │   └── org/
│   │           │       └── apache/
│   │           │           └── thrift/
│   │           │               └── MetaDataTest.kt
│   │           └── resources/
│   │               └── AnnotationTest.thrift
│   ├── lua/
│   │   ├── Makefile.am
│   │   ├── TBinaryProtocol.lua
│   │   ├── TBufferedTransport.lua
│   │   ├── TCompactProtocol.lua
│   │   ├── TFramedTransport.lua
│   │   ├── THttpTransport.lua
│   │   ├── TJsonProtocol.lua
│   │   ├── TMemoryBuffer.lua
│   │   ├── TProtocol.lua
│   │   ├── TServer.lua
│   │   ├── TSocket.lua
│   │   ├── TTransport.lua
│   │   ├── Thrift.lua
│   │   ├── coding_standards.md
│   │   └── src/
│   │       ├── longnumberutils.c
│   │       ├── luabitwise.c
│   │       ├── luabpack.c
│   │       ├── lualongnumber.c
│   │       ├── luasocket.c
│   │       ├── socket.h
│   │       └── usocket.c
│   ├── netstd/
│   │   ├── Benchmarks/
│   │   │   └── Thrift.Benchmarks/
│   │   │       ├── CompactProtocolBenchmarks.cs
│   │   │       ├── Program.cs
│   │   │       └── Thrift.Benchmarks.csproj
│   │   ├── Directory.Build.props
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── Tests/
│   │   │   ├── Thrift.Compile.Tests/
│   │   │   │   ├── CassandraTest.thrift
│   │   │   │   ├── GlobalSuppressions.cs
│   │   │   │   ├── Thrift.Compile.net10/
│   │   │   │   │   ├── Impl/
│   │   │   │   │   │   └── Thrift5253/
│   │   │   │   │   │       └── MyService.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── Thrift.Compile.net10.csproj
│   │   │   │   ├── Thrift.Compile.net8/
│   │   │   │   │   ├── Impl/
│   │   │   │   │   │   └── Thrift5253/
│   │   │   │   │   │       └── MyService.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── Thrift.Compile.net8.csproj
│   │   │   │   ├── Thrift.Compile.net9/
│   │   │   │   │   ├── Impl/
│   │   │   │   │   │   └── Thrift5253/
│   │   │   │   │   │       └── MyService.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── Thrift.Compile.net9.csproj
│   │   │   │   ├── Thrift.Compile.netstd2/
│   │   │   │   │   ├── Impl/
│   │   │   │   │   │   └── Thrift5253/
│   │   │   │   │   │       └── MyService.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── Thrift.Compile.netstd2.csproj
│   │   │   │   ├── Thrift5253.thrift
│   │   │   │   ├── Thrift5320.enum.thrift
│   │   │   │   ├── Thrift5320.exception.thrift
│   │   │   │   ├── Thrift5320.struct.thrift
│   │   │   │   ├── Thrift5320.thrift
│   │   │   │   ├── Thrift5382.objs.thrift
│   │   │   │   ├── Thrift5382.thrift
│   │   │   │   ├── Thrift5794.thrift
│   │   │   │   ├── Thrift5795.thrift
│   │   │   │   ├── name_conflicts.enum.thrift
│   │   │   │   ├── name_conflicts.thrift
│   │   │   │   └── optional_required_default.thrift
│   │   │   ├── Thrift.IntegrationTests/
│   │   │   │   ├── Protocols/
│   │   │   │   │   ├── ProtocolConformityTests.cs
│   │   │   │   │   ├── ProtocolsOperationsTests.cs
│   │   │   │   │   └── TestBase.cs
│   │   │   │   └── Thrift.IntegrationTests.csproj
│   │   │   └── Thrift.Tests/
│   │   │       ├── Collections/
│   │   │       │   ├── TCollectionsTests.cs
│   │   │       │   └── THashSetTests.cs
│   │   │       ├── DataModel/
│   │   │       │   ├── DeepCopy.cs
│   │   │       │   ├── ExceptionAsStruct.cs
│   │   │       │   └── NullValuesSet.cs
│   │   │       ├── Protocols/
│   │   │       │   ├── TJsonProtocolHelperTests.cs
│   │   │       │   └── TJsonProtocolTests.cs
│   │   │       ├── Thrift.Tests.csproj
│   │   │       └── Transports/
│   │   │           └── THttpTransportTests.cs
│   │   ├── Thrift/
│   │   │   ├── .editorconfig
│   │   │   ├── Collections/
│   │   │   │   ├── TCollections.cs
│   │   │   │   └── THashSet.cs
│   │   │   ├── GlobalSuppressions.cs
│   │   │   ├── Processor/
│   │   │   │   ├── ITAsyncProcessor.cs
│   │   │   │   ├── ITProcessorFactory.cs
│   │   │   │   ├── TMultiplexedProcessor.cs
│   │   │   │   └── TSingletonProcessorFactory.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Protocol/
│   │   │   │   ├── Entities/
│   │   │   │   │   ├── TField.cs
│   │   │   │   │   ├── TList.cs
│   │   │   │   │   ├── TMap.cs
│   │   │   │   │   ├── TMessage.cs
│   │   │   │   │   ├── TMessageType.cs
│   │   │   │   │   ├── TSet.cs
│   │   │   │   │   ├── TStruct.cs
│   │   │   │   │   └── TType.cs
│   │   │   │   ├── TBase.cs
│   │   │   │   ├── TBinaryProtocol.cs
│   │   │   │   ├── TCompactProtocol.cs
│   │   │   │   ├── TJSONProtocol.cs
│   │   │   │   ├── TMultiplexedProtocol.cs
│   │   │   │   ├── TProtocol.cs
│   │   │   │   ├── TProtocolDecorator.cs
│   │   │   │   ├── TProtocolException.cs
│   │   │   │   ├── TProtocolFactory.cs
│   │   │   │   ├── ToString.cs
│   │   │   │   └── Utilities/
│   │   │   │       ├── TBase64Utils.cs
│   │   │   │       ├── TGuidExtensions.cs
│   │   │   │       ├── TJsonProtocolConstants.cs
│   │   │   │       ├── TJsonProtocolHelper.cs
│   │   │   │       └── TProtocolUtil.cs
│   │   │   ├── Server/
│   │   │   │   ├── TServer.cs
│   │   │   │   ├── TServerEventHandler.cs
│   │   │   │   ├── TSimpleAsyncServer.cs
│   │   │   │   └── TThreadPoolAsyncServer.cs
│   │   │   ├── TApplicationException.cs
│   │   │   ├── TBaseClient.cs
│   │   │   ├── TConfiguration.cs
│   │   │   ├── TException.cs
│   │   │   ├── Thrift.csproj
│   │   │   ├── Transport/
│   │   │   │   ├── Client/
│   │   │   │   │   ├── THttpTransport.cs
│   │   │   │   │   ├── TMemoryBufferTransport.cs
│   │   │   │   │   ├── TNamedPipeTransport.cs
│   │   │   │   │   ├── TSocketTransport.cs
│   │   │   │   │   ├── TStreamTransport.cs
│   │   │   │   │   └── TTlsSocketTransport.cs
│   │   │   │   ├── Layered/
│   │   │   │   │   ├── TBufferedTransport.cs
│   │   │   │   │   ├── TFramedTransport.cs
│   │   │   │   │   └── TLayeredTransport.cs
│   │   │   │   ├── Server/
│   │   │   │   │   ├── NullLogger.cs
│   │   │   │   │   ├── THttpServerTransport.cs
│   │   │   │   │   ├── TNamedPipeServerTransport.cs
│   │   │   │   │   ├── TServerSocketTransport.cs
│   │   │   │   │   ├── TServerTransport.cs
│   │   │   │   │   └── TTlsServerSocketTransport.cs
│   │   │   │   ├── TEndpointTransport.cs
│   │   │   │   ├── TTransport.cs
│   │   │   │   ├── TTransportException.cs
│   │   │   │   └── TTransportFactory.cs
│   │   │   └── thrift.snk
│   │   ├── Thrift.sln
│   │   ├── build.cmd
│   │   ├── build.sh
│   │   ├── runtests.cmd
│   │   └── runtests.sh
│   ├── nodejs/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── examples/
│   │   │   ├── README.md
│   │   │   ├── client.js
│   │   │   ├── client_multitransport.js
│   │   │   ├── hello.html
│   │   │   ├── hello.js
│   │   │   ├── hello.thrift
│   │   │   ├── httpClient.js
│   │   │   ├── httpServer.js
│   │   │   ├── httpServer.py
│   │   │   ├── parse.js
│   │   │   ├── server.js
│   │   │   ├── server_http.js
│   │   │   ├── server_multitransport.js
│   │   │   └── user.thrift
│   │   ├── lib/
│   │   │   └── thrift/
│   │   │       ├── binary.js
│   │   │       ├── binary_protocol.js
│   │   │       ├── browser.js
│   │   │       ├── buffered_transport.js
│   │   │       ├── compact_protocol.js
│   │   │       ├── connection.js
│   │   │       ├── create_client.js
│   │   │       ├── framed_transport.js
│   │   │       ├── header_protocol.js
│   │   │       ├── header_transport.js
│   │   │       ├── http_connection.js
│   │   │       ├── index.js
│   │   │       ├── input_buffer_underrun_error.js
│   │   │       ├── int64_util.js
│   │   │       ├── json_parse.js
│   │   │       ├── json_protocol.js
│   │   │       ├── log.js
│   │   │       ├── multiplexed_processor.js
│   │   │       ├── multiplexed_protocol.js
│   │   │       ├── ohos_connection.js
│   │   │       ├── protocol.js
│   │   │       ├── server.js
│   │   │       ├── thrift.js
│   │   │       ├── transport.js
│   │   │       ├── web_server.js
│   │   │       ├── ws_connection.js
│   │   │       ├── ws_transport.js
│   │   │       └── xhr_connection.js
│   │   └── test/
│   │       ├── binary.test.js
│   │       ├── client.mjs
│   │       ├── deep-constructor.test.js
│   │       ├── episodic-code-generation-test/
│   │       │   ├── client.js
│   │       │   ├── episodic_compilation.package.json
│   │       │   └── server.js
│   │       ├── exceptions.js
│   │       ├── fuzz/
│   │       │   ├── README.md
│   │       │   ├── fuzz_common.js
│   │       │   ├── fuzz_parse_TBinaryProtocol.js
│   │       │   ├── fuzz_parse_TCompactProtocol.js
│   │       │   ├── fuzz_parse_TJSONProtocol.js
│   │       │   ├── fuzz_roundtrip_TBinaryProtocol.js
│   │       │   ├── fuzz_roundtrip_TCompactProtocol.js
│   │       │   └── fuzz_roundtrip_TJSONProtocol.js
│   │       ├── header.test.js
│   │       ├── helpers.js
│   │       ├── include.test.mjs
│   │       ├── int64.test.js
│   │       ├── package.json
│   │       ├── server.mjs
│   │       ├── test-cases.mjs
│   │       ├── testAll.sh
│   │       ├── test_driver.mjs
│   │       ├── test_handler.mjs
│   │       └── test_header_payload
│   ├── nodets/
│   │   ├── Makefile.am
│   │   ├── coding_standards.md
│   │   └── test/
│   │       ├── client.ts
│   │       ├── int64.test.ts
│   │       ├── runClient.sh
│   │       ├── runServer.sh
│   │       ├── server.ts
│   │       ├── test-cases.ts
│   │       ├── testAll.sh
│   │       ├── test_driver.ts
│   │       ├── test_handler.ts
│   │       └── tsconfig.json
│   ├── ocaml/
│   │   ├── DEVELOPMENT
│   │   ├── README.md
│   │   ├── TODO
│   │   ├── _oasis
│   │   ├── coding_standards.md
│   │   ├── descr
│   │   ├── opam
│   │   ├── src/
│   │   │   ├── TBinaryProtocol.ml
│   │   │   ├── TChannelTransport.ml
│   │   │   ├── TFramedTransport.ml
│   │   │   ├── TServer.ml
│   │   │   ├── TServerSocket.ml
│   │   │   ├── TSimpleServer.ml
│   │   │   ├── TSocket.ml
│   │   │   ├── TThreadedServer.ml
│   │   │   └── Thrift.ml
│   │   └── url
│   ├── perl/
│   │   ├── MANIFEST.SKIP
│   │   ├── Makefile.PL
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── build-cpan-dist.sh
│   │   ├── coding_standards.md
│   │   ├── lib/
│   │   │   ├── Thrift/
│   │   │   │   ├── BinaryProtocol.pm
│   │   │   │   ├── BufferedTransport.pm
│   │   │   │   ├── Exception.pm
│   │   │   │   ├── FramedTransport.pm
│   │   │   │   ├── HttpClient.pm
│   │   │   │   ├── MemoryBuffer.pm
│   │   │   │   ├── MessageType.pm
│   │   │   │   ├── MultiplexedProcessor.pm
│   │   │   │   ├── MultiplexedProtocol.pm
│   │   │   │   ├── Protocol.pm
│   │   │   │   ├── ProtocolDecorator.pm
│   │   │   │   ├── SSLServerSocket.pm
│   │   │   │   ├── SSLSocket.pm
│   │   │   │   ├── Server.pm
│   │   │   │   ├── ServerSocket.pm
│   │   │   │   ├── Socket.pm
│   │   │   │   ├── Transport.pm
│   │   │   │   ├── Type.pm
│   │   │   │   ├── UnixServerSocket.pm
│   │   │   │   └── UnixSocket.pm
│   │   │   └── Thrift.pm
│   │   ├── t/
│   │   │   ├── Makefile.am
│   │   │   ├── memory_buffer.t
│   │   │   ├── multiplex.t
│   │   │   └── processor.t
│   │   ├── test.pl
│   │   └── tools/
│   │       └── FixupDist.pl
│   ├── php/
│   │   ├── Makefile.am
│   │   ├── README.apache.md
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── lib/
│   │   │   ├── Base/
│   │   │   │   └── TBase.php
│   │   │   ├── ClassLoader/
│   │   │   │   └── ThriftClassLoader.php
│   │   │   ├── Exception/
│   │   │   │   ├── TApplicationException.php
│   │   │   │   ├── TException.php
│   │   │   │   ├── TProtocolException.php
│   │   │   │   └── TTransportException.php
│   │   │   ├── Factory/
│   │   │   │   ├── TBinaryProtocolFactory.php
│   │   │   │   ├── TCompactProtocolFactory.php
│   │   │   │   ├── TFramedTransportFactory.php
│   │   │   │   ├── TJSONProtocolFactory.php
│   │   │   │   ├── TProtocolFactory.php
│   │   │   │   ├── TStringFuncFactory.php
│   │   │   │   ├── TTransportFactory.php
│   │   │   │   └── TTransportFactoryInterface.php
│   │   │   ├── Protocol/
│   │   │   │   ├── JSON/
│   │   │   │   │   ├── BaseContext.php
│   │   │   │   │   ├── ListContext.php
│   │   │   │   │   ├── LookaheadReader.php
│   │   │   │   │   └── PairContext.php
│   │   │   │   ├── SimpleJSON/
│   │   │   │   │   ├── CollectionMapKeyException.php
│   │   │   │   │   ├── Context.php
│   │   │   │   │   ├── ListContext.php
│   │   │   │   │   ├── MapContext.php
│   │   │   │   │   └── StructContext.php
│   │   │   │   ├── TBinaryProtocol.php
│   │   │   │   ├── TBinaryProtocolAccelerated.php
│   │   │   │   ├── TCompactProtocol.php
│   │   │   │   ├── TJSONProtocol.php
│   │   │   │   ├── TMultiplexedProtocol.php
│   │   │   │   ├── TProtocol.php
│   │   │   │   ├── TProtocolDecorator.php
│   │   │   │   └── TSimpleJSONProtocol.php
│   │   │   ├── Serializer/
│   │   │   │   └── TBinarySerializer.php
│   │   │   ├── Server/
│   │   │   │   ├── TForkingServer.php
│   │   │   │   ├── TSSLServerSocket.php
│   │   │   │   ├── TServer.php
│   │   │   │   ├── TServerSocket.php
│   │   │   │   ├── TServerTransport.php
│   │   │   │   └── TSimpleServer.php
│   │   │   ├── StoredMessageProtocol.php
│   │   │   ├── StringFunc/
│   │   │   │   ├── Core.php
│   │   │   │   ├── Mbstring.php
│   │   │   │   └── TStringFunc.php
│   │   │   ├── TMultiplexedProcessor.php
│   │   │   ├── Transport/
│   │   │   │   ├── TBufferedTransport.php
│   │   │   │   ├── TCurlClient.php
│   │   │   │   ├── TFramedTransport.php
│   │   │   │   ├── THttpClient.php
│   │   │   │   ├── TMemoryBuffer.php
│   │   │   │   ├── TNullTransport.php
│   │   │   │   ├── TPhpStream.php
│   │   │   │   ├── TSSLSocket.php
│   │   │   │   ├── TSocket.php
│   │   │   │   ├── TSocketPool.php
│   │   │   │   └── TTransport.php
│   │   │   └── Type/
│   │   │       ├── TConstant.php
│   │   │       ├── TMessageType.php
│   │   │       └── TType.php
│   │   ├── phpunit.xml
│   │   ├── src/
│   │   │   ├── TStringUtils.php
│   │   │   ├── Thrift.php
│   │   │   ├── autoload.php
│   │   │   └── ext/
│   │   │       └── thrift_protocol/
│   │   │           ├── php_thrift_protocol.cpp
│   │   │           ├── php_thrift_protocol.h
│   │   │           ├── php_thrift_protocol.stub.php
│   │   │           └── php_thrift_protocol_arginfo.h
│   │   ├── test/
│   │   │   ├── Integration/
│   │   │   │   ├── BaseValidatorTest.php
│   │   │   │   ├── Lib/
│   │   │   │   │   ├── ClassLoader/
│   │   │   │   │   │   └── ThriftClassLoaderTest.php
│   │   │   │   │   ├── Protocol/
│   │   │   │   │   │   ├── TJSONProtocolTest.php
│   │   │   │   │   │   └── TSimpleJSONProtocolTest.php
│   │   │   │   │   └── Serializer/
│   │   │   │   │       ├── BinarySerializerTest.php
│   │   │   │   │       └── JsonSerializeTest.php
│   │   │   │   ├── ValidatorOopTest.php
│   │   │   │   └── ValidatorTest.php
│   │   │   ├── Makefile.am
│   │   │   ├── Resources/
│   │   │   │   └── ThriftTest.thrift
│   │   │   ├── Unit/
│   │   │   │   └── Lib/
│   │   │   │       ├── ClassLoader/
│   │   │   │       │   ├── Fixtures/
│   │   │   │       │   │   ├── A/
│   │   │   │       │   │   │   └── TestClass.php
│   │   │   │       │   │   ├── B/
│   │   │   │       │   │   │   └── TestClass.php
│   │   │   │       │   │   ├── C/
│   │   │   │       │   │   │   └── TestClass.php
│   │   │   │       │   │   ├── D/
│   │   │   │       │   │   │   └── TestClass.php
│   │   │   │       │   │   └── E/
│   │   │   │       │   │       └── TestClass.php
│   │   │   │       │   └── ThriftClassLoaderTest.php
│   │   │   │       ├── Exception/
│   │   │   │       │   └── TExceptionTest.php
│   │   │   │       ├── Factory/
│   │   │   │       │   ├── TBinaryProtocolFactoryTest.php
│   │   │   │       │   ├── TCompactProtocolFactoryTest.php
│   │   │   │       │   ├── TFramedTransportFactoryTest.php
│   │   │   │       │   ├── TJSONProtocolFactoryTest.php
│   │   │   │       │   ├── TStringFuncFactoryTest.php
│   │   │   │       │   └── TTransportFactoryTest.php
│   │   │   │       ├── Protocol/
│   │   │   │       │   ├── TBinaryProtocolAcceleratedTest.php
│   │   │   │       │   ├── TBinaryProtocolTest.php
│   │   │   │       │   ├── TCompactProtocolTest.php
│   │   │   │       │   ├── TMultiplexedProtocolTest.php
│   │   │   │       │   ├── TProtocolDecoratorTest.php
│   │   │   │       │   └── TSimpleJSONProtocolTest.php
│   │   │   │       ├── Serializer/
│   │   │   │       │   └── TBinarySerializerTest.php
│   │   │   │       ├── Server/
│   │   │   │       │   ├── Fixture/
│   │   │   │       │   │   └── TestProcessor.php
│   │   │   │       │   ├── TForkingServerTest.php
│   │   │   │       │   ├── TSSLServerSocketTest.php
│   │   │   │       │   ├── TServerSocketTest.php
│   │   │   │       │   └── TSimpleServerTest.php
│   │   │   │       ├── StringFunc/
│   │   │   │       │   ├── CoreTest.php
│   │   │   │       │   └── MbStringTest.php
│   │   │   │       └── Transport/
│   │   │   │           ├── TBufferedTransportTest.php
│   │   │   │           ├── TCurlClientTest.php
│   │   │   │           ├── TFramedTransportTest.php
│   │   │   │           ├── THttpClientTest.php
│   │   │   │           ├── TMemoryBufferTest.php
│   │   │   │           ├── TNullTransportTest.php
│   │   │   │           ├── TPhpStreamTest.php
│   │   │   │           ├── TSSLSocketTest.php
│   │   │   │           ├── TSocketPoolTest.php
│   │   │   │           └── TSocketTest.php
│   │   │   └── bootstrap.php
│   │   └── thrift_protocol.ini
│   ├── py/
│   │   ├── CMakeLists.txt
│   │   ├── MANIFEST.in
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── compat/
│   │   │   └── win32/
│   │   │       └── stdint.h
│   │   ├── pyproject.toml
│   │   ├── setup.cfg
│   │   ├── setup.py
│   │   ├── src/
│   │   │   ├── TMultiplexedProcessor.py
│   │   │   ├── TRecursive.py
│   │   │   ├── TSCons.py
│   │   │   ├── TSerialization.py
│   │   │   ├── TTornado.py
│   │   │   ├── Thrift.py
│   │   │   ├── __init__.py
│   │   │   ├── ext/
│   │   │   │   ├── binary.cpp
│   │   │   │   ├── binary.h
│   │   │   │   ├── compact.cpp
│   │   │   │   ├── compact.h
│   │   │   │   ├── endian.h
│   │   │   │   ├── module.cpp
│   │   │   │   ├── protocol.h
│   │   │   │   ├── protocol.tcc
│   │   │   │   ├── types.cpp
│   │   │   │   └── types.h
│   │   │   ├── protocol/
│   │   │   │   ├── TBase.py
│   │   │   │   ├── TBinaryProtocol.py
│   │   │   │   ├── TCompactProtocol.py
│   │   │   │   ├── THeaderProtocol.py
│   │   │   │   ├── TJSONProtocol.py
│   │   │   │   ├── TMultiplexedProtocol.py
│   │   │   │   ├── TProtocol.py
│   │   │   │   ├── TProtocolDecorator.py
│   │   │   │   └── __init__.py
│   │   │   ├── server/
│   │   │   │   ├── THttpServer.py
│   │   │   │   ├── TNonblockingServer.py
│   │   │   │   ├── TProcessPoolServer.py
│   │   │   │   ├── TServer.py
│   │   │   │   └── __init__.py
│   │   │   └── transport/
│   │   │       ├── THeaderTransport.py
│   │   │       ├── THttpClient.py
│   │   │       ├── TSSLSocket.py
│   │   │       ├── TSocket.py
│   │   │       ├── TTransport.py
│   │   │       ├── TTwisted.py
│   │   │       ├── TZlibTransport.py
│   │   │       ├── __init__.py
│   │   │       └── sslcompat.py
│   │   └── test/
│   │       ├── _import_local_thrift.py
│   │       ├── fuzz/
│   │       │   ├── README.md
│   │       │   ├── fuzz_common.py
│   │       │   ├── fuzz_parse_TBinaryProtocol.py
│   │       │   ├── fuzz_parse_TBinaryProtocolAccelerated.py
│   │       │   ├── fuzz_parse_TCompactProtocol.py
│   │       │   ├── fuzz_parse_TCompactProtocolAccelerated.py
│   │       │   ├── fuzz_roundtrip_TBinaryProtocol.py
│   │       │   ├── fuzz_roundtrip_TBinaryProtocolAccelerated.py
│   │       │   ├── fuzz_roundtrip_TCompactProtocol.py
│   │       │   └── fuzz_roundtrip_TCompactProtocolAccelerated.py
│   │       ├── test_compiler/
│   │       │   ├── Thrift5927.thrift
│   │       │   └── test_keyword_escape.py
│   │       ├── test_socket.py
│   │       ├── test_sslsocket.py
│   │       ├── test_thrift_file/
│   │       │   └── TestServer.thrift
│   │       ├── thrift_TBinaryProtocol.py
│   │       ├── thrift_TCompactProtocol.py
│   │       ├── thrift_TNonblockingServer.py
│   │       ├── thrift_TSerializer.py
│   │       ├── thrift_TZlibTransport.py
│   │       ├── thrift_json.py
│   │       └── thrift_transport.py
│   ├── rb/
│   │   ├── .rubocop.yml
│   │   ├── Gemfile
│   │   ├── Gemfile.linters
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── Rakefile
│   │   ├── benchmark/
│   │   │   ├── Benchmark.thrift
│   │   │   ├── benchmark.rb
│   │   │   ├── client.rb
│   │   │   ├── server.rb
│   │   │   └── thin_server.rb
│   │   ├── coding_standards.md
│   │   ├── 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
│   │   ├── lib/
│   │   │   ├── thrift/
│   │   │   │   ├── bytes.rb
│   │   │   │   ├── client.rb
│   │   │   │   ├── exceptions.rb
│   │   │   │   ├── multiplexed_processor.rb
│   │   │   │   ├── processor.rb
│   │   │   │   ├── protocol/
│   │   │   │   │   ├── base_protocol.rb
│   │   │   │   │   ├── binary_protocol.rb
│   │   │   │   │   ├── binary_protocol_accelerated.rb
│   │   │   │   │   ├── compact_protocol.rb
│   │   │   │   │   ├── header_protocol.rb
│   │   │   │   │   ├── json_protocol.rb
│   │   │   │   │   ├── multiplexed_protocol.rb
│   │   │   │   │   └── protocol_decorator.rb
│   │   │   │   ├── serializer/
│   │   │   │   │   ├── deserializer.rb
│   │   │   │   │   └── serializer.rb
│   │   │   │   ├── server/
│   │   │   │   │   ├── base_server.rb
│   │   │   │   │   ├── mongrel_http_server.rb
│   │   │   │   │   ├── nonblocking_server.rb
│   │   │   │   │   ├── simple_server.rb
│   │   │   │   │   ├── thin_http_server.rb
│   │   │   │   │   ├── thread_pool_server.rb
│   │   │   │   │   └── threaded_server.rb
│   │   │   │   ├── struct.rb
│   │   │   │   ├── struct_union.rb
│   │   │   │   ├── thrift_native.rb
│   │   │   │   ├── transport/
│   │   │   │   │   ├── base_server_transport.rb
│   │   │   │   │   ├── base_transport.rb
│   │   │   │   │   ├── buffered_transport.rb
│   │   │   │   │   ├── framed_transport.rb
│   │   │   │   │   ├── header_transport.rb
│   │   │   │   │   ├── http_client_transport.rb
│   │   │   │   │   ├── io_stream_transport.rb
│   │   │   │   │   ├── memory_buffer_transport.rb
│   │   │   │   │   ├── server_socket.rb
│   │   │   │   │   ├── socket.rb
│   │   │   │   │   ├── ssl_server_socket.rb
│   │   │   │   │   ├── ssl_socket.rb
│   │   │   │   │   ├── unix_server_socket.rb
│   │   │   │   │   └── unix_socket.rb
│   │   │   │   ├── types.rb
│   │   │   │   ├── union.rb
│   │   │   │   └── uuid.rb
│   │   │   └── thrift.rb
│   │   ├── script/
│   │   │   ├── proto_benchmark.rb
│   │   │   ├── read_struct.rb
│   │   │   └── write_struct.rb
│   │   ├── spec/
│   │   │   ├── BaseService.thrift
│   │   │   ├── ExtendedService.thrift
│   │   │   ├── Referenced.thrift
│   │   │   ├── ThriftNamespacedSpec.thrift
│   │   │   ├── ThriftSpec.thrift
│   │   │   ├── 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
│   │   │   ├── constants_demo_spec.rb
│   │   │   ├── exception_spec.rb
│   │   │   ├── flat_spec.rb
│   │   │   ├── header_protocol_spec.rb
│   │   │   ├── header_transport_spec.rb
│   │   │   ├── http_client_spec.rb
│   │   │   ├── json_protocol_spec.rb
│   │   │   ├── namespaced_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
│   │   │   ├── ssl_server_socket_spec.rb
│   │   │   ├── ssl_socket_spec.rb
│   │   │   ├── struct_nested_containers_spec.rb
│   │   │   ├── struct_spec.rb
│   │   │   ├── support/
│   │   │   │   └── header_protocol_helper.rb
│   │   │   ├── thin_http_server_spec.rb
│   │   │   ├── types_spec.rb
│   │   │   ├── union_spec.rb
│   │   │   ├── unix_socket_spec.rb
│   │   │   └── uuid_validation_spec.rb
│   │   ├── test/
│   │   │   └── fuzz/
│   │   │       ├── .gitignore
│   │   │       ├── Makefile.am
│   │   │       ├── README.md
│   │   │       ├── fuzz_common.rb
│   │   │       ├── fuzz_parse_binary_protocol.rb
│   │   │       ├── fuzz_parse_binary_protocol_accelerated.rb
│   │   │       ├── fuzz_parse_binary_protocol_accelerated_harness.rb
│   │   │       ├── fuzz_parse_binary_protocol_harness.rb
│   │   │       ├── fuzz_parse_compact_protocol.rb
│   │   │       ├── fuzz_parse_compact_protocol_harness.rb
│   │   │       ├── fuzz_parse_json_protocol.rb
│   │   │       ├── fuzz_parse_json_protocol_harness.rb
│   │   │       ├── fuzz_roundtrip_binary_protocol.rb
│   │   │       ├── fuzz_roundtrip_binary_protocol_accelerated.rb
│   │   │       ├── fuzz_roundtrip_binary_protocol_accelerated_harness.rb
│   │   │       ├── fuzz_roundtrip_binary_protocol_harness.rb
│   │   │       ├── fuzz_roundtrip_compact_protocol.rb
│   │   │       ├── fuzz_roundtrip_compact_protocol_harness.rb
│   │   │       ├── fuzz_roundtrip_json_protocol.rb
│   │   │       ├── fuzz_roundtrip_json_protocol_harness.rb
│   │   │       └── fuzz_tracer.rb
│   │   └── thrift.gemspec
│   ├── rs/
│   │   ├── Cargo.toml
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── RELEASING.md
│   │   ├── release.sh
│   │   ├── src/
│   │   │   ├── autogen.rs
│   │   │   ├── configuration.rs
│   │   │   ├── errors.rs
│   │   │   ├── lib.rs
│   │   │   ├── protocol/
│   │   │   │   ├── binary.rs
│   │   │   │   ├── compact.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── multiplexed.rs
│   │   │   │   └── stored.rs
│   │   │   ├── server/
│   │   │   │   ├── mod.rs
│   │   │   │   ├── multiplexed.rs
│   │   │   │   └── threaded.rs
│   │   │   └── transport/
│   │   │       ├── buffered.rs
│   │   │       ├── framed.rs
│   │   │       ├── mem.rs
│   │   │       ├── mod.rs
│   │   │       └── socket.rs
│   │   ├── test/
│   │   │   ├── Cargo.toml
│   │   │   ├── Makefile.am
│   │   │   ├── fuzz/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── Cargo.toml
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── README.md
│   │   │   │   ├── bin/
│   │   │   │   │   └── corpus_generator.rs
│   │   │   │   ├── fuzz_targets/
│   │   │   │   │   ├── parse_binary.rs
│   │   │   │   │   ├── parse_compact.rs
│   │   │   │   │   ├── roundtrip_binary.rs
│   │   │   │   │   ├── roundtrip_compact.rs
│   │   │   │   │   ├── structured_roundtrip_binary.rs
│   │   │   │   │   └── structured_roundtrip_compact.rs
│   │   │   │   └── lib/
│   │   │   │       └── mod.rs
│   │   │   ├── src/
│   │   │   │   ├── bin/
│   │   │   │   │   ├── kitchen_sink_client.rs
│   │   │   │   │   └── kitchen_sink_server.rs
│   │   │   │   └── lib.rs
│   │   │   └── thrifts/
│   │   │       ├── Base_One.thrift
│   │   │       ├── Base_Two.thrift
│   │   │       ├── Midlayer.thrift
│   │   │       └── Ultimate.thrift
│   │   └── test_recursive/
│   │       ├── Cargo.toml
│   │       ├── Makefile.am
│   │       └── src/
│   │           ├── Makefile.am
│   │           ├── Vehicles.thrift
│   │           ├── lib.rs
│   │           ├── maintenance/
│   │           │   ├── MaintenanceFacility.thrift
│   │           │   ├── Makefile.am
│   │           │   └── mod.rs
│   │           └── transit/
│   │               ├── Buses.thrift
│   │               ├── Makefile.am
│   │               ├── Trains.thrift
│   │               ├── Transporters.thrift
│   │               ├── light/
│   │               │   ├── LightRail.thrift
│   │               │   ├── Makefile.am
│   │               │   ├── Streetcars.thrift
│   │               │   └── mod.rs
│   │               ├── mod.rs
│   │               └── services/
│   │                   ├── CityServices.thrift
│   │                   ├── Makefile.am
│   │                   └── mod.rs
│   ├── st/
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── package.xml
│   │   └── thrift.st
│   ├── swift/
│   │   ├── FuzzTesting/
│   │   │   ├── Package.swift
│   │   │   ├── README.md
│   │   │   └── Sources/
│   │   │       ├── FuzzCommon/
│   │   │       │   └── FuzzUtils.swift
│   │   │       ├── FuzzParseBinary/
│   │   │       │   └── main.swift
│   │   │       ├── FuzzParseCompact/
│   │   │       │   └── main.swift
│   │   │       ├── FuzzParseJSON/
│   │   │       │   └── main.swift
│   │   │       ├── FuzzRoundtripBinary/
│   │   │       │   └── main.swift
│   │   │       ├── FuzzRoundtripCompact/
│   │   │       │   └── main.swift
│   │   │       └── FuzzRoundtripJSON/
│   │   │           └── main.swift
│   │   ├── Makefile.am
│   │   ├── Package.swift
│   │   ├── README.md
│   │   ├── Sources/
│   │   │   ├── LinuxHelper.swift
│   │   │   ├── TApplicationError.swift
│   │   │   ├── TBase64Utils.swift
│   │   │   ├── TBinary.swift
│   │   │   ├── TBinaryProtocol.swift
│   │   │   ├── TClient.swift
│   │   │   ├── TCompactProtocol.swift
│   │   │   ├── TEnum.swift
│   │   │   ├── TError.swift
│   │   │   ├── TFileHandleTransport.swift
│   │   │   ├── TFileTransport.swift
│   │   │   ├── TFramedTransport.swift
│   │   │   ├── THTTPSessionTransport.swift
│   │   │   ├── TJSONProtocol.swift
│   │   │   ├── TList.swift
│   │   │   ├── TMap.swift
│   │   │   ├── TMemoryBufferTransport.swift
│   │   │   ├── TMultiplexedProcessor.swift
│   │   │   ├── TMultiplexedProtocol.swift
│   │   │   ├── TProcessor.swift
│   │   │   ├── TProtocol.swift
│   │   │   ├── TProtocolDecorator.swift
│   │   │   ├── TProtocolError.swift
│   │   │   ├── TSSLSocketTransport.swift
│   │   │   ├── TSSLSocketTransportError.swift
│   │   │   ├── TSerializable.swift
│   │   │   ├── TSet.swift
│   │   │   ├── TSocketServer.swift
│   │   │   ├── TSocketTransport.swift
│   │   │   ├── TStreamTransport.swift
│   │   │   ├── TStruct.swift
│   │   │   ├── TTransport.swift
│   │   │   ├── TTransportError.swift
│   │   │   ├── TWrappedProtocol.swift
│   │   │   ├── Thrift.swift
│   │   │   └── UnixSocket.swift
│   │   └── Tests/
│   │       ├── LinuxMain.swift
│   │       └── ThriftTests/
│   │           ├── TBinaryProtocolTests.swift
│   │           ├── TCompactProtocolTests.swift
│   │           ├── TFramedTransportTests.swift
│   │           ├── TJSONProtocolTests.swift
│   │           ├── TMultiplexedProcessorTests.swift
│   │           ├── TSocketServerTests.swift
│   │           └── ThriftTests.swift
│   ├── ts/
│   │   ├── Gruntfile.js
│   │   ├── Makefile.am
│   │   ├── coding_standards.md
│   │   ├── dist/
│   │   │   └── thrift.js
│   │   ├── package.json
│   │   ├── test/
│   │   │   ├── build.xml
│   │   │   ├── phantom-client.ts
│   │   │   ├── server_http.js
│   │   │   ├── test-int64.html
│   │   │   ├── test-int64.ts
│   │   │   ├── test.html
│   │   │   ├── test.ts
│   │   │   └── test_handler.js
│   │   ├── thrift.d.ts
│   │   └── tsconfig.json
│   └── xml/
│       ├── Makefile.am
│       ├── test/
│       │   ├── Makefile.am
│       │   └── build.xml
│       └── thrift-idl.xsd
├── package.json
├── phpcs.xml.dist
├── rust-toolchain
├── sonar-project.properties
├── test/
│   ├── AnnotationTest.thrift
│   ├── BrokenConstants.thrift
│   ├── ConstantsDemo.thrift
│   ├── DebugProtoTest.thrift
│   ├── DenseLinkingTest.thrift
│   ├── DocTest.thrift
│   ├── DoubleConstantsTest.thrift
│   ├── EnumContainersTest.thrift
│   ├── EnumTest.thrift
│   ├── ExceptionStruct.thrift
│   ├── FullCamelTest.thrift
│   ├── FuzzTest.thrift
│   ├── Identifiers.thrift
│   ├── Include.thrift
│   ├── Int64Test.thrift
│   ├── JsDeepConstructorTest.thrift
│   ├── Makefile.am
│   ├── ManyOptionals.thrift
│   ├── ManyTypedefs.thrift
│   ├── NameConflictTest.thrift
│   ├── OptionalRequiredTest.thrift
│   ├── README.md
│   ├── Recursive.thrift
│   ├── ReuseObjects.thrift
│   ├── Service.thrift
│   ├── SmallTest.thrift
│   ├── SpecificNameTest.thrift
│   ├── StressTest.thrift
│   ├── ThriftTest.thrift
│   ├── TypedefTest.thrift
│   ├── Types.thrift
│   ├── UnsafeTypes.thrift
│   ├── VoidMethExceptionsTest.thrift
│   ├── audit/
│   │   ├── README.md
│   │   ├── break1.thrift
│   │   ├── break10.thrift
│   │   ├── break11.thrift
│   │   ├── break12.thrift
│   │   ├── break13.thrift
│   │   ├── break14.thrift
│   │   ├── break15.thrift
│   │   ├── break16.thrift
│   │   ├── break17.thrift
│   │   ├── break18.thrift
│   │   ├── break19.thrift
│   │   ├── break2.thrift
│   │   ├── break20.thrift
│   │   ├── break21.thrift
│   │   ├── break22.thrift
│   │   ├── break23.thrift
│   │   ├── break24.thrift
│   │   ├── break25.thrift
│   │   ├── break26.thrift
│   │   ├── break27.thrift
│   │   ├── break28.thrift
│   │   ├── break29.thrift
│   │   ├── break3.thrift
│   │   ├── break30.thrift
│   │   ├── break31.thrift
│   │   ├── break32.thrift
│   │   ├── break33.thrift
│   │   ├── break34.thrift
│   │   ├── break4.thrift
│   │   ├── break5.thrift
│   │   ├── break6.thrift
│   │   ├── break7.thrift
│   │   ├── break8.thrift
│   │   ├── break9.thrift
│   │   ├── test.thrift
│   │   ├── thrift_audit_test.pl
│   │   └── warning.thrift
│   ├── c_glib/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   └── src/
│   │       ├── test_client.c
│   │       ├── test_server.c
│   │       ├── thrift_second_service_handler.c
│   │       ├── thrift_second_service_handler.h
│   │       ├── thrift_test_handler.c
│   │       └── thrift_test_handler.h
│   ├── cl/
│   │   ├── Makefile.am
│   │   ├── implementation.lisp
│   │   ├── make-test-client.lisp
│   │   ├── make-test-server.lisp
│   │   └── tests.lisp
│   ├── cpp/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   └── src/
│   │       ├── EnumClassTest.cpp
│   │       ├── ForwardSetterTest.cpp
│   │       ├── PrivateOptionalTest.cpp
│   │       ├── SpecificNameTest.cpp
│   │       ├── StressTest.cpp
│   │       ├── StressTestNonBlocking.cpp
│   │       ├── TemplateStreamOpTest.cpp
│   │       ├── TestClient.cpp
│   │       ├── TestServer.cpp
│   │       └── ThriftTest_extras.cpp
│   ├── crossrunner/
│   │   ├── __init__.py
│   │   ├── collect.py
│   │   ├── report.py
│   │   ├── run.py
│   │   ├── setup.cfg
│   │   ├── test.py
│   │   └── util.py
│   ├── dart/
│   │   ├── Makefile.am
│   │   └── test_client/
│   │       ├── bin/
│   │       │   └── main.dart
│   │       └── pubspec.yaml
│   ├── erl/
│   │   ├── Makefile.am
│   │   ├── rebar.config
│   │   └── src/
│   │       ├── test_client.erl
│   │       ├── test_thrift_server.erl
│   │       └── thrift_test.app.src
│   ├── features/
│   │   ├── Makefile.am
│   │   ├── container_limit.py
│   │   ├── index.html
│   │   ├── known_failures_Linux.json
│   │   ├── local_thrift/
│   │   │   └── __init__.py
│   │   ├── nosslv3.sh
│   │   ├── setup.cfg
│   │   ├── string_limit.py
│   │   ├── tests.json
│   │   ├── theader_binary.py
│   │   ├── tls.sh
│   │   └── util.py
│   ├── go/
│   │   ├── Makefile.am
│   │   ├── genmock.sh
│   │   ├── go.mod
│   │   ├── go.sum
│   │   └── src/
│   │       ├── bin/
│   │       │   ├── stress/
│   │       │   │   └── main.go
│   │       │   ├── testclient/
│   │       │   │   └── main.go
│   │       │   └── testserver/
│   │       │       └── main.go
│   │       └── common/
│   │           ├── client.go
│   │           ├── clientserver_test.go
│   │           ├── context_test.go
│   │           ├── printing_handler.go
│   │           ├── server.go
│   │           └── simple_handler.go
│   ├── haxe/
│   │   ├── Makefile.am
│   │   ├── TestClientServer.hxproj
│   │   ├── cpp.hxml
│   │   ├── csharp.hxml
│   │   ├── flash.hxml
│   │   ├── java.hxml
│   │   ├── javascript.hxml
│   │   ├── make_all.bat
│   │   ├── make_all.sh
│   │   ├── neko.hxml
│   │   ├── php-web-server.hxml
│   │   ├── php.hxml
│   │   ├── project.hide
│   │   ├── python.hxml
│   │   ├── router.php
│   │   └── src/
│   │       ├── Arguments.hx
│   │       ├── Main.hx
│   │       ├── TestClient.hx
│   │       ├── TestMacro.hx
│   │       ├── TestServer.hx
│   │       ├── TestServerEventHandler.hx
│   │       └── TestServerHandler.hx
│   ├── index.html
│   ├── keys/
│   │   ├── CA.pem
│   │   ├── README.md
│   │   ├── client.crt
│   │   ├── client.key
│   │   ├── client.p12
│   │   ├── client.pem
│   │   ├── client_v3.crt
│   │   ├── client_v3.key
│   │   ├── keygen/
│   │   │   ├── .gitignore
│   │   │   └── make-serverkey.sh
│   │   ├── server.crt
│   │   ├── server.key
│   │   ├── server.p12
│   │   └── server.pem
│   ├── known_failures_Linux.json
│   ├── lua/
│   │   ├── Makefile.am
│   │   ├── test_basic_client.lua
│   │   └── test_basic_server.lua
│   ├── netstd/
│   │   ├── Client/
│   │   │   ├── Client.csproj
│   │   │   ├── Performance/
│   │   │   │   ├── PerformanceTests.cs
│   │   │   │   └── TestDataFactory.cs
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   └── TestClient.cs
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── Server/
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Server.csproj
│   │   │   └── TestServer.cs
│   │   ├── ThriftTest.sln
│   │   ├── build.cmd
│   │   └── build.sh
│   ├── ocaml/
│   │   ├── client/
│   │   │   └── TestClient.ml
│   │   └── server/
│   │       └── TestServer.ml
│   ├── partial/
│   │   └── thrift_test_schema.thrift
│   ├── perl/
│   │   ├── Makefile.am
│   │   ├── TestClient.pl
│   │   └── TestServer.pl
│   ├── php/
│   │   ├── Client.php
│   │   ├── Handler.php
│   │   ├── Makefile.am
│   │   ├── TestClassmap.php
│   │   ├── TestClient.php
│   │   ├── TestInline.php
│   │   ├── TestServer.php
│   │   └── test_php.ini
│   ├── py/
│   │   ├── CMakeLists.txt
│   │   ├── FastbinaryTest.py
│   │   ├── Makefile.am
│   │   ├── RunClientServer.py
│   │   ├── SerializationTest.py
│   │   ├── TSimpleJSONProtocolTest.py
│   │   ├── TestClient.py
│   │   ├── TestEof.py
│   │   ├── TestFrozen.py
│   │   ├── TestRenderedDoubleConstants.py
│   │   ├── TestServer.py
│   │   ├── TestSocket.py
│   │   ├── TestSyntax.py
│   │   ├── TestTypes.py
│   │   ├── explicit_module/
│   │   │   ├── EnumSerializationTest.py
│   │   │   ├── runtest.sh
│   │   │   ├── shared_types.thrift
│   │   │   ├── test1.thrift
│   │   │   ├── test2.thrift
│   │   │   ├── test3.thrift
│   │   │   ├── test4.thrift
│   │   │   └── test5.thrift
│   │   ├── generate.cmake
│   │   ├── setup.cfg
│   │   └── util.py
│   ├── py.tornado/
│   │   ├── Makefile.am
│   │   ├── setup.cfg
│   │   └── test_suite.py
│   ├── py.twisted/
│   │   ├── Makefile.am
│   │   ├── setup.cfg
│   │   └── test_suite.py
│   ├── rb/
│   │   ├── Gemfile
│   │   ├── Makefile.am
│   │   ├── benchmarks/
│   │   │   └── protocol_benchmark.rb
│   │   ├── core/
│   │   │   ├── protocol/
│   │   │   │   ├── test_binary_protocol.rb
│   │   │   │   ├── test_compact_protocol.rb
│   │   │   │   └── test_json_protocol.rb
│   │   │   ├── test_accelerated_binary_protocol.rb
│   │   │   ├── test_backwards_compatability.rb
│   │   │   ├── test_exceptions.rb
│   │   │   └── transport/
│   │   │       └── test_transport.rb
│   │   ├── fixtures/
│   │   │   └── structs.rb
│   │   ├── generation/
│   │   │   ├── test_enum.rb
│   │   │   ├── test_recursive.rb
│   │   │   └── test_struct.rb
│   │   ├── integration/
│   │   │   ├── TestClient.rb
│   │   │   └── TestServer.rb
│   │   ├── test_helper.rb
│   │   └── test_suite.rb
│   ├── rebuild_known_failures.sh
│   ├── result.js
│   ├── rs/
│   │   ├── Cargo.toml
│   │   ├── Makefile.am
│   │   └── src/
│   │       ├── bin/
│   │       │   ├── test_client.rs
│   │       │   └── test_server.rs
│   │       └── lib.rs
│   ├── swift/
│   │   ├── CrossTests/
│   │   │   ├── Makefile.am
│   │   │   ├── Package.swift
│   │   │   └── Sources/
│   │   │       ├── Common/
│   │   │       │   └── Parameters.swift
│   │   │       ├── TestClient/
│   │   │       │   └── main.swift
│   │   │       └── TestServer/
│   │   │           ├── ThriftTestService.swift
│   │   │           └── main.swift
│   │   └── Makefile.am
│   ├── test.py
│   ├── tests.json
│   ├── threads/
│   │   ├── ThreadsClient.cpp
│   │   ├── ThreadsServer.cpp
│   │   └── ThreadsTest.thrift
│   ├── v0.16/
│   │   ├── ConstantsDemo.thrift
│   │   ├── DebugProtoTest.thrift
│   │   ├── FuzzTestNoUuid.thrift
│   │   ├── NameConflictTest.thrift
│   │   └── ThriftTest.thrift
│   └── valgrind.suppress
└── tutorial/
    ├── Makefile.am
    ├── README.md
    ├── c_glib/
    │   ├── Makefile.am
    │   ├── c_glib_client.c
    │   └── c_glib_server.c
    ├── cl/
    │   ├── Makefile.am
    │   ├── load-locally.lisp
    │   ├── make-tutorial-client.lisp
    │   ├── make-tutorial-server.lisp
    │   ├── shared-implementation.lisp
    │   ├── thrift-tutorial.asd
    │   └── tutorial-implementation.lisp
    ├── cpp/
    │   ├── CMakeLists.txt
    │   ├── CppClient.cpp
    │   ├── CppServer.cpp
    │   └── Makefile.am
    ├── d/
    │   ├── Makefile.am
    │   ├── async_client.d
    │   ├── client.d
    │   └── server.d
    ├── dart/
    │   ├── Makefile.am
    │   ├── build.sh
    │   ├── client/
    │   │   ├── pubspec.yaml
    │   │   └── web/
    │   │       ├── client.dart
    │   │       ├── index.html
    │   │       └── styles.css
    │   ├── console_client/
    │   │   ├── bin/
    │   │   │   └── main.dart
    │   │   └── pubspec.yaml
    │   └── server/
    │       ├── bin/
    │       │   └── main.dart
    │       └── pubspec.yaml
    ├── delphi/
    │   ├── DelphiClient/
    │   │   ├── DelphiClient.dpr
    │   │   └── DelphiClient.dproj
    │   ├── DelphiServer/
    │   │   ├── DelphiServer.dpr
    │   │   └── DelphiServer.dproj
    │   └── Tutorial.groupproj
    ├── erl/
    │   ├── README.md
    │   ├── client.erl
    │   ├── client.sh
    │   ├── json_client.erl
    │   ├── server.erl
    │   └── server.sh
    ├── go/
    │   ├── Makefile.am
    │   ├── server.crt
    │   ├── server.key
    │   └── src/
    │       ├── client.go
    │       ├── handler.go
    │       ├── main.go
    │       └── server.go
    ├── haxe/
    │   ├── Makefile.am
    │   ├── Tutorial.hxproj
    │   ├── cpp.hxml
    │   ├── csharp.hxml
    │   ├── flash.hxml
    │   ├── java.hxml
    │   ├── javascript.hxml
    │   ├── make_all.bat
    │   ├── make_all.sh
    │   ├── neko.hxml
    │   ├── php-web-server.hxml
    │   ├── php.hxml
    │   ├── project.hide
    │   ├── python.hxml
    │   ├── router.php
    │   └── src/
    │       ├── CalculatorHandler.hx
    │       └── Main.hx
    ├── java/
    │   ├── Makefile.am
    │   ├── README.md
    │   ├── build.properties
    │   ├── build.xml
    │   └── src/
    │       ├── CalculatorHandler.java
    │       ├── JavaClient.java
    │       └── JavaServer.java
    ├── js/
    │   ├── Makefile.am
    │   ├── build.properties
    │   ├── build.xml
    │   ├── src/
    │   │   └── Httpd.java
    │   └── tutorial.html
    ├── netstd/
    │   ├── Client/
    │   │   ├── Client.csproj
    │   │   ├── Program.cs
    │   │   ├── Properties/
    │   │   │   └── AssemblyInfo.cs
    │   │   └── ThriftTest.pfx
    │   ├── Makefile.am
    │   ├── README.md
    │   ├── Server/
    │   │   ├── Program.cs
    │   │   ├── Properties/
    │   │   │   └── AssemblyInfo.cs
    │   │   ├── Server.csproj
    │   │   └── ThriftTest.pfx
    │   ├── Tutorial.sln
    │   ├── build.cmd
    │   └── build.sh
    ├── nodejs/
    │   ├── Makefile.am
    │   ├── NodeClient.js
    │   ├── NodeClientPromise.js
    │   ├── NodeServer.js
    │   └── NodeServerPromise.js
    ├── ocaml/
    │   ├── CalcClient.ml
    │   ├── CalcServer.ml
    │   ├── README.md
    │   └── _oasis
    ├── perl/
    │   ├── Makefile.am
    │   ├── PerlClient.pl
    │   └── PerlServer.pl
    ├── php/
    │   ├── Makefile.am
    │   ├── PhpClient.php
    │   ├── PhpServer.php
    │   └── runserver.py
    ├── py/
    │   ├── Makefile.am
    │   ├── PythonClient.py
    │   ├── PythonServer.py
    │   └── setup.cfg
    ├── py.tornado/
    │   ├── Makefile.am
    │   ├── PythonClient.py
    │   └── PythonServer.py
    ├── py.twisted/
    │   ├── Makefile.am
    │   ├── PythonClient.py
    │   ├── PythonServer.py
    │   └── PythonServer.tac
    ├── rb/
    │   ├── Makefile.am
    │   ├── RubyClient.rb
    │   └── RubyServer.rb
    ├── rs/
    │   ├── Cargo.toml
    │   ├── Makefile.am
    │   ├── README.md
    │   └── src/
    │       ├── bin/
    │       │   ├── tutorial_client.rs
    │       │   └── tutorial_server.rs
    │       └── lib.rs
    ├── shared.thrift
    ├── swift/
    │   ├── Makefile.am
    │   ├── Package.swift
    │   ├── README.md
    │   └── Sources/
    │       ├── TutorialClient/
    │       │   └── main.swift
    │       ├── TutorialRunner/
    │       │   └── main.swift
    │       └── TutorialServer/
    │           ├── CalculatorService.swift
    │           └── main.swift
    └── tutorial.thrift

================================================
FILE CONTENTS
================================================

================================================
FILE: .asf.yaml
================================================
notifications:
    commits:      commits@thrift.apache.org
    issues:       dev@thrift.apache.org
    pullrequests_status: dev@thrift.apache.org
    pullrequests_comment: notifications@thrift.apache.org
    jira_options: link label worklog
    
    

================================================
FILE: .clang-format
================================================
---
Language:        Cpp
# BasedOnStyle:  LLVM
AccessModifierOffset: -2
ConstructorInitializerIndentWidth: 2
AlignEscapedNewlinesLeft: false
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AlwaysBreakTemplateDeclarations: true
AlwaysBreakBeforeMultilineStrings: true
BreakBeforeBinaryOperators: true
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BinPackParameters: false
ColumnLimit:     100
ConstructorInitializerAllOnOneLineOrOnePerLine: true
DerivePointerAlignment: false
IndentCaseLabels: false
IndentWrappedFunctionNames: false
IndentFunctionDeclarationAfterType: false
MaxEmptyLinesToKeep: 1
KeepEmptyLinesAtTheStartOfBlocks: true
NamespaceIndentation: None
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 190
PenaltyBreakComment: 300
PenaltyBreakString: 10000
PenaltyBreakFirstLessLess: 120
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 1200
PointerAlignment: Left
SpacesBeforeTrailingComments: 1
Cpp11BracedListStyle: true
Standard:        Auto
IndentWidth:     2
TabWidth:        4
UseTab:          Never
BreakBeforeBraces: Attach
SpacesInParentheses: false
SpacesInAngles:  false
SpaceInEmptyParentheses: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: true
SpaceBeforeAssignmentOperators: true
ContinuationIndentWidth: 4
CommentPragmas:  '^ IWYU pragma:'
ForEachMacros:   [ foreach, Q_FOREACH, BOOST_FOREACH ]
SpaceBeforeParens: ControlStatements
DisableFormat:   false
...



================================================
FILE: .dockerignore
================================================
.git/


================================================
FILE: .editorconfig
================================================
#
## Licensed to the Apache Software Foundation (ASF) under one
## or more contributor license agreements. See the NOTICE file
## distributed with this work for additional information
## regarding copyright ownership. The ASF licenses this file
## to you under the Apache License, Version 2.0 (the
## "License"); you may not use this file except in compliance
## with the License. You may obtain a copy of the License at
##
##   http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing,
## software distributed under the License is distributed on an
## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
## KIND, either express or implied. See the License for the
## specific language governing permissions and limitations
## under the License.
##
#

# EditorConfig: http://editorconfig.org
# see doc/coding_standards.md

root = true

[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# ActionScript
# [*.as]

# C
# [*.c]

# C++
[*.cpp]
indent_style = space
indent_size = 2

# C-Sharp
# [*.cs]

# D
# [*.d]

# Erlang
# [*.erl]

# Go-lang
[*.go]
indent_style = tab
indent_size = 8

# C header files
# [*.h]

# Haskell
# [*.hs]

# Haxe
# [*.hx]

# Java
# [*.java]

# Javascript
[*.js]
indent_style = space
indent_size = 2

# JSON
[*.json]
indent_style = space
indent_size = 2

# Lua
# [*.lua]

[*.markdown]
indent_style = space
trim_trailing_whitespace = false

[*.md]
indent_style = space
trim_trailing_whitespace = false

# OCaml
# [*.ml]

# Delphi Pascal
# [*.pas]

# PHP
# [*.php]

# Perl
# [*.pm]

# Python
# [*.py]

# Ruby
# [*.rb]

# Typescript
# [*.ts]

# XML
# [*.xml]


================================================
FILE: .flake8
================================================
[flake8]
exclude = .git,__pycache__,**/gen-*/**,contrib/**,docs/source/conf.py,old,build,dist
ignore = W504,E402,E501
max-complexity = 30
max-line-length = 120


================================================
FILE: .gitattributes
================================================
* text=auto


================================================
FILE: .github/dependabot.yml
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: monthly
  - package-ecosystem: "gradle"
    directory: "/lib/java"
    schedule:
      interval: monthly
  - package-ecosystem: "gradle"
    directory: "/lib/kotlin"
    schedule:
      interval: monthly


================================================
FILE: .github/mergeable.yml
================================================
version: 2
mergeable:
  - when: pull_request.*
    name: Add 'c_glib' label to PR if changeset includes changes to the lib/c_glib or test/c_glib directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/c_glib/.*'
          - must_include:
              regex: 'test/c_glib/.*'
    pass:
      - do: labels
        labels: ['c_glib']
        mode: 'add'

  - when: pull_request.*
    name: Add 'c++' label to PR if changeset includes changes to the lib/cpp or test/cpp directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/cpp/.*'
          - must_include:
              regex: 'test/cpp/.*'
    pass:
      - do: labels
        labels: ['c++']
        mode: 'add'

  - when: pull_request.*
    name: Add 'dart' label to PR if changeset includes changes to the lib/dart or test/dart directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/dart/.*'
          - must_include:
              regex: 'test/dart/.*'
    pass:
      - do: labels
        labels: ['dart']
        mode: 'add'

  - when: pull_request.*
    name: Add 'delphi' label to PR if changeset includes changes to the lib/delphi or test/delphi directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/delphi/.*'
          - must_include:
              regex: 'test/delphi/.*'
    pass:
      - do: labels
        labels: ['delphi']
        mode: 'add'

  - when: pull_request.*
    name: Add 'erlang' label to PR if changeset includes changes to the lib/erl or test/erl directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/erl/.*'
          - must_include:
              regex: 'test/erl/.*'
    pass:
      - do: labels
        labels: ['erlang']
        mode: 'add'

  - when: pull_request.*
    name: Add 'golang' label to PR if changeset includes changes to the lib/go or test/go directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/go/.*'
          - must_include:
              regex: 'test/go/.*'
    pass:
      - do: labels
        labels: ['golang']
        mode: 'add'

  - when: pull_request.*
    name: Add 'haxe' label to PR if changeset includes changes to the lib/haxe or test/haxe directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/haxe/.*'
          - must_include:
              regex: 'test/haxe/.*'
    pass:
      - do: labels
        labels: ['haxe']
        mode: 'add'

  - when: pull_request.*
    name: Add 'java' label to PR if changeset includes changes to the lib/java or test/java directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/java/.*'
          - must_include:
              regex: 'lib/javame/.*'
    pass:
      - do: labels
        labels: ['java']
        mode: 'add'

  - when: pull_request.*
    name: Add 'javascript' label to PR if changeset includes changes to the lib/js or test/js directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/js/.*'
    pass:
      - do: labels
        labels: ['javascript']
        mode: 'add'

  - when: pull_request.*
    name: Add 'json' label to PR if changeset includes changes to the lib/json or test/json directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/json/.*'
    pass:
      - do: labels
        labels: ['json']
        mode: 'add'

  - when: pull_request.*
    name: Add 'kotlin' label to PR if changeset includes changes to the lib/kotlin or test/kotlin directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/kotlin/.*'
    pass:
      - do: labels
        labels: ['kotlin']
        mode: 'add'

  - when: pull_request.*
    name: Add 'lua' label to PR if changeset includes changes to the lib/lua or test/lua directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/lua/.*'
          - must_include:
              regex: 'test/lua/.*'
    pass:
      - do: labels
        labels: ['lua']
        mode: 'add'

  - when: pull_request.*
    name: Add 'c#' label to PR if changeset includes changes to the lib/netstd or test/netstd directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/netstd/.*'
          - must_include:
              regex: 'test/netstd/.*'
    pass:
      - do: labels
        labels: ['c#']
        mode: 'add'

  - when: pull_request.*
    name: Add 'nodejs' label to PR if changeset includes changes to the lib/nodejs or test/nodejs directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/nodejs/.*'
    pass:
      - do: labels
        labels: ['nodejs']
        mode: 'add'

  - when: pull_request.*
    name: Add 'typescript' label to PR if changeset includes changes to the lib/nodets or test/nodets directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/nodets/.*'
    pass:
      - do: labels
        labels: ['typescript']
        mode: 'add'

  - when: pull_request.*
    name: Add 'ocaml' label to PR if changeset includes changes to the lib/ocaml or test/ocaml directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/ocaml/.*'
          - must_include:
              regex: 'test/ocaml/.*'
    pass:
      - do: labels
        labels: ['ocaml']
        mode: 'add'

  - when: pull_request.*
    name: Add 'perl' label to PR if changeset includes changes to the lib/perl or test/perl directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/perl/.*'
          - must_include:
              regex: 'test/perl/.*'
    pass:
      - do: labels
        labels: ['perl']
        mode: 'add'

  - when: pull_request.*
    name: Add 'php' label to PR if changeset includes changes to the lib/php or test/php directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/php/.*'
          - must_include:
              regex: 'test/php/.*'
    pass:
      - do: labels
        labels: ['php']
        mode: 'add'

  - when: pull_request.*
    name: Add 'python' label to PR if changeset includes changes to the lib/py or test/py directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/py/.*'
          - must_include:
              regex: 'test/py/.*'
          - must_include:
              regex: 'test/py.tornado/.*'
          - must_include:
              regex: 'test/py.twisted/.*'
    pass:
      - do: labels
        labels: ['python']
        mode: 'add'

  - when: pull_request.*
    name: Add 'ruby' label to PR if changeset includes changes to the lib/rb or test/rb directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/rb/.*'
          - must_include:
              regex: 'test/rb/.*'
    pass:
      - do: labels
        labels: ['ruby']
        mode: 'add'

  - when: pull_request.*
    name: Add 'rust' label to PR if changeset includes changes to the lib/rs or test/rs directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/rs/.*'
          - must_include:
              regex: 'test/rs/.*'
    pass:
      - do: labels
        labels: ['ruby']
        mode: 'add'

  - when: pull_request.*
    name: Add 'swift' label to PR if changeset includes changes to the lib/swift or test/swift directories
    validate:
      - do: changeset
        or:
          - must_include:
              regex: 'lib/swift/.*'
          - must_include:
              regex: 'test/swift/.*'
    pass:
      - do: labels
        labels: ['swift']
        mode: 'add'

  - when: pull_request.*
    name: Add 'compiler' label to PR if changeset includes changes to the compiler/cpp directory
    validate:
      - do: changeset
        must_include:
          regex: 'compiler/cpp/.*'
    pass:
      - do: labels
        labels: ['compiler']
        mode: 'add'

  - when: pull_request.*
    name: Add 'github_actions' label to PR if changeset includes changes to the .github/workflows directory
    validate:
      - do: changeset
        must_include:
          regex: '.github/workflows/.*'
    pass:
      - do: labels
        labels: ['github_actions']
        mode: 'add'


================================================
FILE: .github/pull_request_template.md
================================================
<!-- Explain the changes in the pull request below: -->
  

<!-- We recommend you review the checklist/tips before submitting a pull request. -->

- [ ] Did you create an [Apache Jira](https://issues.apache.org/jira/projects/THRIFT/issues/) ticket?  ([Request account here](https://selfserve.apache.org/jira-account.html), not required for trivial changes)
- [ ] If a ticket exists: Does your pull request title follow the pattern "THRIFT-NNNN: describe my issue"?
- [ ] Did you squash your changes to a single commit?  (not required, but preferred)
- [ ] Did you do your best to avoid breaking changes?  If one was needed, did you label the Jira ticket with "Breaking-Change"?
- [ ] If your change does not involve any code, include `[skip ci]` anywhere in the commit message to free up build resources.

<!--
  The Contributing Guide at:
  https://github.com/apache/thrift/blob/master/CONTRIBUTING.md
  has more details and tips for committing properly.
-->


================================================
FILE: .github/stale.yml
================================================
# Configuration for probot-stale - https://github.com/probot/stale

# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 60

# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 7

# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
  - Do Not Merge
  - blocked
  - pinned
  - security
  - "[Status] Maybe Later"

# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false

# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false

# Label to use when marking as stale
staleLabel: wontfix

# Comment to post when marking as stale. Set to `false` to disable
markComment: >
  This issue has been automatically marked as stale because it has not had
  recent activity. It will be closed in 7 days if no further activity occurs.
  Thank you for your contributions.

# Comment to post when removing the stale label.
unmarkComment: >
  This issue is no longer stale.
  Thank you for your contributions.

# Comment to post when closing a stale Issue or Pull Request.
closeComment: >
  This issue has been automatically closed due to inactivity.
  Thank you for your contributions.

# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30

# Limit to only `issues` or `pulls`
# only: issues

# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
# pulls:
#   daysUntilStale: 30
#   markComment: >
#     This pull request has been automatically marked as stale because it has not had
#     recent activity. It will be closed if no further activity occurs. Thank you
#     for your contributions.

# issues:
#   exemptLabels:
#     - confirmed


================================================
FILE: .github/workflows/build.yml
================================================
name: "Build"

on:
  push:
    branches: ["*"]
  pull_request:
    branches: ["*"]

env:
  BUILD_DEPS: automake bison flex git libboost-all-dev libevent-dev libssl-dev libtool make pkg-config
  CONFIG_ARGS_FOR_LIBS: >
    --disable-debug
    --disable-dependency-tracking
    --without-cpp
    --without-c_glib
    --without-java
    --without-kotlin
    --without-python
    --without-py3
    --without-ruby
    --without-haxe
    --without-netstd
    --without-perl
    --without-php
    --without-php_extension
    --without-dart
    --without-erlang
    --without-go
    --without-d
    --without-nodejs
    --without-nodets
    --without-lua
    --without-rs
    --without-swift

permissions:
  contents: read

jobs:
  # TODO windows and macos
  compiler:
    strategy:
      matrix:
        os:
          - ubuntu-22.04
          - ubuntu-24.04
      fail-fast: false
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6

      - name: Install dependencies
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends g++ $BUILD_DEPS

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: ./configure --disable-debug --disable-tests --disable-libs

      - name: Run make
        run: make -j$(nproc)

      - name: Run install
        run: make install

      - name: Run thrift version
        run: /usr/local/bin/thrift -version

      # only upload while building ubuntu-24.04
      - name: Archive built thrift compiler
        if: matrix.os == 'ubuntu-24.04'
        uses: actions/upload-artifact@v7
        with:
          name: thrift-compiler
          path: compiler/cpp/thrift
          retention-days: 3

  compiler-macos:
    strategy:
      matrix:
        os: &macos_versions [macos-15-intel, macos-14, macos-15, macos-26]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6

      - name: Install dependencies
        run: |
          brew install automake bison flex boost libevent openssl libtool pkg-config
          echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: ./configure --disable-debug --disable-tests --disable-libs

      - name: Run make
        run: make -j$(sysctl -n hw.ncpu)

      - name: Run install
        run: sudo make install

      - name: Run thrift version
        run: /usr/local/bin/thrift -version

      - name: Archive built thrift compiler (macOS)
        uses: actions/upload-artifact@v7
        with:
          name: thrift-compiler-${{ matrix.os }}
          path: compiler/cpp/thrift
          retention-days: 3

  lib-php:
    needs: compiler
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        php-version: [7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3]
      fail-fast: false
    steps:
      - uses: actions/checkout@v6

      - name: Set up PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-version }}
          extensions: mbstring, intl, xml, curl
          ini-values: "error_reporting=E_ALL"

      - name: Install Dependencies
        run: composer install

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-php/with-php/' | sed 's/without-php_extension/with-php_extension/' )

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Build Thrift Classes
        run: |
          mkdir -p ./lib/php/test/Resources/packages/php
          mkdir -p ./lib/php/test/Resources/packages/phpv
          mkdir -p ./lib/php/test/Resources/packages/phpvo
          mkdir -p ./lib/php/test/Resources/packages/phpjs
          mkdir -p ./lib/php/test/Resources/packages/phpcm
          compiler/cpp/thrift --gen php:nsglobal="Basic" -r --out ./lib/php/test/Resources/packages/php lib/php/test/Resources/ThriftTest.thrift
          compiler/cpp/thrift --gen php:validate,nsglobal="Validate" -r --out ./lib/php/test/Resources/packages/phpv lib/php/test/Resources/ThriftTest.thrift
          compiler/cpp/thrift --gen php:validate,oop,nsglobal="ValidateOop" -r --out ./lib/php/test/Resources/packages/phpvo lib/php/test/Resources/ThriftTest.thrift
          compiler/cpp/thrift --gen php:json,nsglobal="Json" -r --out ./lib/php/test/Resources/packages/phpjs lib/php/test/Resources/ThriftTest.thrift
          compiler/cpp/thrift --gen php:classmap,server,rest,nsglobal="Classmap" -r --out ./lib/php/test/Resources/packages/phpcm lib/php/test/Resources/ThriftTest.thrift

      - name: Run Tests
        run: vendor/bin/phpunit -c lib/php/phpunit.xml

  lib-go:
    needs: compiler
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        go:
          - '1.25'
          - '1.26'
      fail-fast: false
    steps:
      - uses: actions/checkout@v6

      - uses: actions/setup-go@v6
        with:
          go-version: ${{ matrix.go }}

      - name: Install dependencies
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends $BUILD_DEPS

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-go/with-go/')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run make for go
        run: make -C lib/go

      - name: Run make check for lib/go
        run: make -C lib/go check

      - name: Run make check for test/go
        run: make -C test/go check

      - name: Run make precross for go test
        run: make -C test/go precross

      - name: Upload go precross artifacts
        if: matrix.go == '1.26'
        uses: actions/upload-artifact@v7
        with:
          name: go-precross
          if-no-files-found: error
          path: |
            test/go/bin/*
          retention-days: 3

  lib-java-kotlin:
    needs: compiler
    runs-on: ubuntu-24.04
    env:
      GRADLE_VERSION: "8.4"
    steps:
      - uses: actions/checkout@v6

      - uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: 17
          cache: "gradle"

      - name: Install dependencies
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends $BUILD_DEPS
          sudo apt-get install -y wget unzip ant maven

      - name: Setup gradle
        run: |
          wget https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip -q -O /tmp/gradle-$GRADLE_VERSION-bin.zip
          (echo "3e1af3ae886920c3ac87f7a91f816c0c7c436f276a6eefdb3da152100fef72ae  /tmp/gradle-$GRADLE_VERSION-bin.zip" | sha256sum -c -)
          unzip -d /tmp /tmp/gradle-$GRADLE_VERSION-bin.zip
          sudo mv /tmp/gradle-$GRADLE_VERSION /usr/local/gradle
          sudo ln -s /usr/local/gradle/bin/gradle /usr/local/bin
          gradle --version

      - name: Run spotlessCheck for Java
        run: |
          cd lib/java
          gradle spotlessCheck

      - name: Run ktfmtCheck for Kotlin
        run: |
          cd lib/kotlin
          gradle ktfmtCheck

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-java/with-java/' | sed 's/without-kotlin/with-kotlin/')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run make for java
        run: make -C lib/java

      # this will invoke publishToMavenLocal and install locally
      - name: Run make install for java
        run: make -C lib/java install

      - name: Upload java libthrift artifacts
        uses: actions/upload-artifact@v7
        with:
          name: libthrift
          if-no-files-found: error
          path: ~/.m2/repository/org/apache/thrift

      - name: Run make check for java
        run: make -C lib/java check

      - name: Run make precross for java
        run: make -C lib/java precross

      - name: Upload java precross artifacts
        uses: actions/upload-artifact@v7
        with:
          name: java-precross
          if-no-files-found: error
          path: |
            lib/java/build/functionalTestJar/
            lib/java/build/runnonblockingclient
            lib/java/build/runclient
            lib/java/build/runnonblockingserver
            lib/java/build/runserver
            lib/java/build/runservletserver
          retention-days: 3

      - name: Run make for kotlin
        run: make -C lib/kotlin

      - name: Run make check for kotlin
        run: make -C lib/kotlin check

      - name: Run make precross for kotlin
        run: make -C lib/kotlin precross

      - name: Upload kotlin precross artifacts
        uses: actions/upload-artifact@v7
        with:
          name: kotlin-precross
          if-no-files-found: error
          path: |
            lib/kotlin/cross-test-client/build/install/TestClient/
            lib/kotlin/cross-test-server/build/install/TestServer/
          retention-days: 3

  lib-netstd:
    needs: compiler
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
    defaults:
      run:
        shell: bash  # required by net install script
    steps:
      - uses: actions/checkout@v6

      - name: Install dependencies
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends $BUILD_DEPS
          sudo apt-get install -y --no-install-recommends curl openssl ca-certificates

# This whole setup is getting worse: https://github.com/dotnet/core/discussions/9258
      - name: Set up .NET SDK (via install script)
        run: |
          # remove any existing install
          sudo apt remove dotnet*
          # install key
          sudo apt install gpg
          wget https://dot.net/v1/dotnet-install.asc
          gpg --import dotnet-install.asc
          # download and verify
          wget https://dot.net/v1/dotnet-install.sh
          wget https://dot.net/v1/dotnet-install.sig
          gpg --verify dotnet-install.sig dotnet-install.sh
          # run install script
          chmod +x dotnet-install.sh
          ./dotnet-install.sh --channel 10.0
          # export env vars
          export DOTNET_ROOT=$HOME/.dotnet
          export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
          dotnet --list-sdks

#      the sdk is installed by default, but keep this step for reference
#      especially newer versions are NOT always pre-installed, so manually again
#      - name: Set up .NET SDK
#        run: |
#          sudo add-apt-repository -y ppa:dotnet/backports
#          sudo apt-get install -y --no-install-recommends dotnet-sdk-10.0
#      end

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure for netstd
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-netstd/with-netstd/')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run make for netstd
        run: make -C lib/netstd

      - name: Run make install for netstd
        run: sudo make -C lib/netstd install

      - name: Run make check for netstd
        run: make -C lib/netstd check

      - name: Run make check for test/netstd
        run: make -C test/netstd check

      - name: Run make precross for test/netstd
        run: make -C test/netstd precross

      - name: Upload netstd precross artifacts
        uses: actions/upload-artifact@v7
        with:
          name: netstd-precross
          if-no-files-found: error
          path: |
            test/netstd/Client/bin/Release/
            test/netstd/Server/bin/Release/
          retention-days: 3

  lib-swift:
    needs: compiler
    runs-on: ubuntu-24.04
    if: false                     # swift is currently broken and no maintainers around -> see THRIFT-5864
    steps:
      - uses: actions/checkout@v6

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-swift/with-swift/')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run make precross for swift
        run: make -C test/swift precross

      - name: Upload swift precross artifacts
        uses: actions/upload-artifact@v7
        with:
          name: swift-precross
          if-no-files-found: error
          path: |
            test/swift/CrossTests/.build/x86_64-unknown-linux-gnu/debug/TestServer
            test/swift/CrossTests/.build/x86_64-unknown-linux-gnu/debug/TestClient
          retention-days: 3

  lib-rust:
    needs: compiler
    runs-on: ubuntu-24.04
    if: false    # currently broken and no maintainers around -> see THRIFT-5917
    env:
      TOOLCHAIN_VERSION: 1.83.0
    steps:
      - uses: actions/checkout@v6

      - name: Install dependencies
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends curl $BUILD_DEPS

      - name: Setup cargo
        run: |
          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
          rustup update
          rustup install $TOOLCHAIN_VERSION
          rustup default $TOOLCHAIN_VERSION
          rustup --version
          cargo --version
          rustc --version

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-rs/with-rs/')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run make for rust
        run: make -C lib/rs

      - name: Run make check for rust
        run: make -C lib/rs check

      - name: Run make test for rust
        run: make -C lib/rs/test check

      - name: Run make precross for test rust
        run: make -C test/rs precross

      - name: Upload rust precross artifacts
        uses: actions/upload-artifact@v7
        with:
          name: rs-precross
          if-no-files-found: error
          path: |
            test/rs/bin/test_server
            test/rs/bin/test_client
          retention-days: 3

      - name: Run make test_recursive for rust
        run: make -C lib/rs/test_recursive check

  lib-python:
    needs: compiler
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        python-version: &python_versions ["3.10", "3.11", "3.12", "3.13", "3.14"]
      fail-fast: false
    steps:
      - uses: actions/checkout@v6

      - name: Install dependencies
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends $BUILD_DEPS
          sudo apt-get install -y --no-install-recommends curl openssl ca-certificates

      - name: Set up Python
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python-version }}

      - name: Python setup
        run: |
          python -m pip install --upgrade pip setuptools wheel flake8 "tornado>=6.3.0" "twisted>=24.3.0" "zope.interface>=6.1"
          python --version
          pip --version

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-py3/with-py3/')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run make for python
        run: make -C lib/py

      - name: Run make install for python
        run: sudo make -C lib/py install

      - name: Run make check for python libs
        run: make -C lib/py check

      - name: Run make check for python code
        run: make -C test/py check

      - name: Run make precross for python
        if: matrix.python-version == '3.12'
        run: make -C test/py precross

      - name: Upload python precross artifacts
        if: matrix.python-version == '3.12'
        uses: actions/upload-artifact@v7
        with:
          name: py-precross
          if-no-files-found: error
          path: |
            lib/py/build/lib.*
            test/py/gen-py
            test/py/TestClient.py
            test/py/TestServer.py
            test/py/util.py
          retention-days: 3

  lib-python-macos:
    needs: compiler-macos
    strategy:
      matrix:
        os: *macos_versions
        python-version: *python_versions
      fail-fast: false
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6

      - name: Install dependencies
        run: |
          brew install automake bison flex boost libevent openssl libtool pkg-config
          echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH

      - name: Set up Python
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python-version }}

      - name: Python setup
        run: |
          python -m pip install --upgrade pip setuptools wheel flake8 "tornado>=6.3.0" "twisted>=24.3.0" "zope.interface>=6.1"
          python --version
          pip --version

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-py3/with-py3/')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler-${{ matrix.os }}
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run make for python
        run: make -C lib/py

      - name: Run make install for python
        run: |
          sudo make -C lib/py install PY_PREFIX="$(python -c 'import sys; print(sys.prefix)')"

      - name: Run make for python libs
        run: make -C lib/py

      - name: Run make check for python libs
        run: make -C lib/py check

      - name: Run make check for python code
        run: make -C test/py check

  lib-nodejs:
    needs: compiler
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v6

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed -E 's/without-node([tj])s/with-node\1s/g')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run js tests
        run: make -C lib/nodejs check

      - name: Run ts tests
        run: make -C lib/nodets check

      - name: Run js precross
        run: make -C lib/nodejs precross

      - name: Run ts precross
        run: make -C lib/nodets precross

      - name: Upload nodejs precross artifacts
        uses: actions/upload-artifact@v7
        with:
          name: nodejs-precross
          if-no-files-found: error
          include-hidden-files: true
          path: |
            lib/nodejs/test/gen-nodejs
            lib/nodets/test/gen-nodejs
            lib/nodets/test-compiled
          retention-days: 3

  lib-cpp:
    needs: compiler
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v6

      - name: Install dependencies
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends g++ $BUILD_DEPS locales
          sudo locale-gen en_US.UTF-8
          sudo locale-gen de_DE.UTF-8
          sudo update-locale

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed -E 's/without-cpp/with-cpp/g')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run make for cpp
        run: make -j$(nproc) -C lib/cpp

      - name: Run make check for lib/cpp
        run: make -j$(nproc) -C lib/cpp check

      - name: Run make check for test/cpp
        run: make -j$(nproc) -C test/cpp check

      - name: Run make precross for cpp test
        run: make -j$(nproc) -C test/cpp precross

      - name: Upload cpp precross artifacts
        uses: actions/upload-artifact@v7
        with:
          name: cpp-precross
          if-no-files-found: error
          include-hidden-files: true
          path: |
            test/cpp/TestClient
            test/cpp/TestServer
            test/cpp/.libs/TestClient
            test/cpp/.libs/TestServer
            lib/cpp/.libs/*.so
          retention-days: 3

      - name: Upload log files from failed test runs
        uses: actions/upload-artifact@v7
        if: failure()
        with:
          name: lib-cpp-test-log
          path: lib/cpp/test/*.xml
          retention-days: 3

  lib-ruby:
    needs: compiler
    runs-on: ubuntu-24.04
    name: lib-ruby (${{ matrix.ruby-version }}) ${{ matrix.skip-build-ext && 'noext' || '' }}
    strategy:
      matrix:
        ruby-version: ["2.7", "3.0", "3.1", "3.2", "3.3", "3.4", "4.0", "head"]
        skip-build-ext: [false]
        include:
          - ruby-version: "2.7"
            skip-build-ext: true
      fail-fast: false
    env:
      SKIP_BUILD_EXT: ${{ matrix.skip-build-ext && '1' || '' }}
    steps:
      - uses: actions/checkout@v6

      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby-version }}
          bundler-cache: true
          working-directory: lib/rb

      - name: Run bootstrap
        run: ./bootstrap.sh

      - name: Run configure
        run: |
          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-ruby/with-ruby/')

      - uses: actions/download-artifact@v8
        with:
          name: thrift-compiler
          path: compiler/cpp

      - name: Run thrift-compiler
        run: |
          chmod a+x compiler/cpp/thrift
          compiler/cpp/thrift -version

      - name: Run make for ruby
        run: make -C lib/rb

      - name: Run make check for lib/rb
        run: make -C lib/rb check

      - name: Run make check for test/rb
        run: make -C test/rb check

      - name: Run make precross for ruby test
        run: make -C test/rb precross

      - name: Upload ruby precross artifacts
        # has to match the version used in cross-test
        if: matrix.ruby-version == '2.7' && matrix.skip-build-ext == false
        uses: actions/upload-artifact@v7
        with:
          name: rb-precross
          if-no-files-found: error
          path: |
            test/rb/gen-rb/*
            lib/rb/ext/*.so
          retention-days: 3

  cross-test:
    needs:
      - lib-java-kotlin
      #- lib-swift                     # currently broken and no maintainers around -> see THRIFT-5864
      #- lib-rust                      # currently broken and no maintainers around -> see THRIFT-5917
      - lib-go
      - lib-python
      - lib-cpp
      - lib-ruby
      - lib-nodejs
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        # swift is currently broken and no maintainers around -> see THRIFT-5864
        # rust currently broken and no maintainers around -> see THRIFT-5917
        # kotlin cross test are failing -> see THRIFT-5879
        server_lang: ['java', 'go', 'cpp', 'py', 'rb', 'nodejs', 'nodets']
        # we always use comma join as many client langs as possible, to reduce the number of jobs
        client_lang: ['java,kotlin', 'go,cpp,py,nodejs,nodets', 'rb']
      fail-fast: false
    steps:
      - uses: actions/checkout@v6

      - uses: actions/setup-python@v6
        with:
          python-version: "3.12"

      - name: Install Python test dependencies
        run: |
          python -m pip install --upgrade pip setuptools
          python -m pip install "tornado>=6.3.0" "twisted>=24.3.0" "zope.interface>=6.1"

      - uses: actions/setup-java@v5
        with:
          distribution: temurin
          # here we intentionally use an older version so that we also verify Java 17 compiles to it
          java-version: 8
          cache: "gradle"

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: "2.7"
          bundler-cache: true
          working-directory: test/rb

      - name: Install openssl and certificates (for SSL tests)
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends \
            openssl \
            ca-certificates \
            libboost-all-dev \
            libevent-dev

      - name: Download java precross artifacts
        uses: actions/download-artifact@v8
        with:
          name: java-precross
          path: lib/java/build

      - name: Download kotlin precross artifacts
        uses: actions/download-artifact@v8
        with:
          name: kotlin-precross
          path: lib/kotlin

      - name: Download swift precross artifacts
        uses: actions/download-artifact@v8
        if: false   # currently broken and no maintainers around -> see THRIFT-5864
        with:
          name: swift-precross
          path: test/swift/CrossTests/.build/x86_64-unknown-linux-gnu/debug

      - name: Download rust precross artifacts
        uses: actions/download-artifact@v8
        if: false   # currently broken and no maintainers around -> see THRIFT-5917
        with:
          name: rs-precross
          path: test/rs/bin

      - name: Download go precross artifacts
        uses: actions/download-artifact@v8
        with:
          name: go-precross
          path: test/go/bin

      - name: Download cpp precross artifacts
        uses: actions/download-artifact@v8
        with:
          name: cpp-precross
          path: .

      - name: Download python precross artifacts
        uses: actions/download-artifact@v8
        with:
          name: py-precross
          path: .

      - name: Download ruby precross artifacts
        uses: actions/download-artifact@v8
        with:
          name: rb-precross
          path: .

      - name: Download nodejs and nodets precross artifacts
        uses: actions/download-artifact@v8
        with:
          name: nodejs-precross
          path: lib

      - name: Set back executable flags
        run: |
          chmod a+x lib/java/build/run*
          chmod a+x lib/kotlin/cross-test-client/build/install/TestClient/bin/*
          chmod a+x lib/kotlin/cross-test-server/build/install/TestServer/bin/*
          # THRIFT-5864  chmod a+x test/swift/CrossTests/.build/x86_64-unknown-linux-gnu/debug/*
          # THRIFT-5917  chmod a+x test/rs/bin/*
          chmod a+x test/go/bin/*
          chmod a+x test/cpp/*
          chmod a+x test/cpp/.libs/*
          chmod a+x lib/cpp/.libs/*.so
          chmod a+x test/py/*.py
          chmod a+x lib/rb/ext/*.so

      - name: Installs for nodets and nodejs
        run: |
          npm install .
          cd lib/nodejs/test/ && npm install .

      - name: Create tmp domain socket folder
        run: mkdir /tmp/v0.16

      - name: Run cross test
        env:
          THRIFT_CROSSTEST_CONCURRENCY: 4
        run: |
          python test/test.py \
            --retry-count 5 \
            --skip-known-failures \
            --server ${{ matrix.server_lang }} \
            --client ${{ matrix.client_lang }}

      - name: Upload log files from failed cross test runs
        uses: actions/upload-artifact@v7
        if: failure()
        with:
          name: cross-test-log_${{ matrix.server_lang }}-${{ matrix.client_lang }}
          path: test/log/
          retention-days: 3


================================================
FILE: .github/workflows/cmake.yml
================================================
name: 'Build with CMake'

on:
  push:
    branches: [ '*' ]
  pull_request:
    branches: [ '*' ]

env:
  BUILD_DEPS: bison flex g++ libboost-all-dev libevent-dev libssl-dev make cmake

permissions:
  contents: read

jobs:
  compiler:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v6

      - name: Install dependencies
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends $BUILD_DEPS

      - name: Generate makefile using CMake
        run: |
          mkdir cmake_build
          cd cmake_build
          cmake .. -DBUILD_LIBRARIES=OFF

      - name: Run make
        run: |
          cd cmake_build
          cmake --build .

      - name: Run test
        run: |
          cd cmake_build
          ctest -j$(nproc)

      - name: Upload LastTest log
        if: always()
        uses: actions/upload-artifact@v7
        with:
          name: cmake-LastTest-log
          path: cmake_build/Testing/Temporary/LastTest.log
          if-no-files-found: warn


================================================
FILE: .github/workflows/msvc.yml
================================================
name: MSVC Build 

on:
  push:
    branches: [ '*' ]
  pull_request:
    branches: [ '*' ]

permissions:
  contents: read
  packages: write

jobs:
  build:
    runs-on: windows-2025
    env:
      THRIFT_BUILD_DIR: C:\thrift-build

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Ensure expected workspace path
        shell: pwsh
        run: |
          if (-not (Test-Path 'C:\src')) { New-Item -Path 'C:\src' -ItemType Directory | Out-Null }
          if (Test-Path 'C:\src\thrift') { Remove-Item 'C:\src\thrift' -Recurse -Force }
          cmd /c mklink /J C:\src\thrift $env:GITHUB_WORKSPACE

      - name: Configure build output directory
        shell: pwsh
        run: |
          New-Item -Path $env:THRIFT_BUILD_DIR -ItemType Directory -Force | Out-Null

      - name: Set Docker image name
        shell: pwsh
        env:
          OWNER: ${{ github.repository_owner }}
        run: |
          $image = "ghcr.io/{0}/thrift-build" -f $env:OWNER.ToLower()
          "DOCKER_IMAGE=$image" | Out-File -FilePath $env:GITHUB_ENV -Append

      - name: Compute Docker image tag
        shell: pwsh
        run: |
          $hash = (Get-FileHash -Algorithm SHA256 'build/docker/msvc/Dockerfile').Hash.ToLower().Substring(0, 12)
          "IMAGE_TAG=msvc-$hash" | Out-File -FilePath $env:GITHUB_ENV -Append

      - name: Log in to GHCR
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Pull cached image
        id: pull_cached
        continue-on-error: true
        shell: pwsh
        run: |
          $needBuild = $true

          Write-Host "Attempting to pull hash-based tag: $($env:DOCKER_IMAGE):$($env:IMAGE_TAG)"
          docker pull "$($env:DOCKER_IMAGE):$($env:IMAGE_TAG)" 2>&1 | Out-Host
          if ($LASTEXITCODE -eq 0) {
            Write-Host "Successfully pulled cached image with hash tag"
            $needBuild = $false
          } else {
            Write-Host "Hash tag not found, no fallback configured. Will build from scratch."
            $needBuild = $true
          }

          Write-Host "Setting outputs: need_build=$needBuild"
          "need_build=$needBuild" >> $env:GITHUB_OUTPUT

      - name: Build Docker image
        if: steps.pull_cached.outputs.need_build == 'true'
        shell: pwsh
        run: |
          Write-Host "Building with tag: $($env:DOCKER_IMAGE):$($env:IMAGE_TAG)"
          docker build -t "$($env:DOCKER_IMAGE):$($env:IMAGE_TAG)" -f build\docker\msvc\Dockerfile 'build\'
          if ($LASTEXITCODE -ne 0) {
            Write-Error "Docker build failed"
            exit 1
          }
          Write-Host "Verifying tags were created:"
          docker images "$($env:DOCKER_IMAGE)"

      - name: Push Docker image
        if: github.event_name != 'pull_request' && steps.pull_cached.outputs.need_build == 'true'
        shell: pwsh
        run: |
          Write-Host "Pushing hash-based tag only: $($env:DOCKER_IMAGE):$($env:IMAGE_TAG)"
          docker push "$($env:DOCKER_IMAGE):$($env:IMAGE_TAG)"
          if ($LASTEXITCODE -ne 0) {
            Write-Error "Failed to push hash-based tag"
            exit 1
          }
          Write-Host "Successfully pushed hash-tagged image"

      - name: Build and test inside container
        shell: pwsh
        run: |
          docker run -v c:\src\thrift:C:\Thrift -v "${env:THRIFT_BUILD_DIR}:C:\build" --rm -t "$($env:DOCKER_IMAGE):$($env:IMAGE_TAG)" c:\thrift\build\docker\msvc\build.bat
          if ($LASTEXITCODE -ne 0) {
            Write-Error "Container build failed with exit code $LASTEXITCODE"
            exit $LASTEXITCODE
          }

      - name: Check test results
        if: always()
        shell: pwsh
        run: |
          $logPath = Join-Path $env:THRIFT_BUILD_DIR 'Testing\Temporary\LastTest.log'
          if (Test-Path $logPath) {
            $content = Get-Content $logPath -Raw
            if ($content -match 'Test Failed\.') {
              Write-Error "Tests failed - check LastTest.log artifact for details"
              exit 1
            } else {
              Write-Host "All tests passed"
            }
          } else {
            Write-Error "LastTest.log not found at $logPath"
            exit 1
          }

      - name: Upload LastTest log
        if: always()
        uses: actions/upload-artifact@v7
        with:
          name: msvc-LastTest-log
          path: ${{ env.THRIFT_BUILD_DIR }}\Testing\Temporary\LastTest.log
          if-no-files-found: warn


================================================
FILE: .github/workflows/publish.yml
================================================
#
# Apache Thrift release publishing workflow
#
# When a release is created in GitHub, it should be created in pre-release
# mode first.  This will trigger a "prereleased" event which will cause this
# workflow to run and publish packages to various package managers.  You
# must check the Actions tab in GitHub to see the result of the workflow.
#
# github.event.action is either "prereleased" or "released" and corresponds
# with a named environment in CloudTruth
#
#           |         Destinations
# Language  | Prereleased   | Released
# ----------+---------------+---------------
# py        | test.pypi.org | pypi.org
#
---
name: Publish

on:
  release:
    types:
      - prereleased
      - released

permissions:
  contents: read

jobs:
  pypi:
    runs-on: ubuntu-latest
    timeout-minutes: 5
    steps:
      - uses: actions/checkout@v6
        with:
          persist-credentials: false
          submodules: recursive
      - uses: actions/setup-python@v6
      - name: Get configuration and secrets from CloudTruth
        uses: ./.github/actions/cloudtruth/configure-action
        with:
          apikey: "${{ secrets.CLOUDTRUTH_API_KEY }}"
          project: "${{ github.repository }}"
          environment: "${{ github.event.action }}"
      - name: build sdist
        run: "cd lib/py && python setup.py sdist"
      - name: Publish to PyPI
        uses: ./.github/actions/pypa/gh-action-pypi-publish
        with:
          password: "${{ env.PYPI_PASSWORD }}"
          repository_url: "${{ env.PYPI_REPOSITORY }}"
          packages_dir: lib/py/dist


================================================
FILE: .github/workflows/pypi.yml
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

name: "PyPI publishing"

on:
  release:
    types: [published]

jobs:
  pypi-publish:
    name: Publish release to PyPI
    runs-on: ubuntu-latest
    # Specifying a GitHub environment is optional, but strongly encouraged
    environment: release
    permissions:
      # IMPORTANT: this permission is mandatory for trusted publishing
      id-token: write
    steps:
      - uses: actions/checkout@v6

      - name: Set up Python
        uses: actions/setup-python@v6
        with:
          python-version: "3.8"

      - name: Build
        run: |
          cd lib/py
          python setup.py sdist

      - name: Publish package distributions to PyPI
        uses: pypa/gh-action-pypi-publish@release/v1
        with:
          packages-dir: lib/py/dist/


================================================
FILE: .github/workflows/release_rust.yml
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

name: Release Rust Packages

on:
  push:
    tags:
      - "*"
  pull_request:
    branches:
      - master
    paths:
      - ".github/workflows/release_rust.yml"
  workflow_dispatch:

jobs:
  publish:
    runs-on: ubuntu-latest
    if: false   # currently broken and no maintainers around -> see THRIFT-5917        
    steps:
      - uses: actions/checkout@v6
      - name: Dryrun
        working-directory: lib/rs
        run: cargo publish --dry-run

      - name: Publish
        working-directory: lib/rs
        # Only publish if it's a tag and the tag is not a pre-release
        if: ${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-') }}
        run: cargo publish
        env:
          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}


================================================
FILE: .github/workflows/sca.yml
================================================
name: "Static Code Analysis"

on:
  push:
    branches: ["*"]
  pull_request:
    branches: ["*"]
  workflow_dispatch:

env:
  BUILD_DEPS: automake bison flex git libboost-all-dev libevent-dev libssl-dev libtool make pkg-config
  SCA_DEPS: cppcheck python3-flake8 sloccount libglib2.0-dev
  # Disable all languages for which we don't have SCA checks in place
  CONFIG_ARGS_FOR_SCA: >
    --enable-tutorial=no
    --disable-debug
    --disable-tests
    --disable-dependency-tracking
    --without-java
    --without-kotlin
    --without-netstd
    --without-nodejs
    --without-nodets
    --without-swift
    --without-go
    --without-dart
    --without-erlang
    --without-haxe
    --without-ruby
    --without-rs
    --without-lua
    --without-perl
    --without-d
    --without-cl

permissions:
  contents: read

jobs:
  sca:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v6

      - name: Install dependencies
        run: |
          sudo apt-get update -yq
          sudo apt-get install -y --no-install-recommends g++ $BUILD_DEPS $SCA_DEPS

      - name: Set up PHP
        uses: shivammathur/setup-php@v2
        with:
          # Lowest supported PHP version
          php-version: "7.1"
          extensions: mbstring, xml, curl, pcntl

      - uses: actions/setup-python@v6
        with:
          python-version: "3.12"

      - name: Install Python test dependencies
        run: |
          python -m pip install --upgrade pip setuptools wheel flake8

      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: "2.7"
          bundler-cache: true
          working-directory: "lib/rb"

      # Generate thrift files so the static code analysis includes an analysis
      # of the files the thrift compiler spits out.
      - name: Build compiler
        id: compile
        run: |
          ./bootstrap.sh
          ./configure $CONFIG_ARGS_FOR_SCA
          make -j$(nproc) -C compiler/cpp

      - name: Run cppcheck
        id: cppcheck
        continue-on-error: true
        run: |
          make -j$(nproc) -C lib/cpp
          make -j$(nproc) -C test/cpp precross

          make -j$(nproc) -C lib/c_glib
          make -j$(nproc) -C test/c_glib precross

          # Compiler cppcheck (All)
          cppcheck --force --quiet --inline-suppr --enable=all -j2 compiler/cpp/src

          # C++ cppcheck (All)
          cppcheck --force --quiet --inline-suppr --enable=all -j2 lib/cpp/src lib/cpp/test test/cpp tutorial/cpp

          # C Glib cppcheck (All)
          cppcheck --force --quiet --inline-suppr --enable=all -j2 lib/c_glib/src lib/c_glib/test test/c_glib/src tutorial/c_glib

          # Silent error checks
          # See THRIFT-4371: flex generated scanner code causes false positives in cppcheck.
          # suppress *:thrift/thriftl.cc -> flex-generated lexer triggers false null pointer paths.
          # suppress syntaxError:thrift/thrifty.cc -> bison-generated parser is not fully parseable.
          # suppress normalCheckLevelMaxBranches:compiler/cpp/src/* -> avoid info-only branch limit noise.
          cppcheck --force --quiet --inline-suppr \
            --suppress="*:thrift/thriftl.cc" \
            --suppress="syntaxError:thrift/thrifty.cc" \
            --suppress="normalCheckLevelMaxBranches:compiler/cpp/src/*" \
            --error-exitcode=1 -j2 compiler/cpp/src

          # suppress unknownMacro:lib/cpp/src/thrift/qt/* -> Qt namespace macro needs Qt preprocessing.
          # suppress unknownMacro:lib/cpp/test/* -> Boost.Test macros are unresolved in standalone analysis.
          # suppress syntaxError:lib/cpp/src/thrift/transport/TSSLSocket.cpp -> OpenSSL macro branches confuse parser.
          # suppress normalCheckLevelMaxBranches:* -> avoid info-only branch limit noise.
          # exclude lib/cpp/test/gen-cpp and test/cpp/gen-* -> generated fixtures duplicate source/test coverage.
          cppcheck --force --quiet --inline-suppr \
            --suppress="unknownMacro:lib/cpp/src/thrift/qt/*" \
            --suppress="unknownMacro:lib/cpp/test/*" \
            --suppress="syntaxError:lib/cpp/src/thrift/transport/TSSLSocket.cpp" \
            --suppress="normalCheckLevelMaxBranches:lib/cpp/src/*" \
            --suppress="normalCheckLevelMaxBranches:lib/cpp/test/*" \
            --suppress="normalCheckLevelMaxBranches:test/cpp/*" \
            --suppress="normalCheckLevelMaxBranches:tutorial/cpp/*" \
            -i lib/cpp/test/gen-cpp \
            -i test/cpp/gen-cpp \
            -i test/cpp/gen-cpp-forward \
            -i test/cpp/gen-cpp-private \
            -i test/cpp/gen-cpp-enumclass \
            --error-exitcode=1 -j2 lib/cpp/src lib/cpp/test test/cpp tutorial/cpp

          # suppress unknownMacro:lib/c_glib/src/* -> GObject type macros are unresolved in standalone analysis.
          # suppress unknownMacro:lib/c_glib/test/* -> test-side GLib macros are unresolved without full preprocess.
          # suppress syntaxError:lib/c_glib/test/* -> GLib assert macros parse as syntax errors.
          # suppress normalCheckLevelMaxBranches:* -> avoid info-only branch limit noise.
          # exclude lib/c_glib/test/gen-c_glib -> generated bindings are covered by generator output checks.
          # exclude lib/c_glib/test/gen-cpp -> generated skeleton has placeholder methods without returns.
          cppcheck --force --quiet --inline-suppr \
            --suppress="unknownMacro:lib/c_glib/src/*" \
            --suppress="unknownMacro:lib/c_glib/test/*" \
            --suppress="syntaxError:lib/c_glib/test/*" \
            --suppress="normalCheckLevelMaxBranches:lib/c_glib/src/*" \
            --suppress="normalCheckLevelMaxBranches:lib/c_glib/test/*" \
            --suppress="normalCheckLevelMaxBranches:test/c_glib/*" \
            --suppress="normalCheckLevelMaxBranches:tutorial/c_glib/*" \
            -i lib/c_glib/test/gen-c_glib \
            -i lib/c_glib/test/gen-cpp \
            --error-exitcode=1 -j2 lib/c_glib/src lib/c_glib/test test/c_glib/src tutorial/c_glib

      - name: Run flake8
        id: flake8
        continue-on-error: true
        run: |
          make -j$(nproc) -C test/py precross

          flake8

      - name: Run phpcs
        id: phpcs
        continue-on-error: true
        run: |
          # PHP code style
          composer install --quiet
          ./vendor/bin/phpcs

      - name: Run rubocop
        id: rubocop
        continue-on-error: true
        working-directory: "lib/rb"
        run: |
          bundle exec rubocop --config .rubocop.yml --format progress --format github . ../../test/rb ../../tutorial/rb

      - name: Print statistics
        if: ${{ always() }}
        run: |
          # TODO etc
          echo "FIXMEs: $(grep -r FIXME * | wc -l)"
          echo "HACKs: $(grep -r HACK * | wc -l)"
          echo "TODOs: $(grep -r TODO * | wc -l)"

          # LoC
          sloccount .

          # System info
          # dpkg -l
          uname -a

      - name: Fail if any SCA check failed
        if: ${{ always() && steps.compile.outcome == 'success' }}
        env:
          CPPCHECK_OUTCOME: ${{ steps.cppcheck.outcome }}
          FLAKE8_OUTCOME: ${{ steps.flake8.outcome }}
          PHPCS_OUTCOME: ${{ steps.phpcs.outcome }}
          RUBOCOP_OUTCOME: ${{ steps.rubocop.outcome }}
        run: |
          failed=0

          if [ "$CPPCHECK_OUTCOME" != "success" ]; then
            echo "::error::Step 'cppcheck' failed (outcome: $CPPCHECK_OUTCOME)"
            failed=1
          fi
          if [ "$FLAKE8_OUTCOME" != "success" ]; then
            echo "::error::Step 'flake8' failed (outcome: $FLAKE8_OUTCOME)"
            failed=1
          fi
          if [ "$PHPCS_OUTCOME" != "success" ]; then
            echo "::error::Step 'phpcs' failed (outcome: $PHPCS_OUTCOME)"
            failed=1
          fi
          if [ "$RUBOCOP_OUTCOME" != "success" ]; then
            echo "::error::Step 'rubocop' failed (outcome: $RUBOCOP_OUTCOME)"
            failed=1
          fi

          exit $failed


================================================
FILE: .gitignore
================================================
# generic ignores
*.la
*.lo
*.o
*.deps
*.dirstamp
*.libs
*.log
*.trs
*.suo
*.pyc
*.cache
*.user
*.ipch
*.sdf
*.jar
*.exe
*.dll
*_ReSharper*
*.opensdf
*.swp
*.hi
*~
tags

.*project
.classpath
.dub
.settings
.checkstyle
junit*.properties
.idea
*.iml
*.ipr
*.iws
gen-*
Makefile
Makefile.in
aclocal.m4
acinclude.m4
apache-thrift-test-library
autom4te.cache
cmake-*
dub.selections.json
libapache-thrift.a
node_modules
compile
test-driver
erl_crash.dump
project.lock.json

.Dockerfile.sha512
.sonar
.DS_Store
.svn
.vagrant
.vscode
.vs

/aclocal/libtool.m4
/aclocal/lt*.m4
/autoscan.log
/autoscan-*.log
/cmake_*
/compiler/cpp/compiler.VC.db
/compiler/cpp/compiler.VC.VC.opendb
/compiler/cpp/test/plugin/t_cpp_generator.cc
/compiler/cpp/src/thrift/plugin/plugin_constants.cpp
/compiler/cpp/src/thrift/plugin/plugin_constants.h
/compiler/cpp/src/thrift/plugin/plugin_types.cpp
/compiler/cpp/src/thrift/plugin/plugin_types.h
/compiler/cpp/test/*test
/compiler/cpp/test/thrift-gen-*
/compiler/cpp/src/thrift/thrift-bootstrap
/compiler/cpp/src/thrift/plugin/gen.stamp
/compiler/cpp/Debug
/compiler/cpp/Release
/compiler/cpp/compiler/Debug
/compiler/cpp/compiler/Release
/compiler/cpp/src/thrift/libparse.a
/compiler/cpp/src/thrift/thriftl.cc
/compiler/cpp/src/thrift/thrifty.cc
/compiler/cpp/src/thrift/thrifty.hh
/compiler/cpp/src/thrift/windows/version.h
/compiler/cpp/thrift
/compiler/cpp/thriftl.cc
/compiler/cpp/thrifty.cc
/compiler/cpp/lex.yythriftl.cc
/compiler/cpp/thrifty.h
/compiler/cpp/thrifty.hh
/compiler/cpp/src/thrift/version.h
/config.*
/configure
/configure.lineno
/configure.scan
/contrib/.vagrant/
/contrib/fb303/config.cache
/contrib/fb303/config.log
/contrib/fb303/config.status
/contrib/fb303/configure
/contrib/fb303/cpp/libfb303.a
/contrib/fb303/java/build/
/contrib/fb303/py/build/
/contrib/fb303/py/fb303/FacebookService-remote
/contrib/fb303/py/fb303/FacebookService.py
/contrib/fb303/py/fb303/__init__.py
/contrib/fb303/py/fb303/constants.py
/contrib/fb303/py/fb303/ttypes.py
/contrib/thrift-maven-plugin/target/
/depcomp
/install-sh
/lib/cl/backport-update.zip
/lib/cl/lib
/lib/cl/run-tests
/lib/cl/quicklisp.lisp
/lib/cl/externals/
/lib/cl/run-tests
/lib/cl/quicklisp/
/lib/cpp/Debug/
/lib/cpp/Debug-mt/
/lib/cpp/Release/
/lib/cpp/Release-mt/
/lib/cpp/src/thrift/qt/moc_TQTcpServer.cpp
/lib/cpp/src/thrift/qt/moc__TQTcpServer.cpp
/lib/cpp/src/thrift/config.h
/lib/cpp/src/thrift/stamp-h2
/lib/cpp/test/Benchmark
/lib/cpp/test/AllProtocolsTest
/lib/cpp/test/AnnotationTest
/lib/cpp/test/DebugProtoTest
/lib/cpp/test/DenseProtoTest
/lib/cpp/test/EnumTest
/lib/cpp/test/JSONProtoTest
/lib/cpp/test/OptionalRequiredTest
/lib/cpp/test/SecurityTest
/lib/cpp/test/SpecializationTest
/lib/cpp/test/RecursiveTest
/lib/cpp/test/ReflectionTest
/lib/cpp/test/RenderedDoubleConstantsTest
/lib/cpp/test/TFDTransportTest
/lib/cpp/test/TFileTransportTest
/lib/cpp/test/TInterruptTest
/lib/cpp/test/TNonblockingServerTest
/lib/cpp/test/TNonblockingSSLServerTest
/lib/cpp/test/TPipedTransportTest
/lib/cpp/test/TServerIntegrationTest
/lib/cpp/test/TSocketInterruptTest
/lib/cpp/test/TransportTest
/lib/cpp/test/UnitTests
/lib/cpp/test/ZlibTest
/lib/cpp/test/OpenSSLManualInitTest
/lib/cpp/test/concurrency_test
/lib/cpp/test/link_test
/lib/cpp/test/processor_test
/lib/cpp/test/tests.xml
/lib/cpp/concurrency_test
/lib/cpp/*.pc
/lib/cpp/x64/Debug/
/lib/cpp/x64/Debug-mt/
/lib/cpp/x64/Release
/lib/cpp/x64/Release-mt
/lib/c_glib/*.gcda
/lib/c_glib/*.gcno
/lib/c_glib/*.loT
/lib/c_glib/src/thrift/config.h
/lib/c_glib/src/thrift/stamp-h3
/lib/c_glib/test/*.gcno
/lib/c_glib/test/testwrapper.sh
/lib/c_glib/test/testwrapper-test*
/lib/c_glib/test/testapplicationexception
/lib/c_glib/test/testbinaryprotocol
/lib/c_glib/test/testcompactprotocol
/lib/c_glib/test/testbufferedtransport
/lib/c_glib/test/testcontainertest
/lib/c_glib/test/testdebugproto
/lib/c_glib/test/testfdtransport
/lib/c_glib/test/testframedtransport
/lib/c_glib/test/testmemorybuffer
/lib/c_glib/test/testoptionalrequired
/lib/c_glib/test/testtransportsslsocket
/lib/c_glib/test/testsimpleserver
/lib/c_glib/test/teststruct
/lib/c_glib/test/testthrifttest
/lib/c_glib/test/testthrifttestclient
/lib/c_glib/test/testtransportsocket
/lib/c_glib/test/testserialization
/lib/c_glib/thriftc.pc
/lib/c_glib/thrift_c_glib.pc
/lib/d/test/*.pem
/lib/d/libthriftd*.a
/lib/d/test/async_test
/lib/d/test/client_pool_test
/lib/d/test/serialization_benchmark
/lib/d/test/stress_test_server
/lib/d/test/thrift_test_client
/lib/d/test/thrift_test_server
/lib/d/test/transport_test
/lib/d/unittest/
/lib/dart/coverage
/lib/dart/**/.dart_tool
/lib/dart/**/.packages
/lib/dart/**/packages
/lib/dart/**/.pub/
/lib/dart/**/pubspec.lock
/lib/delphi/*.local
/lib/delphi/*.identcache
/lib/delphi/test/skip/bin
/lib/delphi/test/serializer/**/*.dat
/lib/delphi/test/serializer/bin
/lib/delphi/test/thrift-testing/*.thrift
/lib/delphi/**/*.identcache
/lib/delphi/**/*.local
/lib/delphi/**/*.dcu
/lib/delphi/**/*.2007
/lib/erl/.eunit
/lib/erl/.generated
/lib/erl/.rebar/
/lib/erl/_build/
/lib/erl/ebin
/lib/erl/rebar.lock
/lib/erl/src/thrift.app.src
/lib/erl/test/*.beam
/lib/erl/test/*.hrl
/lib/erl/test/Thrift_omit_without.thrift
/lib/haxe/test/bin
/lib/haxe/test/data.tmp
/lib/hs/dist
/lib/java/.gradle
/lib/java/gradle/wrapper
/lib/java/gradlew
/lib/java/gradlew.bat
/lib/java/android/.gradle
/lib/java/build
/lib/java/out
/lib/java/target
/lib/js/dist
/lib/js/doc
/lib/js/test/build
/lib/kotlin/cross-test-client/build/
/lib/kotlin/cross-test-server/build/
/lib/kotlin/build/
/lib/kotlin/.gradle/
/lib/kotlin/gradle/
/lib/kotlin/gradlew
/lib/kotlin/gradlew.bat
/lib/netstd/**/bin
/lib/netstd/**/obj
/lib/nodejs/coverage
/lib/nodejs/node_modules/
/lib/perl/MANIFEST
/lib/perl/MYMETA.json
/lib/perl/MYMETA.yml
/lib/perl/Makefile-perl.mk
/lib/perl/blib
/lib/perl/pm_to_blib
/lib/py/build
/lib/py/thrift.egg-info/
/lib/rb/debug_proto_test
/lib/rb/.config
/lib/rb/ext/conftest.dSYM/
/lib/rb/ext/mkmf.log
/lib/rb/ext/thrift_native.bundle
/lib/rb/ext/thrift_native.so
/lib/rb/test/debug_proto/
/lib/rb/thrift-*.gem
/lib/php/src/ext/thrift_protocol/Makefile.*
/lib/php/src/ext/thrift_protocol/build/
/lib/php/src/ext/thrift_protocol/config.*
/lib/php/src/ext/thrift_protocol/configure
/lib/php/src/ext/thrift_protocol/configure.ac
/lib/php/src/ext/thrift_protocol/configure.in
/lib/php/src/ext/thrift_protocol/install-sh
/lib/php/src/ext/thrift_protocol/libtool
/lib/php/src/ext/thrift_protocol/ltmain.sh
/lib/php/src/ext/thrift_protocol/missing
/lib/php/src/ext/thrift_protocol/mkinstalldirs
/lib/php/src/ext/thrift_protocol/modules/
/lib/php/src/ext/thrift_protocol/php_thrift_protocol.lo
/lib/php/src/ext/thrift_protocol/php_thrift_protocol.loT
/lib/php/src/ext/thrift_protocol/run-tests.php
/lib/php/src/ext/thrift_protocol/thrift_protocol.la
/lib/php/src/ext/thrift_protocol/tmp-php.ini
/lib/php/tests/Resources/packages/
/lib/php/test/test-log-junit.xml
/lib/py/dist/
/lib/erl/logs/
/lib/go/pkg
/lib/go/src
/lib/go/test/fuzz/gopathfuzz
/lib/go/test/gopath/
/lib/go/test/ThriftTest*.thrift
/lib/nodets/test-compiled/
/lib/ocaml/_build/
/lib/ocaml/_tags
/lib/ocaml/configure
/lib/ocaml/setup.data
/lib/ocaml/setup.ml
/lib/ocaml/myocamlbuild.ml
/lib/ocaml/*/META
/lib/ocaml/*/*.mllib
/lib/ocaml/*/*.mldylib
/lib/ocaml/Makefile
/lib/ocaml/OCamlMakefile
/lib/rs/target/
/lib/rs/Cargo.lock
/lib/rs/test/Cargo.lock
/lib/rs/test/target/
/lib/rs/test/bin/
/lib/rs/test/src/base_one.rs
/lib/rs/test/src/base_two.rs
/lib/rs/test/src/midlayer.rs
/lib/rs/test/src/recursive.rs
/lib/rs/test/src/ultimate.rs
/lib/rs/test/src/identifiers.rs
/lib/rs/test_recursive/Cargo.lock
/lib/rs/test_recursive/src/vehicles.rs
/lib/rs/test_recursive/src/maintenance/maintenance_facility.rs
/lib/rs/test_recursive/src/transit/buses.rs
/lib/rs/test_recursive/src/transit/trains.rs
/lib/rs/test_recursive/src/transit/transporters.rs
/lib/rs/test_recursive/src/transit/light/light_rail.rs
/lib/rs/test_recursive/src/transit/light/streetcars.rs
/lib/rs/test_recursive/src/transit/services/city_services.rs
/lib/rs/test_recursive/target/
/lib/rs/test_recursive/bin/
/lib/rs/*.iml
/lib/rs/**/*.iml
/lib/swift/.build
/lib/ts/test/build/
/lib/ts/test/gen-*
/libtool
/ltmain.sh
/missing
/node_modules/
/vendor/
/composer.lock
/stamp-h1
/test/features/results.json
/test/results.json
/test/c_glib/test_client
/test/c_glib/test_server
/test/cl/TestServer
/test/cl/TestClient
/test/cpp/StressTest
/test/cpp/StressTestNonBlocking
/test/cpp/TestClient
/test/cpp/TestServer
/test/dart/**/.dart_tool
/test/dart/**/.packages
/test/dart/**/packages
/test/dart/**/.pub/
/test/dart/**/pubspec.lock
/test/log/
/test/test.log
/test/erl/.generated
/test/erl/.rebar
/test/erl/ebin
/test/erl/_build/
/test/erl/rebar.lock
/test/go/bin/
/test/go/ThriftTest*.thrift
/test/go/gopath
/test/go/pkg/
/test/go/src/code.google.com/
/test/go/src/common/mock_handler.go
/test/go/src/github.com/golang/
/test/go/src/golang.org/
/test/go/src/gen/
/test/go/src/thrift
/test/haxe/bin
/test/haxe/.buildtemp
/test/hs/TestClient
/test/hs/TestServer
/test/php/php_ext_dir/
/test/py.twisted/_trial_temp/
/test/netstd/**/bin
/test/netstd/**/obj
/test/netstd/**/launchSettings.json
/test/netstd/*.psess
/test/netstd/*.vspx
/test/netstd/*.vsp
/test/netstd/*.diagsession
/test/netstd/Client/ThriftTest
/test/netstd/Server/ThriftTest
/test/netstd/Thrift
/test/php/php_ext_dir/
/test/rs/Cargo.lock
/test/rs/src/thrift_test.rs
/test/rs/bin/
/test/rs/target/
/test/rs/*.iml
/test/rs/**/*.iml
/test/swift/CrossTests/.build
/lib/cl/backport-update.zip
/lib/cl/lib
/tutorial/cl/quicklisp.lisp
/tutorial/cl/externals/
/tutorial/cl/quicklisp/
/tutorial/cl/TutorialClient
/tutorial/cl/TutorialServer
/tutorial/cl/backport-update.zip
/tutorial/cl/lib/
/tutorial/cl/shared-implementation.fasl
/tutorial/cl/tutorial-implementation.fasl
/tutorial/cpp/TutorialClient
/tutorial/cpp/TutorialServer
/tutorial/c_glib/tutorial_client
/tutorial/c_glib/tutorial_server
/tutorial/d/async_client
/tutorial/d/client
/tutorial/d/server
/tutorial/dart/**/.packages
/tutorial/dart/**/packages
/tutorial/dart/**/.pub/
/tutorial/dart/**/pubspec.lock
/tutorial/delphi/**/*.dsk
/tutorial/delphi/**/*.local
/tutorial/delphi/**/*.tvsconfig
/tutorial/delphi/**/dcu
/tutorial/delphi/**/*.local
/tutorial/delphi/**/*.identcache
/tutorial/go/gopath
/tutorial/go/go-tutorial
/tutorial/go/calculator-remote
/tutorial/go/src/shared
/tutorial/go/src/tutorial
/tutorial/go/src/git.apache.org
/tutorial/go/src/golang.org
/tutorial/haxe/bin
/tutorial/hs/dist/
/tutorial/java/build/
/tutorial/js/build/
/tutorial/netstd/**/bin
/tutorial/netstd/**/obj
/tutorial/netstd/Interfaces
/tutorial/rs/*.iml
/tutorial/rs/src/shared.rs
/tutorial/rs/src/tutorial.rs
/tutorial/rs/bin
/tutorial/rs/target
/tutorial/rs/Cargo.lock
/tutorial/netstd/Interfaces/shared
/tutorial/netstd/Interfaces/tutorial
/tutorial/netstd/Server/Properties/launchSettings.json
/tutorial/netstd/Client/Properties/launchSettings.json
/ylwrap

# Unit test generated artifacts

CMakeCache.txt
CMakeFiles
compiler/cpp/tests/*.cmake
compiler/cpp/tests/Testing/
compiler/cpp/tests/bin/
compiler/cpp/tests/*.a
compiler/cpp/tests/build/
compiler/cpp/build/


================================================
FILE: .gitmodules
================================================
[submodule ".github/actions/cloudtruth/configure-action"]
	path = .github/actions/cloudtruth/configure-action
	url = https://github.com/cloudtruth/configure-action
[submodule ".github/actions/pypa/gh-action-pypi-publish"]
	path = .github/actions/pypa/gh-action-pypi-publish
	url = https://github.com/pypa/gh-action-pypi-publish


================================================
FILE: .travis.yml
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

# build Apache Thrift on Travis CI - https://travis-ci.com/

#
# Docker Integration
# see: build/docker/README.md
#

sudo: required
# https://docs.travis-ci.com/user/reference/linux
dist: focal
language: cpp

services:
  - docker

install:
  # https://docs.travis-ci.com/user/common-build-problems/#build-times-out-because-no-output-was-received
  # adding `travis_wait` because kerl building in the docker file takes >10 min for building erlang
  # without printing to stdout, resulting in build failures
  - if [[ `uname` == "Linux" ]]; then travis_wait 40 build/docker/refresh.sh; fi

stages:
  - docker    # docker images
  - thrift    # thrift build jobs

env:
  global:
    - SCRIPT="cmake.sh"
    - BUILD_ARG=""
    - BUILD_ENV="-e CC=gcc -e CXX=g++ -e THRIFT_CROSSTEST_CONCURRENCY=4"
    - DISTRO=ubuntu-focal
    - BUILD_LIBS="CPP C_GLIB JAVA PYTHON TESTING TUTORIALS"  # only meaningful for CMake builds
    - TRAVIS_BUILD_STAGE=test
    # DOCKER_REPO (this works for all builds as a source for docker images - you can override for fork builds in your Travis settings)
    - DOCKER_REPO="thrift/thrift-build"
    # DOCKER_USER (provide in your Travis settings if you want to build and update docker images once, instead of on every job)
    # DOCKER_PASS (same)

jobs:
  include:
    # ========================= stage: docker =========================
    - script: true
      env:
        - JOB="Docker Build ubuntu-focal 20.04 LTS"
        - DISTRO=ubuntu-focal
        - TRAVIS_BUILD_STAGE=docker
    - script: true
      env:
        - JOB="Docker Build ubuntu-jammy 22.04 LTS"
        - DISTRO=ubuntu-jammy
        - TRAVIS_BUILD_STAGE=docker
    - script: true
      env:
        - JOB="Docker Build ubuntu-noble 24.04 LTS"
        - DISTRO=ubuntu-noble
        - TRAVIS_BUILD_STAGE=docker

    # ========================= stage: thrift =======================
    # ------------------------- phase: cross ------------------------
    - stage: thrift
      script: build/docker/run.sh
      env:
        - JOB="Cross Language Tests (Binary Protocol)"
        - SCRIPT="cross-test.sh"
        - BUILD_ARG="-'(binary)'"

    - stage: thrift
      script: build/docker/run.sh
      env:
        - JOB="Cross Language Tests (Header, JSON Protocols)"
        - SCRIPT="cross-test.sh"
        - BUILD_ARG="-'(header|json)'"

    - stage: thrift
      script: build/docker/run.sh
      env:
        - JOB="Cross Language Tests (Compact and Multiplexed Protocols)"
        - SCRIPT="cross-test.sh"
        - BUILD_ARG="-'(compact|multiplexed)'"

    # ------------------------- phase: sca --------------------------
    # QA jobs for code analytics and metrics
    - stage: thrift
      script: build/docker/run.sh
      env:
        - JOB="Static Code Analysis"
        - SCRIPT="sca.sh"

    # C and C++ undefined behavior.
    # A binary crashes if undefined behavior occurs and produces a stack trace.
    # python is disabled, see: THRIFT-4360
    - script: build/docker/run.sh
      env:
        - JOB="UBSan"
        - SCRIPT="ubsan.sh"
        - BUILD_ARG="--without-python --without-py3"

    # ------------------------- phase: autotools --------------------
    # TODO: Remove them once migrated to CMake

    # TODO fix the missing python2 deps or get rid of python2
    # - script: build/docker/run.sh
    #   env:
    #     - JOB="Autotools (Ubuntu Jammy)"
    #     - DISTRO=ubuntu-jammy
    #     - SCRIPT="autotools.sh"

    - script: build/docker/run.sh
      env:
        - JOB="Autotools (Ubuntu Focal)"
        - DISTRO=ubuntu-focal
        - SCRIPT="autotools.sh"

    # ------------------------- phase: cmake ------------------------
    - script: build/docker/run.sh
      env:
        - JOB="CMake"
        - BUILD_ARG="-DCMAKE_BUILD_TYPE=Debug"

    - script: build/docker/run.sh
      env:
        - JOB="CMake"
        - BUILD_ARG="-DCMAKE_BUILD_TYPE=Release"

    # ------------------------- phase: dist -------------------------
    - script: build/docker/run.sh
      env:
        - JOB="make dist"
        - SCRIPT="make-dist.sh"

    - script: build/docker/run.sh
      env:
        - JOB="Debian Packages"
        - SCRIPT="dpkg.sh"

    # ------------------------- phase: coverity ---------------------
    # We build the coverity scan build once monthly using a travis cron job
    - if: (env(COVERITY_SCAN_NOTIFICATION_EMAIL) IS present) AND (branch IN (master)) AND (type IN (cron))
      script: build/docker/run.sh
      env:
        - JOB="Coverity Scan"
        - SCRIPT="covscan.sh"

    # ------------------------- phase: swift ------------------------
    # We lint the podspec
    - os: osx
      osx_image: xcode11.3
      language: swift
      script:
        - gem update cocoapods
        - pod lib lint --allow-warnings --swift-version=5.1
      env:
        - JOB="pod lib lint"

  ### ------------------------- phase: osx --------------------------
  # disabled due to the time delays it imposes on build jobs
  # - os: osx
  #   osx_image: xcode9
  #   script: build/docker/scripts/autotools.sh



================================================
FILE: ApacheThrift.nuspec
================================================
<?xml version="1.0"?>

<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
      http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

  Instructions for building a nuget package:

  1. Open Thrift.sln in lib\netstd and build the release version of
     the "Thrift" project.
  2. nuget setApiKey <your-api-key>
  3. nuget pack ApacheThrift.nuspec -Symbols -SymbolPackageFormat snupkg
  4. nuget push ApacheThrift.0.23.0.nupkg -Source https://api.nuget.org/v3/index.json
  -->

<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>ApacheThrift</id>
    <version>0.23.0</version>
    <title>Apache Thrift 0.23.0</title>
    <authors>Apache Thrift Developers</authors>
    <owners>Apache Software Foundation</owners>
    <license type="expression">Apache-2.0</license>
    <projectUrl>http://thrift.apache.org/</projectUrl>
    <requireLicenseAcceptance>true</requireLicenseAcceptance>
    <summary>Apache Thrift .NET Library</summary>
    <description>
      Contains runtime libraries from lib/netstd for netstandard2.0 framework development.
    </description>
    <repository type="GitHub" url="https://github.com/apache/thrift" branch="release/0.23.0" />
    <tags>Apache Thrift RPC</tags>
  </metadata>
  <files>
    <file src="lib\netstd\Thrift\bin\Release\netstandard2.0\*.*" target="lib\netstandard2.0" />
  </files>
</package>

================================================
FILE: CHANGES.md
================================================
# Apache Thrift Changelog

## 0.22.0

### Build Process

- [THRIFT-5836](https://issues.apache.org/jira/browse/THRIFT-5836) - 0.21.0 fails to build from sources at Arch Linux: No rule to make target 'Thrift5272.thrift', needed by 'gen-cpp/Thrift5272_types.h'
- [THRIFT-5860](https://issues.apache.org/jira/browse/THRIFT-5860) - cmake 3.5 as a minimum version does not work with cmake 4.0.0

### C glib

- [THRIFT-5817](https://issues.apache.org/jira/browse/THRIFT-5817) - Avoid copy of TUuid

### C++

- [THRIFT-5637](https://issues.apache.org/jira/browse/THRIFT-5637) - Thrift compiler should be able to output c++ Aggregate types
- [THRIFT-5667](https://issues.apache.org/jira/browse/THRIFT-5667) - Make ThriftConfig.cmake relocatable
- [THRIFT-5817](https://issues.apache.org/jira/browse/THRIFT-5817) - Avoid copy of TUuid
- [THRIFT-5821](https://issues.apache.org/jira/browse/THRIFT-5821) - Cannot compile against aws-lc libcrypto (openssl replacement from AWS)
- [THRIFT-5841](https://issues.apache.org/jira/browse/THRIFT-5841) - possible init/deinit conflict with manual initialization flag
- [THRIFT-5853](https://issues.apache.org/jira/browse/THRIFT-5853) - Remove oldstyle casts from TBufferTransports and TCompactProtocol
- [THRIFT-5854](https://issues.apache.org/jira/browse/THRIFT-5854) - TCompactProtocol readString checks maxMessageSize at wrong position and off by one
- [THRIFT-5868](https://issues.apache.org/jira/browse/THRIFT-5868) - UUID Support for TCompactProtocol
- [THRIFT-5865](https://issues.apache.org/jira/browse/THRIFT-5865) - Fix TBinayProtocol with `list<UUID>`


### Compiler (General)

- [THRIFT-5823](https://issues.apache.org/jira/browse/THRIFT-5823) - Fix illegal uses of exceptions as normal struct type
- [THRIFT-5835](https://issues.apache.org/jira/browse/THRIFT-5835) - Allow exceptions to be used as regular struct datatype

### Delphi

- [THRIFT-5822](https://issues.apache.org/jira/browse/THRIFT-5822) - Remove deprecated AnsiString functions from the library
- [THRIFT-5824](https://issues.apache.org/jira/browse/THRIFT-5824) - Migrate, refactor and improve Delphi code generation test script
- [THRIFT-5825](https://issues.apache.org/jira/browse/THRIFT-5825) - UUID constants lead to uncompileable Delphi code
- [THRIFT-5826](https://issues.apache.org/jira/browse/THRIFT-5826) - binary constants create uncompilable Delphi code
- [THRIFT-5827](https://issues.apache.org/jira/browse/THRIFT-5827) - enums in typedefs are not resolved in all cases
- [THRIFT-5837](https://issues.apache.org/jira/browse/THRIFT-5837) - Delphi implementation for THRIFT-5835
- [THRIFT-5839](https://issues.apache.org/jira/browse/THRIFT-5839) - incorrect cast under Win64
- [THRIFT-5850](https://issues.apache.org/jira/browse/THRIFT-5850) - Switch IThriftConfiguration interface from Cardinal to Integer
- [THRIFT-5851](https://issues.apache.org/jira/browse/THRIFT-5851) - Promote known total stream sizes for seekable stream transports properly
- [THRIFT-5856](https://issues.apache.org/jira/browse/THRIFT-5856) - Client should validate HTTP status

### Go

- [THRIFT-5833](https://issues.apache.org/jira/browse/THRIFT-5833) - go: Combine I/O and original error in compiler generated Process functions
- [THRIFT-5845](https://issues.apache.org/jira/browse/THRIFT-5845) - The write error for union fields should be TException
- [THRIFT-5859](https://issues.apache.org/jira/browse/THRIFT-5859) - go: Generate a map for know values of an enum type

### Java

- [THRIFT-5858](https://issues.apache.org/jira/browse/THRIFT-5858) - Introduce new type MESSAGE_SIZE_LIMIT in TTransportException

### netstd

- [THRIFT-5832](https://issues.apache.org/jira/browse/THRIFT-5832) - Drop net6 support and add net9 instead
- [THRIFT-5838](https://issues.apache.org/jira/browse/THRIFT-5838) - THttpTransport.FlushAsync does not include original exception
- [THRIFT-5852](https://issues.apache.org/jira/browse/THRIFT-5852) - Promote known total stream sizes for seekable stream transports

### Node.js

- [THRIFT-5811](https://issues.apache.org/jira/browse/THRIFT-5811) - Add ES module support to JS codegen
- [THRIFT-5848](https://issues.apache.org/jira/browse/THRIFT-5848) - Expose InputBufferUnderrunError in nodejs client
- [THRIFT-5849](https://issues.apache.org/jira/browse/THRIFT-5849) - Expose createClient in browser version of nodejs package

### PHP

- [THRIFT-1482](https://issues.apache.org/jira/browse/THRIFT-1482) - Unix domain socket support under PHP
- [THRIFT-5829](https://issues.apache.org/jira/browse/THRIFT-5829) - PHP lib Use of "static" in callables is deprecated notice

### Python

- [THRIFT-5024](https://issues.apache.org/jira/browse/THRIFT-5024) - tutorial\py.tornado\PythonServer.py failed under Tornado6
- [THRIFT-5847](https://issues.apache.org/jira/browse/THRIFT-5847) - Python3.12 deprecation in THttpClient
- [THRIFT-5857](https://issues.apache.org/jira/browse/THRIFT-5857) - Remove deprecated Tornado io_loop usage
- [THRIFT-5861](https://issues.apache.org/jira/browse/THRIFT-5861) - Add isOpen method to TTornadoStreamTransport

### Swift

- [THRIFT-4838](https://issues.apache.org/jira/browse/THRIFT-4838) - add unix domain socket support to Swift TSocketTransport implementation 


## 0.21.0

### Build Process	

- [THRIFT-5815](https://issues.apache.org/jira/browse/THRIFT-5815) - veralign.sh broken and incomplete
- [THRIFT-5810](https://issues.apache.org/jira/browse/THRIFT-5810) - Wrong installation path for static MSVC libs.
- [THRIFT-5755](https://issues.apache.org/jira/browse/THRIFT-5755) - Docker image build fail

### C++

- [THRIFT-5272](https://issues.apache.org/jira/browse/THRIFT-5272) - printTo does not properly handle i8 datatypes
- [THRIFT-5492](https://issues.apache.org/jira/browse/THRIFT-5492) - Bogus END_OF_FILE exception
- [THRIFT-5678](https://issues.apache.org/jira/browse/THRIFT-5678) - TConnectedClient: warning due to non-virtual dtor
- [THRIFT-5682](https://issues.apache.org/jira/browse/THRIFT-5682) - UB in generated C++ code	 stops compiling with C++20"
- [THRIFT-5709](https://issues.apache.org/jira/browse/THRIFT-5709) - Drastically improve `to_num()` performace
- [THRIFT-5772](https://issues.apache.org/jira/browse/THRIFT-5772) - Add UUID support for C++
- [THRIFT-5773](https://issues.apache.org/jira/browse/THRIFT-5773) - UUID wrapper for C++
- [THRIFT-5816](https://issues.apache.org/jira/browse/THRIFT-5816) - Fix UUID for boost 1.86.0 (change in data member usage)

### Compiler (General)	

- [THRIFT-5800](https://issues.apache.org/jira/browse/THRIFT-5800) - "Could not find include file foo.thrift" probably should be failure instead of warning
- [THRIFT-5766](https://issues.apache.org/jira/browse/THRIFT-5766) - Replace std::endl with "\n"

### Delphi	

- [THRIFT-5789](https://issues.apache.org/jira/browse/THRIFT-5789) - Refactor test suite client implementation
- [THRIFT-5782](https://issues.apache.org/jira/browse/THRIFT-5782) - implement full deprecation support
- [THRIFT-5750](https://issues.apache.org/jira/browse/THRIFT-5750) - Remove "ansistr_binary_" option
- [THRIFT-5788](https://issues.apache.org/jira/browse/THRIFT-5788) - Refactor and streamline hash set implementation
- [THRIFT-5765](https://issues.apache.org/jira/browse/THRIFT-5765) - Extra override for WriteBinary() to avoid unnecessary memory allocations when using COM types
- [THRIFT-5764](https://issues.apache.org/jira/browse/THRIFT-5764) - Extra CTOR for TThriftBytesImpl

### Go

- [THRIFT-5786](https://issues.apache.org/jira/browse/THRIFT-5786) - Full deprecation support for go
- [THRIFT-5654](https://issues.apache.org/jira/browse/THRIFT-5654) - LNK4042 and LNK2019 in go_validator_generator.cc
- [THRIFT-5784](https://issues.apache.org/jira/browse/THRIFT-5784) - go: Add THeaderTransforms to TConfiguration

### Java

- [THRIFT-5762](https://issues.apache.org/jira/browse/THRIFT-5762) - Expose service result objects in Java
- [THRIFT-5530](https://issues.apache.org/jira/browse/THRIFT-5530) - could not resolve plugin artifact 'com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin:4.0.4'
- [THRIFT-5230](https://issues.apache.org/jira/browse/THRIFT-5230) - Fix connection leak and CancelledKeyException when handling Epoll bug
- [THRIFT-4847](https://issues.apache.org/jira/browse/THRIFT-4847) - CancelledKeyException causes TThreadedSelectorServer to fail.

### JSON

- [THRIFT-5761](https://issues.apache.org/jira/browse/THRIFT-5761) - Lib/json tests fail

### netstd

- [THRIFT-5798](https://issues.apache.org/jira/browse/THRIFT-5798) - Expand netstd compile tests to fully cover all current target environments
- [THRIFT-5797](https://issues.apache.org/jira/browse/THRIFT-5797) - HashSet() CTOR takes no argument for net < 5
- [THRIFT-5796](https://issues.apache.org/jira/browse/THRIFT-5796) - Indicate target environment via #if check
- [THRIFT-5795](https://issues.apache.org/jira/browse/THRIFT-5795) - namespace not properly escaped
- [THRIFT-5794](https://issues.apache.org/jira/browse/THRIFT-5794) - Uncompilable C# code in 0.20.0
- [THRIFT-5781](https://issues.apache.org/jira/browse/THRIFT-5781) - implement full deprecation support
- [THRIFT-5780](https://issues.apache.org/jira/browse/THRIFT-5780) - Prevent certain warnings related to net8
- [THRIFT-5787](https://issues.apache.org/jira/browse/THRIFT-5787) - .NET ApacheThrift client v20.0 breaks compatibility in TBinaryProtocol.Factory constructor
- [THRIFT-5783](https://issues.apache.org/jira/browse/THRIFT-5783) - drop net7 support

### Node.js

- [THRIFT-5769](https://issues.apache.org/jira/browse/THRIFT-5769) - Large messages crash Node.js client when using TFramedTransport

### PHP

- [THRIFT-5760](https://issues.apache.org/jira/browse/THRIFT-5760) - Update minimal version of php
- [THRIFT-5758](https://issues.apache.org/jira/browse/THRIFT-5758) - PHP 8.2 Deprecate dynamic properties
- [THRIFT-5756](https://issues.apache.org/jira/browse/THRIFT-5756) - Run php tests in github actions

### Python

- [THRIFT-4181](https://issues.apache.org/jira/browse/THRIFT-4181) - PEP 484 Type Hinting on generated code
- [THRIFT-5813](https://issues.apache.org/jira/browse/THRIFT-5813) - Clarify TSocket state after isOpen
- [THRIFT-5777](https://issues.apache.org/jira/browse/THRIFT-5777) - timeout exception mismatched
- [THRIFT-5139](https://issues.apache.org/jira/browse/THRIFT-5139) - Type hinting for Python library

### Rust

- [THRIFT-5812](https://issues.apache.org/jira/browse/THRIFT-5812) - Capacity overflow in Rust server


## 0.20.0

### Known Open Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++ library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
- [THRIFT-5468](https://issues.apache.org/jira/browse/THRIFT-5468) - Swift service generator doesn't support oneway
- [THRIFT-5654](https://issues.apache.org/jira/browse/THRIFT-5654) - LNK4042 and LNK2019 in go_validator_generator.cc

### Build Process

- [THRIFT-5747]https://issues.apache.org/jira/browse/THRIFT-5747 - warning: The macro `AC_HELP_STRING' is obsolete. You should run autoupdate. and some more warnings

### C++

- [THRIFT-5670]https://issues.apache.org/jira/browse/THRIFT-5670 - recvTimeout is not printed correctly for THRIFT_EAGAIN

### Compiler (General)

- [THRIFT-5733]https://issues.apache.org/jira/browse/THRIFT-5733 - Building code with circular `include`s can result in tons of memory usage and eventual segfault

### Delphi

- [THRIFT-5749]https://issues.apache.org/jira/browse/THRIFT-5749 - Option to enable RTTI info
- [THRIFT-5740]https://issues.apache.org/jira/browse/THRIFT-5740 - inherited interfaces should be explicitly listed in Delphi class decl

### Documentation	

- [THRIFT-4606]https://issues.apache.org/jira/browse/THRIFT-4606 - LGPL license file still present 

### Erlang

- [THRIFT-5635]https://issues.apache.org/jira/browse/THRIFT-5635 - Replace some removed functions with new counterparts

### Go

- [THRIFT-5744]https://issues.apache.org/jira/browse/THRIFT-5744 - Switch to slog for go library
- [THRIFT-5745]https://issues.apache.org/jira/browse/THRIFT-5745 - Implement slog.LogValuer on go TStructs


### Haxe

- [THRIFT-5734]https://issues.apache.org/jira/browse/THRIFT-5734 - generated code may lack required capitalization at class names
- [THRIFT-5742]https://issues.apache.org/jira/browse/THRIFT-5742 - Add addRange() function to Set helpers to support adding data from arbitrary enumerable containers

### Java

- [THRIFT-5738]https://issues.apache.org/jira/browse/THRIFT-5738 - Compiler build fails on Mac

### netstd

- [THRIFT-5746]https://issues.apache.org/jira/browse/THRIFT-5746 - Upgrade to net8
- [THRIFT-5743]https://issues.apache.org/jira/browse/THRIFT-5743 - add TLS1.3 to default protocols where available
- [THRIFT-5726]https://issues.apache.org/jira/browse/THRIFT-5726 - package upgrades and consolidation/improvement of build targets checks 

### PHP

- [THRIFT-5752]https://issues.apache.org/jira/browse/THRIFT-5752 - Add TTransportFactoryInterface
- [THRIFT-5754]https://issues.apache.org/jira/browse/THRIFT-5754 - Fix PHP 8.1 deprecates passing null to non-nullable internal function parameters
- [THRIFT-5753]https://issues.apache.org/jira/browse/THRIFT-5753 - PHP 8.1 deprecated warning about return type in jsonSerialize functions

### Python

- [THRIFT-5688]https://issues.apache.org/jira/browse/THRIFT-5688 - Add PyPI publishing github actions

## 0.19.0

### Known Open Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++ library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
- [THRIFT-5468](https://issues.apache.org/jira/browse/THRIFT-5468) - Swift service generator doesn't support oneway
- [THRIFT-5654](https://issues.apache.org/jira/browse/THRIFT-5654) - LNK4042 and LNK2019 in go_validator_generator.cc

## Build Process

- [THRIFT-5701](https://issues.apache.org/jira/browse/THRIFT-5701) - Add dependabot

## C++

- [THRIFT-5725](https://issues.apache.org/jira/browse/THRIFT-5725) - Thrift SSL server stops working if the file descriptor returned is zero
- [THRIFT-5716](https://issues.apache.org/jira/browse/THRIFT-5716) - TMemoryBuffer resizing might shrink the buffer size due to uint32_t overflow

## Compiler (General)	

- [THRIFT-5690](https://issues.apache.org/jira/browse/THRIFT-5690) - Constant expects type to be defined before

## Delphi

- [THRIFT-5686](https://issues.apache.org/jira/browse/THRIFT-5686) - Add comparer and capacity arguments to container classes

## Go
- [THRIFT-5731](https://issues.apache.org/jira/browse/THRIFT-5731) - Handle ErrAbandonRequest automatically


## Haxe

- [THRIFT-5717](https://issues.apache.org/jira/browse/THRIFT-5717) - uuid sets and map keys may throw on some Haxe targets
- [THRIFT-5704](https://issues.apache.org/jira/browse/THRIFT-5704) - Superfluous block scope in generated write() code
- [THRIFT-5703](https://issues.apache.org/jira/browse/THRIFT-5703) - Haxe 4.30 emits "Local variable retval used without being initialized" on generated code
- [THRIFT-5692](https://issues.apache.org/jira/browse/THRIFT-5692) - Support for deprecated methods (via annotation)
- [THRIFT-5707](https://issues.apache.org/jira/browse/THRIFT-5707) - deprecation warning fixes for @:extern and @:enum

## Java 

- [THRIFT-5700](https://issues.apache.org/jira/browse/THRIFT-5700) - Migration to JakartaEE and Apache HttpComponents 5
- [THRIFT-5711](https://issues.apache.org/jira/browse/THRIFT-5711) - FutureClient does not extend when service extends from another service 
- [THRIFT-5702](https://issues.apache.org/jira/browse/THRIFT-5702) - Support Java 8
- [THRIFT-5696](https://issues.apache.org/jira/browse/THRIFT-5696) - TByteBuffer.java does not allow non-default TConfiguration
- [THRIFT-5653](https://issues.apache.org/jira/browse/THRIFT-5653) - Fix Java UUID typeid


## JavaScript

- [THRIFT-5674](https://issues.apache.org/jira/browse/THRIFT-5674) - Server implementation exceptions are not sent to client in ES6 promise-style invocation

## netstd 

- [THRIFT-5684](https://issues.apache.org/jira/browse/THRIFT-5684) - Upgrade to net7.0

## Node.js 

- [THRIFT-5710](https://issues.apache.org/jira/browse/THRIFT-5710) - NodeJS header transport leaks headers between all instances

## PHP 

- [THRIFT-5723](https://issues.apache.org/jira/browse/THRIFT-5723) - Php8.1 fix warnings

## Swift 

- [THRIFT-5714](https://issues.apache.org/jira/browse/THRIFT-5714) - add TJSONProtocol support in thrift-swift


## 0.18.1

### Known Open Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++ library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
- [THRIFT-5468](https://issues.apache.org/jira/browse/THRIFT-5468) - Swift service generator doesn't support oneway

### Reopened issues

- [THRIFT-5601](https://issues.apache.org/jira/browse/THRIFT-5601) - Typedef after first use causes incorrect go code

### Go

- [THRIFT-5685](https://issues.apache.org/jira/browse/THRIFT-5685) - Compiler generates wrong go code for forward defined types in optional fields
- [THRIFT-5679](https://issues.apache.org/jira/browse/THRIFT-5679) - libthrift-0.17.0 has wrong version numbers in MANIFEST.MF



## 0.18.0

### Known Open Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++ library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
- [THRIFT-5468](https://issues.apache.org/jira/browse/THRIFT-5468) - Swift service generator doesn't support oneway

### Compiler (General)

- [THRIFT-5587](https://issues.apache.org/jira/browse/THRIFT-5587) - Introduce uuid as additional builtin type
- [THRIFT-5591](https://issues.apache.org/jira/browse/THRIFT-5591) - Add uuid type to IDL and implement reference code
- [THRIFT-5626](https://issues.apache.org/jira/browse/THRIFT-5626) - Parser should not confuse data types and field names
- [THRIFT-5627](https://issues.apache.org/jira/browse/THRIFT-5627) - More consistent syntax for cpp_type
- [THRIFT-5652](https://issues.apache.org/jira/browse/THRIFT-5652) - IDL uuid literals can be improved 
- [THRIFT-5669](https://issues.apache.org/jira/browse/THRIFT-5669) - "required" keyword is illegal in a "throws" clause 

### C++ 

- [THRIFT-5661](https://issues.apache.org/jira/browse/THRIFT-5661) - TOutput: add zephyr-specific strerror_s implementation
- [THRIFT-5658](https://issues.apache.org/jira/browse/THRIFT-5658) - TProtocol: support zephyr byteorder 
- [THRIFT-5659](https://issues.apache.org/jira/browse/THRIFT-5659) - protocol: declare when methods override

### D language

- [THRIFT-5647](https://issues.apache.org/jira/browse/THRIFT-5647) - Fix undeclared identifier ECONNRESET on macOS

### Delphi

- [THRIFT-5618](https://issues.apache.org/jira/browse/THRIFT-5618) - More consistent naming of container classes
- [THRIFT-5620](https://issues.apache.org/jira/browse/THRIFT-5620) - Option to force usage of COM types to allow for cross-module references
- [THRIFT-5656](https://issues.apache.org/jira/browse/THRIFT-5656) - Escape Delphi keywords with '&' prefix instead of '_' suffix
- [THRIFT-5619](https://issues.apache.org/jira/browse/THRIFT-5619) - make sure CheckReadBytesAvailable() and CountConsumedMessageBytes() handle negative sizes properly
- [THRIFT-5622](https://issues.apache.org/jira/browse/THRIFT-5622) - Garbled test output with multithreaded clients
- [THRIFT-5625](https://issues.apache.org/jira/browse/THRIFT-5625) - SysUtils.TGuidHelper collides with ThriftUtils.TGuidHelper

### Erlang

- [THRIFT-5636](https://issues.apache.org/jira/browse/THRIFT-5636) - Broken client in erlang client library

### Go

- [THRIFT-5601](https://issues.apache.org/jira/browse/THRIFT-5601) - Typedef after first use causes incorrect go code
- [THRIFT-5650](https://issues.apache.org/jira/browse/THRIFT-5650) - Add UUID support in go

### Haxe

- [THRIFT-5593](https://issues.apache.org/jira/browse/THRIFT-5593) - Implement uuid for hx

### Java
- [THRIFT-3956](https://issues.apache.org/jira/browse/THRIFT-3956) - Java keywords that are legal in IDL can lead to generated code that will not compile
- [THRIFT-4655](https://issues.apache.org/jira/browse/THRIFT-4655) - Parser fails on the word "from"
- [THRIFT-5631](https://issues.apache.org/jira/browse/THRIFT-5631) - Execution failed for task ':generateBeanJava'.
- [THRIFT-5632](https://issues.apache.org/jira/browse/THRIFT-5632) - Fix java lib pmd main offending errors

### Kotlin

- [THRIFT-5646](https://issues.apache.org/jira/browse/THRIFT-5646) - Kotlin library should check to see if Gradle is present

### netstd

- [THRIFT-5610](https://issues.apache.org/jira/browse/THRIFT-5610) - Inconsistent constructors TSocketTransport
- [THRIFT-5623](https://issues.apache.org/jira/browse/THRIFT-5623) - ref to disposed instance should be set to null
- [THRIFT-5624](https://issues.apache.org/jira/browse/THRIFT-5624) - suboptimal performance of the c# named pipe server transport in multithread servers
- [THRIFT-5628](https://issues.apache.org/jira/browse/THRIFT-5628) - MaxMessageSize is never reset on a read buffer
- [THRIFT-5639](https://issues.apache.org/jira/browse/THRIFT-5639) - ToString() should use InvariantCulture

### OCaml

- [THRIFT-5208](https://issues.apache.org/jira/browse/THRIFT-5208) - OCaml codegen exception pattern match syntax error
- [THRIFT-5642](https://issues.apache.org/jira/browse/THRIFT-5642) - OCaml in docker build environment is broken

### Python

- [THRIFT-5617](https://issues.apache.org/jira/browse/THRIFT-5617) - T(SSL)Socket TCP keep-alive incorrectly applies SO_KEEPALIVE to IPPROTO_TCP

### Rust

- [THRIFT-5124](https://issues.apache.org/jira/browse/THRIFT-5124) - Cannot use reserved language keyword
- [THRIFT-5606](https://issues.apache.org/jira/browse/THRIFT-5606) - Wrong indent for const double
- [THRIFT-5600](https://issues.apache.org/jira/browse/THRIFT-5600) - Upgrade rust toolchain to 1.61 and edition 2021
- [THRIFT-5643](https://issues.apache.org/jira/browse/THRIFT-5643) - Please publish latest version of the Rust lib to crates.io

### Swift

- [THRIFT-5629](https://issues.apache.org/jira/browse/THRIFT-5629) - Add UUID support for Swift
- [THRIFT-4547](https://issues.apache.org/jira/browse/THRIFT-4547) - Finish the conversion to native swift (LANGUAGES.md, cross test)
- [THRIFT-5621](https://issues.apache.org/jira/browse/THRIFT-5621) - Create Swift Tutorial
- [THRIFT-5630](https://issues.apache.org/jira/browse/THRIFT-5630) - Swift TSocketServer not working on Linux

### Website	

- [THRIFT-5634](https://issues.apache.org/jira/browse/THRIFT-5634) - thrift docs picture was broken


## 0.17.0

### Known Open Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++ library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
- [THRIFT-5468](https://issues.apache.org/jira/browse/THRIFT-5468) - Swift service generator doesn't support oneway

### Removed Languages

- [THRIFT-5476](https://issues.apache.org/jira/browse/THRIFT-5476) - Deprecate Common Lisp support

NB. CL had been finally dropped from 0.17.0 due to lack of active maintainers. In the meantime there is some ongoing work to reintegrate CL support in 0.18.0 version.

### Build Process

- [THRIFT-5565](https://issues.apache.org/jira/browse/THRIFT-5565) - upgrade travis ci base image to xenial
- [THRIFT-5572](https://issues.apache.org/jira/browse/THRIFT-5572) - current travis build is broken (error timeout) within kerl erlang build step
- [THRIFT-5575](https://issues.apache.org/jira/browse/THRIFT-5575) - Create a GitHub workflow using CMake

### C++

- [THRIFT-5093](https://issues.apache.org/jira/browse/THRIFT-5093) - lib: cpp: test: clarify effect of MemoryPolicy on TMemoryBuffer
- [THRIFT-5510](https://issues.apache.org/jira/browse/THRIFT-5510) - On Windows NOMINMAX and WIN32_LEAN_AND_MEAN are unset even if set before
- [THRIFT-5515](https://issues.apache.org/jira/browse/THRIFT-5515) - Oneway requests can stuck in TNonblockingServer with TSSLSocket
- [THRIFT-5529](https://issues.apache.org/jira/browse/THRIFT-5529) - Missing space "<::" in C++ generator
- [THRIFT-5576](https://issues.apache.org/jira/browse/THRIFT-5576) - fix old-style cast at const value ctor/copy and redundant copy at ctor

### Common LISP

- [THRIFT-5501](https://issues.apache.org/jira/browse/THRIFT-5501) - Remove Common Lisp support
- [THRIFT-5567](https://issues.apache.org/jira/browse/THRIFT-5567) - remove reference to common lisp namespace

### Compiler (General)

- [THRIFT-5506](https://issues.apache.org/jira/browse/THRIFT-5506) - C26495 variable "t_field::req_" not initialized, t_field.h:40
- [THRIFT-5540](https://issues.apache.org/jira/browse/THRIFT-5540) - Can't use a typedef for a container type containing enums in a constant
- [THRIFT-5588](https://issues.apache.org/jira/browse/THRIFT-5588) - Remove slist/senum from IDL

### Contributed

- [THRIFT-5599](https://issues.apache.org/jira/browse/THRIFT-5599) - contrib/fb303 does not compile after C++ library refactorings

### Delphi

- [THRIFT-5531](https://issues.apache.org/jira/browse/THRIFT-5531) - duplicate constant declarations
- [THRIFT-5586](https://issues.apache.org/jira/browse/THRIFT-5586) - User-Agent header not conforming to RFC 7231

### Documentation

- [THRIFT-5592](https://issues.apache.org/jira/browse/THRIFT-5592) - Update documentation and IDL definition files for uuid type

### Erlang

- [THRIFT-5536](https://issues.apache.org/jira/browse/THRIFT-5536) - Fix cross language tests

### Go

- [THRIFT-5495](https://issues.apache.org/jira/browse/THRIFT-5495) - Go lib server not close client when shutdown
- [THRIFT-5527](https://issues.apache.org/jira/browse/THRIFT-5527) - generated Process function in go will swallow exceptions defined in thrift IDL
- [THRIFT-5539](https://issues.apache.org/jira/browse/THRIFT-5539) - Performance penalty of using TDebugProtocol.DuplicateTo
- [THRIFT-5569](https://issues.apache.org/jira/browse/THRIFT-5569) - generated Go code crashes when reading invalid map/set/list
- [THRIFT-5583](https://issues.apache.org/jira/browse/THRIFT-5583) - Add a skip_remote arg to go compiler
- [THRIFT-5605](https://issues.apache.org/jira/browse/THRIFT-5605) - Go client middleware has no (easy) access to IDL exceptions
- [THRIFT-5609](https://issues.apache.org/jira/browse/THRIFT-5609) - TJSONProtocol is unsafe to be used with TDeserializerPool

### Haxe

- [THRIFT-5589](https://issues.apache.org/jira/browse/THRIFT-5589) - Misc *.hx source files do not compile anymore
- [THRIFT-5590](https://issues.apache.org/jira/browse/THRIFT-5590) - Complex initialisations (sets, maps, etc) are broken in Haxe

### HTML

- [THRIFT-5528](https://issues.apache.org/jira/browse/THRIFT-5528) - Incorrect HTML link for referenced typedefs

### Java

- [THRIFT-4086](https://issues.apache.org/jira/browse/THRIFT-4086) - Java compiler generates different meta data depending on order of structures in file
- [THRIFT-5485](https://issues.apache.org/jira/browse/THRIFT-5485) - @SuppressWarnings is placed above Javadoc
- [THRIFT-5494](https://issues.apache.org/jira/browse/THRIFT-5494) - byte count of FrameBuffer(AbstractNonblockingServer.readBufferBytesAllocated) is not subtracted
- [THRIFT-5502](https://issues.apache.org/jira/browse/THRIFT-5502) - Is it necessary to report CONNECTION RESET as an ERROR?
- [THRIFT-5519](https://issues.apache.org/jira/browse/THRIFT-5519) - Java async client loses exceptions in void methods
- [THRIFT-5520](https://issues.apache.org/jira/browse/THRIFT-5520) - add method to convert Option type to java Optional
- [THRIFT-5521](https://issues.apache.org/jira/browse/THRIFT-5521) - In Java lib, add param for option_type to generate JDK8 optional types
- [THRIFT-5522](https://issues.apache.org/jira/browse/THRIFT-5522) - Upgrade to gradle 6 for Java build
- [THRIFT-5525](https://issues.apache.org/jira/browse/THRIFT-5525) - java gen to use reuse_objects instead of reuse-objects as a consistent param casing
- [THRIFT-5526](https://issues.apache.org/jira/browse/THRIFT-5526) - java gen to use private_members instead of private-members as a consistent param casing
- [THRIFT-5533](https://issues.apache.org/jira/browse/THRIFT-5533) - Fix Java warnings: @param, @return and deprecation
- [THRIFT-5543](https://issues.apache.org/jira/browse/THRIFT-5543) - Java lib FieldMetaData should be more type-safe by adding type parameter to metadata registerations
- [THRIFT-5544](https://issues.apache.org/jira/browse/THRIFT-5544) - add java code gen param to support including field annotation as metadata
- [THRIFT-5545](https://issues.apache.org/jira/browse/THRIFT-5545) - Follow newer gradle convention in organizing source code directories
- [THRIFT-5552](https://issues.apache.org/jira/browse/THRIFT-5552) - Apply clang-format to java code gen file
- [THRIFT-5553](https://issues.apache.org/jira/browse/THRIFT-5553) - java library to use newer gradle API
- [THRIFT-5555](https://issues.apache.org/jira/browse/THRIFT-5555) - Java codegen and library to support future-returning client interface and implementation
- [THRIFT-5557](https://issues.apache.org/jira/browse/THRIFT-5557) - Move Java-only tests from /test to /lib/java
- [THRIFT-5560](https://issues.apache.org/jira/browse/THRIFT-5560) - Use JUnit 5 (Jupiter) for Java unit tests
- [THRIFT-5562](https://issues.apache.org/jira/browse/THRIFT-5562) - remove gradle wrapper jar file from source tree
- [THRIFT-5563](https://issues.apache.org/jira/browse/THRIFT-5563) - fix deprecation and enable xlint for java library
- [THRIFT-5568](https://issues.apache.org/jira/browse/THRIFT-5568) - Use spotless gradle plugin and google-java-format to enforce a consistent code format
- [THRIFT-5570](https://issues.apache.org/jira/browse/THRIFT-5570) - update java lib document about gradle usage
- [THRIFT-5581](https://issues.apache.org/jira/browse/THRIFT-5581) - Upgrade gradle version to 7.4+
- [THRIFT-5582](https://issues.apache.org/jira/browse/THRIFT-5582) - Improve TProtocol.java
- [THRIFT-5584](https://issues.apache.org/jira/browse/THRIFT-5584) - Use gradle toolchain to specify build time Java version

### JSON

- [THRIFT-5549](https://issues.apache.org/jira/browse/THRIFT-5549) - Json generator should indent properly while generating includes

### Kotlin

- [THRIFT-5548](https://issues.apache.org/jira/browse/THRIFT-5548) - Kotlin code generator
- [THRIFT-5571](https://issues.apache.org/jira/browse/THRIFT-5571) - add metadata map building to kotlin generator
- [THRIFT-5580](https://issues.apache.org/jira/browse/THRIFT-5580) - Enhance the kotlin cross test suite

### netstd

- [THRIFT-5505](https://issues.apache.org/jira/browse/THRIFT-5505) - error: 'close_generator' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
- [THRIFT-5511](https://issues.apache.org/jira/browse/THRIFT-5511) - Full support for the new net6 "nullability" semantics 
- [THRIFT-5514](https://issues.apache.org/jira/browse/THRIFT-5514) - C# test client slow in multithread mode
- [THRIFT-5577](https://issues.apache.org/jira/browse/THRIFT-5577) - netstd namespace directive creates matching subfolders
- [THRIFT-5578](https://issues.apache.org/jira/browse/THRIFT-5578) - #nullable disable collides with C# lang versions < 8 (error CS8370)
- [THRIFT-5585](https://issues.apache.org/jira/browse/THRIFT-5585) - net5.0 end of support May 2022

### Node.js

- [THRIFT-5535](https://issues.apache.org/jira/browse/THRIFT-5535) - Ability to support connection on OpenHarmonyOS

### Perl

- [THRIFT-5532](https://issues.apache.org/jira/browse/THRIFT-5532) - Perl Thrift/HttpClient.pm headers bug

### Python

- [THRIFT-2059](https://issues.apache.org/jira/browse/THRIFT-2059) - Support for Python 3.4 enums
- [THRIFT-5449](https://issues.apache.org/jira/browse/THRIFT-5449) - Use select.poll instead of select.select in Python TNonblockingServer if available
- [THRIFT-5467](https://issues.apache.org/jira/browse/THRIFT-5467) - CannotSendHeader exception with 0.15
- [THRIFT-5595](https://issues.apache.org/jira/browse/THRIFT-5595) - TSocket errors with SSLSocket

### Rust

- [THRIFT-4100](https://issues.apache.org/jira/browse/THRIFT-4100) - Extract Rust read/write struct methods into a trait

### Wish List

- [THRIFT-3461](https://issues.apache.org/jira/browse/THRIFT-3461) - Support Method Deprecation


## 0.16.0

### Known Open Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++ library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
- [THRIFT-5468](https://issues.apache.org/jira/browse/THRIFT-5468) - Swift service generator doesn't support oneway

### Deprecated Languages

- [THRIFT-5476](https://issues.apache.org/jira/browse/THRIFT-5476) - Deprecate Common Lisp support

### Breaking Changes

- (none)

### C++

- [THRIFT-5187](https://issues.apache.org/jira/browse/THRIFT-5187) - Add support for Unix domain sockets on Windows 10 or later
- [THRIFT-5418](https://issues.apache.org/jira/browse/THRIFT-5418) - C++ to_string and ostream operator not always generated
- [THRIFT-5456](https://issues.apache.org/jira/browse/THRIFT-5456) - ServerSocket doesn't ignore SIGPIPE

### Common LISP

- [THRIFT-5476](https://issues.apache.org/jira/browse/THRIFT-5476) - Deprecate Common Lisp support

### Erlang

- [THRIFT-5471](https://issues.apache.org/jira/browse/THRIFT-5471) - Introduce delimiter and app_prefix options to erl generator

### Go

- [THRIFT-5461](https://issues.apache.org/jira/browse/THRIFT-5461) - Invalid golang code generated for optional `set<binary>` with a default value
- [THRIFT-5469](https://issues.apache.org/jira/browse/THRIFT-5469) - Go lib skip map value may cause stack overflow
- [THRIFT-5490](https://issues.apache.org/jira/browse/THRIFT-5490) - Improve memory efficiency in go THeader implementation
- [THRIFT-5509](https://issues.apache.org/jira/browse/THRIFT-5509) - Potential connection leaks caused by the connectivity check

### Haxe

- [THRIFT-5470](https://issues.apache.org/jira/browse/THRIFT-5470) - Error: Constraint check failure for haxe.ds.ObjectMap.K

### Java

- [THRIFT-5443](https://issues.apache.org/jira/browse/THRIFT-5443) - add support for partial deserialization of Thrift
- [THRIFT-5486](https://issues.apache.org/jira/browse/THRIFT-5486) - fix issues found by spotbugs 
- [THRIFT-5512](https://issues.apache.org/jira/browse/THRIFT-5512) - Update java dependencies

### JavaScript

- [THRIFT-5448](https://issues.apache.org/jira/browse/THRIFT-5448) - Wrong type mapping of thrift binary type

### netstd

- [THRIFT-5401](https://issues.apache.org/jira/browse/THRIFT-5401) - MaxMessageSize reached exception thrown in TEndpointTransport
- [THRIFT-5408](https://issues.apache.org/jira/browse/THRIFT-5408) - Support for deprecated methods (via annotation)
- [THRIFT-5479](https://issues.apache.org/jira/browse/THRIFT-5479) - Add net 6 support
- [THRIFT-5480](https://issues.apache.org/jira/browse/THRIFT-5480) - TThreadPoolAsyncServer using TFramedTransport mistakenly drops client
- [THRIFT-5481](https://issues.apache.org/jira/browse/THRIFT-5481) - consolidate netstd server implementation details into one common model
- [THRIFT-5500](https://issues.apache.org/jira/browse/THRIFT-5500) - Uncompilable code when .thrift struct 'System' exists
- [THRIFT-5504](https://issues.apache.org/jira/browse/THRIFT-5504) - CA2254 Message template should be compile time constant

### Perl

- [THRIFT-5055](https://issues.apache.org/jira/browse/THRIFT-5055) - Fix build-cpan-dist.sh to create a CPAN distribution correctly
- [THRIFT-5416](https://issues.apache.org/jira/browse/THRIFT-5416) - Allow UDP Socket Client In Perl

### Python

- [THRIFT-5454](https://issues.apache.org/jira/browse/THRIFT-5454) - Python TProcessPoolServer does not spawn expected number of worker processes
- [THRIFT-5488](https://issues.apache.org/jira/browse/THRIFT-5488) - SystemError when using fast binary or compact protocol in python 3.10

### Rust

- [THRIFT-5452](https://issues.apache.org/jira/browse/THRIFT-5452) - Make server optional
- [THRIFT-5457](https://issues.apache.org/jira/browse/THRIFT-5457) - Travis fails consistently on a Rust dependency

### Test Suite

- [THRIFT-5450](https://issues.apache.org/jira/browse/THRIFT-5450) - AppVeyor CI does not run any MSVC tests?


## 0.15.0

### Known Open Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++: library don't work with HTTP (csharp server, cpp client; need cross test enhancement)

### Removed Languages

- [THRIFT-5229](https://issues.apache.org/jira/browse/THRIFT-5229) - ActionScript 3 support dropped
- [THRIFT-5347](https://issues.apache.org/jira/browse/THRIFT-5347) - Haskell support dropped

### Breaking Changes

- [THRIFT-5381](https://issues.apache.org/jira/browse/THRIFT-5381) - possible collisions at VOID type with some 3rd-party libraries on Haxe cpp targets
- [THRIFT-5396](https://issues.apache.org/jira/browse/THRIFT-5396) - deprecate netstd "Async" method postfix
- [THRIFT-5453](https://issues.apache.org/jira/browse/THRIFT-5453) - go: NewTSocketConf and NewTSSLSocketConf no longer return an error

### AS3

- [THRIFT-5229](https://issues.apache.org/jira/browse/THRIFT-5229) - Deprecate/remove ActionScript 3 support

### Build Process

- [THRIFT-5334](https://issues.apache.org/jira/browse/THRIFT-5334) - version of thrift-maven-plugin is not sync with the main project
- [THRIFT-5394](https://issues.apache.org/jira/browse/THRIFT-5394) - AppVeyor CI tries to download outdated cmake
- [THRIFT-5429](https://issues.apache.org/jira/browse/THRIFT-5429) - build: autotools: add foreign to AM_INIT_AUTOMAKE

### C glib

- [THRIFT-5244](https://issues.apache.org/jira/browse/THRIFT-5244) - Dynamic exception specifications are deprecated in C++11[-Wdeprecated]
- [THRIFT-5265](https://issues.apache.org/jira/browse/THRIFT-5265) - Add the zlib transport to c_glib
- [THRIFT-5399](https://issues.apache.org/jira/browse/THRIFT-5399) - Fix socket leak in abnormal situation
- [THRIFT-5421](https://issues.apache.org/jira/browse/THRIFT-5421) - Fix the problem of incorrect setting of errno in some files

### C++

- [THRIFT-5341](https://issues.apache.org/jira/browse/THRIFT-5341) - Fix Old-Style-Cast, Missing override and Possible noexcept
- [THRIFT-5342](https://issues.apache.org/jira/browse/THRIFT-5342) - Apply 'noexcept' attribute to Init/Copy/Move Constructors and Assignments
- [THRIFT-5355](https://issues.apache.org/jira/browse/THRIFT-5355) - Do not rely on compiler and check boundaries

### D language

- [THRIFT-4303](https://issues.apache.org/jira/browse/THRIFT-4303) - D deprecation warnings
- [THRIFT-4979](https://issues.apache.org/jira/browse/THRIFT-4979) - Still D deprecation warnings about std.datetime.* in current master
- [THRIFT-5376](https://issues.apache.org/jira/browse/THRIFT-5376) - Fix deprecation warnings in D library

### Dart

- [THRIFT-5285](https://issues.apache.org/jira/browse/THRIFT-5285) - Update to dart 2, widen range on http package

### Delphi

- [THRIFT-5350](https://issues.apache.org/jira/browse/THRIFT-5350) - 0.14.0 fails to build on non-x86
- [THRIFT-5438](https://issues.apache.org/jira/browse/THRIFT-5438) - Inconsistent handling of exceptions during message read vs. message write phase
- [THRIFT-5384](https://issues.apache.org/jira/browse/THRIFT-5384) - Improved error message for HTTP transports
- [THRIFT-5385](https://issues.apache.org/jira/browse/THRIFT-5385) - XML-HTTP client reports IsOpen=TRUE even if it is not
- [THRIFT-5386](https://issues.apache.org/jira/browse/THRIFT-5386) - XML-HTTP client may throw "max message size reached" incorrectly
- [THRIFT-5387](https://issues.apache.org/jira/browse/THRIFT-5387) - Improved and simplified Delphi test setup
- [THRIFT-5390](https://issues.apache.org/jira/browse/THRIFT-5390) - Named Pipes transport hardening
- [THRIFT-5428](https://issues.apache.org/jira/browse/THRIFT-5428) - Prevent costly reallocations to improve performance
- [THRIFT-5437](https://issues.apache.org/jira/browse/THRIFT-5437) - Make TProtocolImpl CTOR virtual

### Documentation

- [THRIFT-5332](https://issues.apache.org/jira/browse/THRIFT-5332) - Question: list all the reserved words in thrift doc
- [THRIFT-5348](https://issues.apache.org/jira/browse/THRIFT-5348) - Update debian/copyright

### Erlang

- [THRIFT-5377](https://issues.apache.org/jira/browse/THRIFT-5377) - Remove Erlang R16 support

### Go

- [THRIFT-5337](https://issues.apache.org/jira/browse/THRIFT-5337) - Go set fields write improvement
- [THRIFT-5353](https://issues.apache.org/jira/browse/THRIFT-5353) - Namespace from type is ignored in generated code
- [THRIFT-5358](https://issues.apache.org/jira/browse/THRIFT-5358) - Add go.mod file(s)
- [THRIFT-5369](https://issues.apache.org/jira/browse/THRIFT-5369) - Malformed payload can still cause huge allocations
- [THRIFT-5389](https://issues.apache.org/jira/browse/THRIFT-5389) - Thrift compiler generates uncompilable go code around optional constants
- [THRIFT-5404](https://issues.apache.org/jira/browse/THRIFT-5404) - TTransportException.Timeout would correctly return true when it's connect timeout during TSocket.Open call
- [THRIFT-5447](https://issues.apache.org/jira/browse/THRIFT-5447) - Update supported Go versions before 0.15.0 release
- [THRIFT-5453](https://issues.apache.org/jira/browse/THRIFT-5453) - go: NewTSocketConf should not call net.ResolveTCPAddr
- [THRIFT-5459](https://issues.apache.org/jira/browse/THRIFT-5459) - Adding a new exception to an endpoint is kinda breaking in go
- [THRIFT-5453](https://issues.apache.org/jira/browse/THRIFT-5453) - Defer DNS lookups from NewTSocketConf (without any timeout check) to TSocket.Open (subject to ConnectTimeout set in TConfiguration)
- [THRIFT-5459](https://issues.apache.org/jira/browse/THRIFT-5459) - Client calls will return TApplicationException with MISSING_RESULT when the result is a struct but is unset, and no other error is known.

### Haskell

- [THRIFT-5347](https://issues.apache.org/jira/browse/THRIFT-5347) - Deprecate Haskell bindings

### Haxe

- [THRIFT-5370](https://issues.apache.org/jira/browse/THRIFT-5370) - Haxe 4 compatibility
- [THRIFT-5381](https://issues.apache.org/jira/browse/THRIFT-5381) - possible collisions at VOID type with some 3rd-party libraries on Haxe cpp targets
- [THRIFT-5393](https://issues.apache.org/jira/browse/THRIFT-5393) - Incorrect namespaces for included types
- [THRIFT-3036](https://issues.apache.org/jira/browse/THRIFT-3036) - create official haxelib Thrift package
- [THRIFT-5413](https://issues.apache.org/jira/browse/THRIFT-5413) - Int vs String in method get_size required by property size

### Java

- [THRIFT-5375](https://issues.apache.org/jira/browse/THRIFT-5375) - Put org.apache.tomcat.embed:tomcat-embed-core into scope test
- [THRIFT-5383](https://issues.apache.org/jira/browse/THRIFT-5383) - TJSONProtocol Java readString throws on bounds check
- [THRIFT-5400](https://issues.apache.org/jira/browse/THRIFT-5400) - Java library does not export the .annotation package
- [THRIFT-5425](https://issues.apache.org/jira/browse/THRIFT-5425) - Throw an exception when reading TSimpleJson in Java
- [THRIFT-5430](https://issues.apache.org/jira/browse/THRIFT-5430) - FieldMetaData synchronized method can trigger deadlock during static class initialization in JVM native code
- [THRIFT-5432](https://issues.apache.org/jira/browse/THRIFT-5432) - TSaslTransport throw TTransportException of MaxMessageSize reached
- [THRIFT-5433](https://issues.apache.org/jira/browse/THRIFT-5433) - Add Counter To Thread Name of TThreadPoolServer

### JavaScript

- [THRIFT-3508](https://issues.apache.org/jira/browse/THRIFT-3508) - JS:TS Generator set all fields of the struct as required

### Lua

- [THRIFT-5417](https://issues.apache.org/jira/browse/THRIFT-5417) - Fix Lua compiler omitting default values in Lua service functions
- [THRIFT-5439](https://issues.apache.org/jira/browse/THRIFT-5439) - Lua Generator does not support const i64

### netstd

- [THRIFT-5354](https://issues.apache.org/jira/browse/THRIFT-5354) - disable IDE0083 warning
- [THRIFT-5382](https://issues.apache.org/jira/browse/THRIFT-5382) - Netstd default list/set enums values are generated incorrectly in some cases
- [THRIFT-5395](https://issues.apache.org/jira/browse/THRIFT-5395) - inconsistent treatment of methods ending in "Async"
- [THRIFT-5396](https://issues.apache.org/jira/browse/THRIFT-5396) - deprecate "Async" method postfix
- [THRIFT-5408](https://issues.apache.org/jira/browse/THRIFT-5408) - Support for deprecated methods (via annotation)
- [THRIFT-5414](https://issues.apache.org/jira/browse/THRIFT-5414) - Use of specific parameter names generates uncompileable code
- [THRIFT-5442](https://issues.apache.org/jira/browse/THRIFT-5442) - Separate client service calls into send/recv methods and make them public
- [THRIFT-5444](https://issues.apache.org/jira/browse/THRIFT-5444) - Netstd generator produces uncompileable code for enums ending with "_result" or "_args"
- [THRIFT-5445](https://issues.apache.org/jira/browse/THRIFT-5445) - "cancellationToken" cannot be used as argument name
- [THRIFT-5236](https://issues.apache.org/jira/browse/THRIFT-5236) - THttpTransport.cs still has bad timeout code
- [THRIFT-5349](https://issues.apache.org/jira/browse/THRIFT-5349) - Add net5.0 as supported platform
- [THRIFT-5373](https://issues.apache.org/jira/browse/THRIFT-5373) - HTTP status in case of Protocol/Transport exceptions
- [THRIFT-5391](https://issues.apache.org/jira/browse/THRIFT-5391) - Named pipes transport hardening
- [THRIFT-5398](https://issues.apache.org/jira/browse/THRIFT-5398) - ThreadPoolServer not stoppable via CancellationToken
- [THRIFT-5407](https://issues.apache.org/jira/browse/THRIFT-5407) - Keep support for .NET Core 3.1
- [THRIFT-5419](https://issues.apache.org/jira/browse/THRIFT-5419) - Incorrect usage of thread pool in TThreadPoolAsyncServer may lead to poor performance
- [THRIFT-5422](https://issues.apache.org/jira/browse/THRIFT-5422) - add threadpool server to netstd test suite impl
- [THRIFT-5431](https://issues.apache.org/jira/browse/THRIFT-5431) - Response should include 'content-type' header
- [THRIFT-5436](https://issues.apache.org/jira/browse/THRIFT-5436) - Timeout.Infinite is not a good default

### PHP

- [THRIFT-5318](https://issues.apache.org/jira/browse/THRIFT-5318) - PHP 8 compatible version of binary protocol
- [THRIFT-5440](https://issues.apache.org/jira/browse/THRIFT-5440) - Add php8 to composer.json

### Python

- [THRIFT-5352](https://issues.apache.org/jira/browse/THRIFT-5352) - Python: IDL exceptions with no fields can't be instantiated

### Ruby

- [THRIFT-5312](https://issues.apache.org/jira/browse/THRIFT-5312) - The Ruby compilation configuration in the .gemspec file is modified to be compatible with later bundler versions.
- [THRIFT-5367](https://issues.apache.org/jira/browse/THRIFT-5367) - Ruby library crashes when using GC.compact

### Rust

- [THRIFT-4098](https://issues.apache.org/jira/browse/THRIFT-4098) - Support user-defined output namespaces in generated Rust modules
- [THRIFT-4101](https://issues.apache.org/jira/browse/THRIFT-4101) - Make auto-generated Rust enums and unions more user-extensible
- [THRIFT-5314](https://issues.apache.org/jira/browse/THRIFT-5314) - Enum forward compatibility
- [THRIFT-5363](https://issues.apache.org/jira/browse/THRIFT-5363) - All-caps constant rendered incorrectly


## 0.14.2

### Java

- [THRIFT-5383](https://issues.apache.org/jira/browse/THRIFT-5383) - THRIFT-5383 TJSONProtocol Java readString throws on bounds check

### Go

- [THRIFT-5369](https://issues.apache.org/jira/browse/THRIFT-5369) - TConfiguration.GetMaxMessageSize() now also applies to container sizes in TProtocol implementations provided


## 0.14.1

### Known Open Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++: library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
- [THRIFT-5098](https://issues.apache.org/jira/browse/THRIFT-5098) - Deprecated: "The high level Network interface is no longer supported. Please use Network.Socket." and other Haskell issues
- [THRIFT-5245](https://issues.apache.org/jira/browse/THRIFT-5245) - NPE when the value of map's key is null

### Deprecated Languages

- [THRIFT-5347](https://issues.apache.org/jira/browse/THRIFT-5347) - Deprecate Haskell bindings

### Build Process

- [THRIFT-5334](https://issues.apache.org/jira/browse/THRIFT-5334) - version of thrift-maven-plugin is not sync with the main project

### Delphi

- [THRIFT-5350](https://issues.apache.org/jira/browse/THRIFT-5350) - 0.14.0 fails to build on non-x86

### Go

- [THRIFT-5353](https://issues.apache.org/jira/browse/THRIFT-5353) - Namespace from type is ignored in generated code

### Python

- [THRIFT-5352](https://issues.apache.org/jira/browse/THRIFT-5352) - Python: IDL exceptions with no fields can't be instantiated

### Rust

- [THRIFT-5299](https://issues.apache.org/jira/browse/THRIFT-5299) - rs implementation compact protocol seq_id should not use zigzag encoding.


## 0.14.0

### Deprecated Languages

- [THRIFT-5229](https://issues.apache.org/jira/browse/THRIFT-5229) - Deprecate ActionScript 3 support

### Removed Languages

- [THRIFT-4980](https://issues.apache.org/jira/browse/THRIFT-4980) - Remove deprecated C# and netcore bindings from the code base
- [THRIFT-4981](https://issues.apache.org/jira/browse/THRIFT-4981) - Remove deprecated netcore bindings from the code base
- [THRIFT-4982](https://issues.apache.org/jira/browse/THRIFT-4982) - Remove deprecated C# bindings from the code base

### Breaking Changes

- [THRIFT-4981](https://issues.apache.org/jira/browse/THRIFT-4981) - Remove deprecated netcore bindings from the code base
- [THRIFT-4982](https://issues.apache.org/jira/browse/THRIFT-4982) - Remove deprecated csharp bindings from the code base
- [THRIFT-4990](https://issues.apache.org/jira/browse/THRIFT-4990) - Upgrade to .NET Core 3.1 (LTS)
- [THRIFT-5006](https://issues.apache.org/jira/browse/THRIFT-5006) - Implement DEFAULT_MAX_LENGTH at TFramedTransport
- [THRIFT-5069](https://issues.apache.org/jira/browse/THRIFT-5069) - In Go library TDeserializer.Transport is now typed \*TMemoryBuffer instead of TTransport
- [THRIFT-5072](https://issues.apache.org/jira/browse/THRIFT-5072) - Haskell generator fails to distinguish between multiple enum types with conflicting enum identifiers
- [THRIFT-5116](https://issues.apache.org/jira/browse/THRIFT-5116) - Upgrade NodeJS to 10.x
- [THRIFT-5138](https://issues.apache.org/jira/browse/THRIFT-5138) - Swift generator does not escape keywords properly
- [THRIFT-5164](https://issues.apache.org/jira/browse/THRIFT-5164) - In Go library TProcessor interface now includes ProcessorMap and AddToProcessorMap functions.
- [THRIFT-5186](https://issues.apache.org/jira/browse/THRIFT-5186) - cpp: use all getaddrinfo() results when retrying failed bind() in T{Nonblocking,}ServerSocket
- [THRIFT-5233](https://issues.apache.org/jira/browse/THRIFT-5233) - go: Now all Read*, Write* and Skip functions in TProtocol accept context arg
- [THRIFT-5152](https://issues.apache.org/jira/browse/THRIFT-5152) - go: TSocket and TSSLSocket now have separated connect timeout and socket timeout
- c++: dropped support for Windows XP
- [THRIFT-5326](https://issues.apache.org/jira/browse/THRIFT-5326) - go: TException interface now has a new function: TExceptionType
- [THRIFT-4914](https://issues.apache.org/jira/browse/THRIFT-4914) - go: TClient.Call now returns ResponseMeta in addition to error

### Known Open Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++: library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
- [THRIFT-5098](https://issues.apache.org/jira/browse/THRIFT-5098) - Deprecated: "The high level Network interface is no longer supported. Please use Network.Socket." and other Haskell issues
- [THRIFT-5245](https://issues.apache.org/jira/browse/THRIFT-5245) - NPE when the value of map's key is null
- [THRIFT-4687](https://issues.apache.org/jira/browse/THRIFT-4687) - Add thrift 0.12.0 to pypi and/or enable more maintainers

### Build Process

- [THRIFT-4976](https://issues.apache.org/jira/browse/THRIFT-4976) - Docker build: Test failure for `StalenessCheckTest` on MacOS
- [THRIFT-5087](https://issues.apache.org/jira/browse/THRIFT-5087) - test/test.py fails with "AssertionError: Python 3.3 or later is required for proper operation."
- [THRIFT-5097](https://issues.apache.org/jira/browse/THRIFT-5097) - Incorrect THRIFT_VERSION in ThriftConfig.cmake
- [THRIFT-5109](https://issues.apache.org/jira/browse/THRIFT-5109) - Misc CMake improvements
- [THRIFT-5147](https://issues.apache.org/jira/browse/THRIFT-5147) - Add uninstall function
- [THRIFT-5218](https://issues.apache.org/jira/browse/THRIFT-5218) - Automated Github release artifacts do not match checksums provided
- [THRIFT-5249](https://issues.apache.org/jira/browse/THRIFT-5249) - travis-ci : Failed to run FastbinaryTest.py

### C glib

- [THRIFT-4873](https://issues.apache.org/jira/browse/THRIFT-4873) - Memory leak in c_glib
- [THRIFT-5118](https://issues.apache.org/jira/browse/THRIFT-5118) - Fix memory leak when the handler method return a exception
- [THRIFT-5134](https://issues.apache.org/jira/browse/THRIFT-5134) - Fix memory leak when the handler method return FALSE
- [THRIFT-5144](https://issues.apache.org/jira/browse/THRIFT-5144) - Fix memory leak when generate deserialize list element
- [THRIFT-4272](https://issues.apache.org/jira/browse/THRIFT-4272) - warnings in glibc library
- [THRIFT-4952](https://issues.apache.org/jira/browse/THRIFT-4952) - Modified ssl_read feedback value break all the time error.
- [THRIFT-5076](https://issues.apache.org/jira/browse/THRIFT-5076) - Improve CMake OpenSSL usage
- [THRIFT-5094](https://issues.apache.org/jira/browse/THRIFT-5094) - Fix memory leak in thrift_server_set_property()
- [THRIFT-5101](https://issues.apache.org/jira/browse/THRIFT-5101) - Return NULL install of FALSE for thrift_server_socket_accept()
- [THRIFT-5102](https://issues.apache.org/jira/browse/THRIFT-5102) - Fix memory leak in thrift_simple_server_serve()
- [THRIFT-5136](https://issues.apache.org/jira/browse/THRIFT-5136) - Fix memory leak in thrift_multiplexed_processor_process_impl()
- [THRIFT-5221](https://issues.apache.org/jira/browse/THRIFT-5221) - Fix stack overflow when reading buffer
- [THRIFT-5237](https://issues.apache.org/jira/browse/THRIFT-5237) - Implement MAX_MESSAGE_SIZE and consolidate limits into a TConfiguration class
- [THRIFT-5255](https://issues.apache.org/jira/browse/THRIFT-5255) - Fix stack overflow in framed transport
- [THRIFT-5256](https://issues.apache.org/jira/browse/THRIFT-5256) - Fix some compile warnings
- [THRIFT-5268](https://issues.apache.org/jira/browse/THRIFT-5268) - Fix some file loss ')' in define

### C++

- [THRIFT-1513](https://issues.apache.org/jira/browse/THRIFT-1513) - Thrift compiler generates inconsistent code with some complex values (causing g++ to error: "has no member named '__isset')
- [THRIFT-5168](https://issues.apache.org/jira/browse/THRIFT-5168) - Useless generated code when .thrift file only has service type
- [THRIFT-5179](https://issues.apache.org/jira/browse/THRIFT-5179) - Thrift compiler will generate wrong code if IDL struct's name is 'a' or  'b'
- [THRIFT-5200](https://issues.apache.org/jira/browse/THRIFT-5200) - Thrift compiler will generate incorrect code when add 'cob_style' option.
- [THRIFT-4282](https://issues.apache.org/jira/browse/THRIFT-4282) - StressTestNonBlocking is disabled in Appveyor as it is unstable on Windows in general
- [THRIFT-4682](https://issues.apache.org/jira/browse/THRIFT-4682) - C++ TBinaryProtocol crashes on port scan
- [THRIFT-4963](https://issues.apache.org/jira/browse/THRIFT-4963) - TNonblockingServer blocked int addTask(IOThread) and notify(workerThread)
- [THRIFT-5047](https://issues.apache.org/jira/browse/THRIFT-5047) - fix cmake support to build cpp server without OPENSSL
- [THRIFT-5076](https://issues.apache.org/jira/browse/THRIFT-5076) - Improve CMake OpenSSL usage
- [THRIFT-5078](https://issues.apache.org/jira/browse/THRIFT-5078) - Handle named pipe clients quickly disconnecting
- [THRIFT-5086](https://issues.apache.org/jira/browse/THRIFT-5086) - CMake target thrift::thrift has no INTERFACE_INCLUDE_DIRECTORIES property
- [THRIFT-5110](https://issues.apache.org/jira/browse/THRIFT-5110) - Added a number of required libs for using static OpenSSL
- [THRIFT-5114](https://issues.apache.org/jira/browse/THRIFT-5114) - Simplify the computation of the size of TMemoryBuffer
- [THRIFT-5177](https://issues.apache.org/jira/browse/THRIFT-5177) - getaddrinfo() should not be used for Unix sockets
- [THRIFT-5178](https://issues.apache.org/jira/browse/THRIFT-5178) - THttpClient should work without specifying host
- [THRIFT-5185](https://issues.apache.org/jira/browse/THRIFT-5185) - C++: Add WebSocket Server Transport
- [THRIFT-5186](https://issues.apache.org/jira/browse/THRIFT-5186) - AI_ADDRCONFIG: Thrift libraries crash with localhost-only network.
- [THRIFT-5215](https://issues.apache.org/jira/browse/THRIFT-5215) - C++: Remove portable_endian.h
- [THRIFT-5217](https://issues.apache.org/jira/browse/THRIFT-5217) - Deprecated boost header
- [THRIFT-5237](https://issues.apache.org/jira/browse/THRIFT-5237) - Implement MAX_MESSAGE_SIZE and consolidate limits into a TConfiguration class
- [THRIFT-5290](https://issues.apache.org/jira/browse/THRIFT-5290) - Adjusting cpp *.cproj msvcrt options according to LEGAL-538
- [THRIFT-5295](https://issues.apache.org/jira/browse/THRIFT-5295) - Thread and ThreadFactory should be extensible
- [THRIFT-5344](https://issues.apache.org/jira/browse/THRIFT-5344) - TTransport may throw raw pointer exceptions

### Compiler (General)

- [THRIFT-4173](https://issues.apache.org/jira/browse/THRIFT-4173) - Go: thrift compiler generates wrong code for list of aliased type
- [THRIFT-4938](https://issues.apache.org/jira/browse/THRIFT-4938) - Issues with version.h treatment
- [THRIFT-4973](https://issues.apache.org/jira/browse/THRIFT-4973) - Add deprecation messages for csharp and netcore
- [THRIFT-4980](https://issues.apache.org/jira/browse/THRIFT-4980) - Remove deprecated C# and netcore bindings from the code base
- [THRIFT-4982](https://issues.apache.org/jira/browse/THRIFT-4982) - Remove deprecated C# bindings from the code baseï…‚
- [THRIFT-5153](https://issues.apache.org/jira/browse/THRIFT-5153) - Deprecate byte
- [THRIFT-5225](https://issues.apache.org/jira/browse/THRIFT-5225) - Use nullptr instead of NULL
- [THRIFT-5302](https://issues.apache.org/jira/browse/THRIFT-5302) - Add recursive function name uniqueness check

### D

- [THRIFT-5059](https://issues.apache.org/jira/browse/THRIFT-5059) - Add cross tests for TZlibTransport in D
- [THRIFT-5156](https://issues.apache.org/jira/browse/THRIFT-5156) - D: Fix library compilation on Windows and compiler warnings
- [THRIFT-5166](https://issues.apache.org/jira/browse/THRIFT-5166) - Add WebSocket Server Transport
- [THRIFT-5184](https://issues.apache.org/jira/browse/THRIFT-5184) - D: WebSocket Server Transport Fix for Firefox

### Delphi

- [THRIFT-5044](https://issues.apache.org/jira/browse/THRIFT-5044) - Improve serialization support for TApplicationExceptions and custom exceptions
- [THRIFT-5154](https://issues.apache.org/jira/browse/THRIFT-5154) - Generate interface IDs (IID) for Windows platforms
- [THRIFT-5235](https://issues.apache.org/jira/browse/THRIFT-5235) - Add property setter for isset flags
- [THRIFT-5261](https://issues.apache.org/jira/browse/THRIFT-5261) - Support for deprecated methods (via annotation)
- [THRIFT-5004](https://issues.apache.org/jira/browse/THRIFT-5004) - Make exception implementations more consistent
- [THRIFT-5005](https://issues.apache.org/jira/browse/THRIFT-5005) - Refactoring of the Delphi libs
- [THRIFT-5006](https://issues.apache.org/jira/browse/THRIFT-5006) - Implement DEFAULT_MAX_LENGTH at TFramedTransport
- [THRIFT-5007](https://issues.apache.org/jira/browse/THRIFT-5007) - Implement MAX_MESSAGE_SIZE and remaining read bytes control
- [THRIFT-5009](https://issues.apache.org/jira/browse/THRIFT-5009) - Serializer implemtation lacks support for layered transports
- [THRIFT-5012](https://issues.apache.org/jira/browse/THRIFT-5012) - Centralize configuration aspects into a commonly used configuration object
- [THRIFT-5015](https://issues.apache.org/jira/browse/THRIFT-5015) - WinHTTP QueryDataAvailable cannot be used to retrieve total response size
- [THRIFT-5036](https://issues.apache.org/jira/browse/THRIFT-5036) - buffered transport over sockets may run into unexpected timeouts
- [THRIFT-5048](https://issues.apache.org/jira/browse/THRIFT-5048) - `EnumUtils<T>.ToString()` throws for elements not known to the receiving end
- [THRIFT-5088](https://issues.apache.org/jira/browse/THRIFT-5088) - Memory leak in TEndpointTransportBase
- [THRIFT-5123](https://issues.apache.org/jira/browse/THRIFT-5123) - add possibility to query HTTP status code with WinHTTP
- [THRIFT-5146](https://issues.apache.org/jira/browse/THRIFT-5146) - Align Delphi to the test suite arguments rules (its "--switch=value", not "--switch value")
- [THRIFT-5186](https://issues.apache.org/jira/browse/THRIFT-5186) - AI_ADDRCONFIG: Thrift libraries crash with localhost-only network.
- [THRIFT-5188](https://issues.apache.org/jira/browse/THRIFT-5188) - Occasional ERROR_INSUFFICIENT_BUFFER at WinHttpQueryHeaders()
- [THRIFT-5251](https://issues.apache.org/jira/browse/THRIFT-5251) - `StringUtils<T>.ToString()` raises an exception for enum values outside range
- [THRIFT-5304](https://issues.apache.org/jira/browse/THRIFT-5304) - TWinHTTPClientImpl may incorrectly report that the message size is reached

### Documentation

- [THRIFT-5037](https://issues.apache.org/jira/browse/THRIFT-5037) - Documentation for TConfiguration
- [THRIFT-5065](https://issues.apache.org/jira/browse/THRIFT-5065) - Fix broken links in the IDL document
- [THRIFT-5074](https://issues.apache.org/jira/browse/THRIFT-5074) - Cleanup test suite command line options

### Go

- [THRIFT-4914](https://issues.apache.org/jira/browse/THRIFT-4914) - Compiler generated service clients now provide a new function, LastResponseMeta_(), to get the response metadata (e.g. headers from THeader) from the last client call.
- [THRIFT-4984](https://issues.apache.org/jira/browse/THRIFT-4984) - Scary and spammy "error processing request: EOF" logs from TSimpleServer
- [THRIFT-4985](https://issues.apache.org/jira/browse/THRIFT-4985) - Clean up logging in go library
- [THRIFT-5002](https://issues.apache.org/jira/browse/THRIFT-5002) - remote client fails to compile when extending services
- [THRIFT-5019](https://issues.apache.org/jira/browse/THRIFT-5019) - Multiple import same namespace for go included files
- [THRIFT-5046](https://issues.apache.org/jira/browse/THRIFT-5046) - Custom tags remove db and json tags
- [THRIFT-5069](https://issues.apache.org/jira/browse/THRIFT-5069) - Add TSerializerPool and TDeserializerPool, which are thread-safe versions of TSerializer and TDeserializer.
- [THRIFT-5092](https://issues.apache.org/jira/browse/THRIFT-5092) - Panic on nil buffer writes
- [THRIFT-5152](https://issues.apache.org/jira/browse/THRIFT-5152) - Separate timeout in TSocket
- [THRIFT-5164](https://issues.apache.org/jira/browse/THRIFT-5164) - Go middleware support
- [THRIFT-5214](https://issues.apache.org/jira/browse/THRIFT-5214) - go: Implement connection check in TSocket
- [THRIFT-5233](https://issues.apache.org/jira/browse/THRIFT-5233) - I/O timeout handling in go library
- [THRIFT-5240](https://issues.apache.org/jira/browse/THRIFT-5240) - The context passed into server handler implementations will be canceled when we detected that the client closed the connection.
- [THRIFT-5257](https://issues.apache.org/jira/browse/THRIFT-5257) - Go THeader implementation doesn't handle endOfFrame correctly
- [THRIFT-5270](https://issues.apache.org/jira/browse/THRIFT-5270) - Go library unit test is broken in go 1.15
- [THRIFT-5278](https://issues.apache.org/jira/browse/THRIFT-5278) - Expose API to use THeader+TCompactProtocol in go library client code
- [THRIFT-5279](https://issues.apache.org/jira/browse/THRIFT-5279) - Cleanups/small optimizations for go's serializer/deserializer code
- [THRIFT-5294](https://issues.apache.org/jira/browse/THRIFT-5294) - Go: TSimpleJSONProtocol could panic on WriteMessageEnd without matching WriteMessageBegin
- [THRIFT-5322](https://issues.apache.org/jira/browse/THRIFT-5322) - Add support to TConfiguration, and also fix a bug that could cause excessive memory usage when reading malformed messages from TCompactProtocol.
- [THRIFT-5338](https://issues.apache.org/jira/browse/THRIFT-5338) - Proposal: Raise minimal supported Go version with upcoming 0.14.0 release

### Haskell

- [THRIFT-5072](https://issues.apache.org/jira/browse/THRIFT-5072) - Haskell generator fails to distinguish between multiple enum types with conflicting enum identifiers
- [THRIFT-4959](https://issues.apache.org/jira/browse/THRIFT-4959) - cabal.exe: --enable-tests was specified, but tests can't be enabled in a remote package
- [THRIFT-5211](https://issues.apache.org/jira/browse/THRIFT-5211) - Handle incomplete reads correctly

### Java

- [THRIFT-4252](https://issues.apache.org/jira/browse/THRIFT-4252) - Cannot shutdown Java server when clients are still connected
- [THRIFT-4889](https://issues.apache.org/jira/browse/THRIFT-4889) - Add SASL support for non-blocking server
- [THRIFT-4937](https://issues.apache.org/jira/browse/THRIFT-4937) - Apache HttpCore 4.4.1 reached EoS
- [THRIFT-4949](https://issues.apache.org/jira/browse/THRIFT-4949) - improve HTTP/1 server test case
- [THRIFT-5008](https://issues.apache.org/jira/browse/THRIFT-5008) - Add a logger line in case of failing to dispose sasl
- [THRIFT-5013](https://issues.apache.org/jira/browse/THRIFT-5013) - Use Java Objects RequireNonNull
- [THRIFT-5016](https://issues.apache.org/jira/browse/THRIFT-5016) - Do Not Check 'other' For Null in Equals
- [THRIFT-5022](https://issues.apache.org/jira/browse/THRIFT-5022) - TIOStreamTransport.isOpen returns true for one-sided transports (see THRIFT-2530).
- [THRIFT-5031](https://issues.apache.org/jira/browse/THRIFT-5031) - Fix javadoc of TIOStreamTransport
- [THRIFT-5115](https://issues.apache.org/jira/browse/THRIFT-5115) - PR #2022 Updated gradle to 6.2 broke CI
- [THRIFT-5190](https://issues.apache.org/jira/browse/THRIFT-5190) - StringUtils haven't take `(offset + length) > bytes.length` into account
- [THRIFT-5197](https://issues.apache.org/jira/browse/THRIFT-5197) - TSSLTransportFactory Do Not Wrap NOT_OPEN Exception Type for Client
- [THRIFT-5201](https://issues.apache.org/jira/browse/THRIFT-5201) - Use Apache Parent Pom for Thrift Maven Plugin
- [THRIFT-5202](https://issues.apache.org/jira/browse/THRIFT-5202) - TNonblockingMultiFetchClient Use SLF4J Parameterized Logging
- [THRIFT-5203](https://issues.apache.org/jira/browse/THRIFT-5203) - Remove Unused toString Method in TSerializer
- [THRIFT-5237](https://issues.apache.org/jira/browse/THRIFT-5237) - Implement MAX_MESSAGE_SIZE and consolidate limits into a TConfiguration class
- [THRIFT-5247](https://issues.apache.org/jira/browse/THRIFT-5247) - Avoiding meaningless System.copy
- [THRIFT-5274](https://issues.apache.org/jira/browse/THRIFT-5274) - Thrift 0.13.0 does not work with JDK8
- [THRIFT-5287](https://issues.apache.org/jira/browse/THRIFT-5287) - Log When Client Connections are Dropped
- [THRIFT-5288](https://issues.apache.org/jira/browse/THRIFT-5288) - Move Support for ByteBuffer into TTransport

### JavaScript

- [THRIFT-5234](https://issues.apache.org/jira/browse/THRIFT-5234) - Fix a number of js/ts generation issues

### Lua

- [THRIFT-5106](https://issues.apache.org/jira/browse/THRIFT-5106) - Fix various Lua library and compiler issues
- [THRIFT-5260](https://issues.apache.org/jira/browse/THRIFT-5260) - Fix the thrift compiler generate problematic lua code for the oneway method
- [THRIFT-4992](https://issues.apache.org/jira/browse/THRIFT-4992) - thrift lua TcompactProtocol bug fix  #1881
- [THRIFT-5262](https://issues.apache.org/jira/browse/THRIFT-5262) - Fix a encoding struct bug in the compact protocol implementation to lua
- [THRIFT-5282](https://issues.apache.org/jira/browse/THRIFT-5282) - Add IPv6 client support to Lua library
- [THRIFT-5286](https://issues.apache.org/jira/browse/THRIFT-5286) - Fix Lua library readBool() in TCompactProtocol
- [THRIFT-5325](https://issues.apache.org/jira/browse/THRIFT-5325) - Fix Lua library writeStructEnd() in TCompactProtocol

### Markdown

- [THRIFT-5289](https://issues.apache.org/jira/browse/THRIFT-5289) - Add markdown compiler

### netstd

- [THRIFT-5032](https://issues.apache.org/jira/browse/THRIFT-5032) - Allows PascalCase properties for netstd
- [THRIFT-5091](https://issues.apache.org/jira/browse/THRIFT-5091) - Netstd generator produces uncompileable code for struct names ending with "_result" or "_args"
- [THRIFT-5095](https://issues.apache.org/jira/browse/THRIFT-5095) - ToString() should print entire structure, not just the top-level data
- [THRIFT-5198](https://issues.apache.org/jira/browse/THRIFT-5198) - Fix certain Visual Studio hints in generated netstd code
- [THRIFT-5216](https://issues.apache.org/jira/browse/THRIFT-5216) - generate DeepCopy methods
- [THRIFT-5220](https://issues.apache.org/jira/browse/THRIFT-5220) - DeepCopy() extension methods not generated when the IDL contains no service
- [THRIFT-5238](https://issues.apache.org/jira/browse/THRIFT-5238) - GetHashCode can throw NullReferenceException
- [THRIFT-5253](https://issues.apache.org/jira/browse/THRIFT-5253) - using Result in result name generates wrong IAsync interface
- [THRIFT-5254](https://issues.apache.org/jira/browse/THRIFT-5254) - Member name cannot be Isset (unless it is an "required" member)
- [THRIFT-5316](https://issues.apache.org/jira/browse/THRIFT-5316) - Netstd compiler generates wrong ToString() method: .ToString(sb)
- [THRIFT-5317](https://issues.apache.org/jira/browse/THRIFT-5317) - netstd compiler does not escape keywords
- [THRIFT-5320](https://issues.apache.org/jira/browse/THRIFT-5320) - Usage of "Task" as IDL identifier generates uncompileable code
- [THRIFT-4990](https://issues.apache.org/jira/browse/THRIFT-4990) - Upgrade to .NET Core 3.1 (LTS)
- [THRIFT-5010](https://issues.apache.org/jira/browse/THRIFT-5010) - BinaryPrimitives.Read/WriteInt32BigEndian should be used to convert to/from network byte order
- [THRIFT-5020](https://issues.apache.org/jira/browse/THRIFT-5020) - Refactoring & minor fixes for netstd library
- [THRIFT-5021](https://issues.apache.org/jira/browse/THRIFT-5021) - Implement MAX_MESSAGE_SIZE and consolidate limits into a TConfiguration class
- [THRIFT-5026](https://issues.apache.org/jira/browse/THRIFT-5026) - TestClient/Server ignores first cmdline argument
- [THRIFT-5027](https://issues.apache.org/jira/browse/THRIFT-5027) - Implement remaining read bytes checks
- [THRIFT-5053](https://issues.apache.org/jira/browse/THRIFT-5053) - Fix the netstd tutorial console logging and README
- [THRIFT-5083](https://issues.apache.org/jira/browse/THRIFT-5083) - NetStd JSON Protocol left in incorrect state
- [THRIFT-5133](https://issues.apache.org/jira/browse/THRIFT-5133) - TCompactProtocol string allocation improvement
- [THRIFT-5172](https://issues.apache.org/jira/browse/THRIFT-5172) - NetStd TBaseClient open output transport multiple times
- [THRIFT-5210](https://issues.apache.org/jira/browse/THRIFT-5210) - further performance optimizations
- [THRIFT-5239](https://issues.apache.org/jira/browse/THRIFT-5239) - THttpTransport should support passing in an HttpClient
- [THRIFT-5252](https://issues.apache.org/jira/browse/THRIFT-5252) - Make CreateHttpClientHandler() method virtual
- [THRIFT-5275](https://issues.apache.org/jira/browse/THRIFT-5275) - Compilation error with Thrift when used in .Net Framework 4.6.1 or above
- [THRIFT-5343](https://issues.apache.org/jira/browse/THRIFT-5343) - TTlsSocketTransport does not resolve IPv4 addresses or validate hostnames correctly

### Node.js

- [THRIFT-3356](https://issues.apache.org/jira/browse/THRIFT-3356) - TypeError: 'undefined' is not a function (evaluating 'Error.captureStackTrace(this, this.constructor)')
- [THRIFT-4994](https://issues.apache.org/jira/browse/THRIFT-4994) - TWebSocketTransport false scope in forEach in browser
- [THRIFT-5003](https://issues.apache.org/jira/browse/THRIFT-5003) - Websocket Connection in Browsers with nodejs code
- [THRIFT-5116](https://issues.apache.org/jira/browse/THRIFT-5116) - Ubuntu xenial NodeJS 6.x is too old, 10.x required
- [THRIFT-5163](https://issues.apache.org/jira/browse/THRIFT-5163) - adds Q to exports for browserify

### Perl

- [THRIFT-5050](https://issues.apache.org/jira/browse/THRIFT-5050) - Fix MemoryBuffer.pm to raise a proper exception if no data is available
- [THRIFT-5066](https://issues.apache.org/jira/browse/THRIFT-5066) - Implement testBinary invocation in TestClient.pl

### PHP

- [THRIFT-4942](https://issues.apache.org/jira/browse/THRIFT-4942) - Set PHP struct generated field values as private with getters and setters
- [THRIFT-5082](https://issues.apache.org/jira/browse/THRIFT-5082) - Add a Class reference for PHP enum $_TSPEC
- [THRIFT-5103](https://issues.apache.org/jira/browse/THRIFT-5103) - PHP 7.4 THttpClient deprecated error
- [THRIFT-5130](https://issues.apache.org/jira/browse/THRIFT-5130) - Use Apcu instead of APC
- [THRIFT-5132](https://issues.apache.org/jira/browse/THRIFT-5132) - Warning in TSocket when using ssl connection
- [THRIFT-5199](https://issues.apache.org/jira/browse/THRIFT-5199) - Infinite loop in PHP TSocket::write when peer closes connection
- [THRIFT-5336](https://issues.apache.org/jira/browse/THRIFT-5336) - Add possibility to setup connection timeout in TCurlClient

### Python

- [THRIFT-2087](https://issues.apache.org/jira/browse/THRIFT-2087) - unicode decode errors
- [THRIFT-4002](https://issues.apache.org/jira/browse/THRIFT-4002) - Thrift exceptions are not hashable in Python 3
- [THRIFT-5107](https://issues.apache.org/jira/browse/THRIFT-5107) - Travis build fails with missing Python 3.3 or newer?
- [THRIFT-5165](https://issues.apache.org/jira/browse/THRIFT-5165) - Python THttpClient saves cookie when Set-Cookie response header is present
- [THRIFT-5186](https://issues.apache.org/jira/browse/THRIFT-5186) - AI_ADDRCONFIG: Thrift libraries crash with localhost-only network.
- [THRIFT-5248](https://issues.apache.org/jira/browse/THRIFT-5248) - Python: Make TSocket.isOpen check if the other end is still connected
- [THRIFT-5303](https://issues.apache.org/jira/browse/THRIFT-5303) - Unicode decode errors in _fast_decode
- [THRIFT-5331](https://issues.apache.org/jira/browse/THRIFT-5331) - Python: allow THeaderProtocol to choose which subprotocol to use for outbound connections

### Ruby

- [THRIFT-5281](https://issues.apache.org/jira/browse/THRIFT-5281) -  Some warning messages need to be fixed
- [THRIFT-4707](https://issues.apache.org/jira/browse/THRIFT-4707) - Enable maintainers to upload newer versions of Ruby Gem of Thrift
- [THRIFT-5061](https://issues.apache.org/jira/browse/THRIFT-5061) - Pin Ruby's rack version to 2.0.8
- [THRIFT-5100](https://issues.apache.org/jira/browse/THRIFT-5100) - Gem::InstallError: byebug requires Ruby version >= 2.4.0.
- [THRIFT-5266](https://issues.apache.org/jira/browse/THRIFT-5266) - release ruby library thrift 0.13.0

### Rust

- [THRIFT-4764](https://issues.apache.org/jira/browse/THRIFT-4764) - Rust frontend emits deprecated clippy suppression attributes
- [THRIFT-5071](https://issues.apache.org/jira/browse/THRIFT-5071) - Rust: rust tutorial can not be compiled with rust edition 2018
- [THRIFT-5158](https://issues.apache.org/jira/browse/THRIFT-5158) - Update Rust Compiler to generate 2018 edition code only
- [THRIFT-5307](https://issues.apache.org/jira/browse/THRIFT-5307) - Rust generated code should compile cleanly with clippy
- [THRIFT-4915](https://issues.apache.org/jira/browse/THRIFT-4915) - Deserializing double into OrderedFloat always returns zero when using TCompactProtocol
- [THRIFT-4995](https://issues.apache.org/jira/browse/THRIFT-4995) - [Rust] Use `ToSocketAddrs` for expressing network addresses
- [THRIFT-5042](https://issues.apache.org/jira/browse/THRIFT-5042) - Fix failing cargo tests
- [THRIFT-5043](https://issues.apache.org/jira/browse/THRIFT-5043) - Make TBufferChannel clonable
- [THRIFT-5111](https://issues.apache.org/jira/browse/THRIFT-5111) - CI fails with error[E0721]: `await` is a keyword in the 2018 edition
- [THRIFT-5131](https://issues.apache.org/jira/browse/THRIFT-5131) - i64 maxint decoding panics with integer-encoding >= 1.1.0
- [THRIFT-5306](https://issues.apache.org/jira/browse/THRIFT-5306) - Rust library, tutorial, test, cross-test code should not throw any clippy errors

### Swift

- [THRIFT-4989](https://issues.apache.org/jira/browse/THRIFT-4989) - Run time exception when using TCompactProtocol
- [THRIFT-5128](https://issues.apache.org/jira/browse/THRIFT-5128) - Swift TFramedTransport does not work using present code
- [THRIFT-5138](https://issues.apache.org/jira/browse/THRIFT-5138) - Swift generator does not escape keywords properly
- [THRIFT-5155](https://issues.apache.org/jira/browse/THRIFT-5155) - Swift 5.1 support
- [THRIFT-5070](https://issues.apache.org/jira/browse/THRIFT-5070) - Swift: Hashable.hashValue is deprecated as a protocol requirement
- [THRIFT-5084](https://issues.apache.org/jira/browse/THRIFT-5084) - Swift: Server-side support for Multiplexing Services
- [THRIFT-5121](https://issues.apache.org/jira/browse/THRIFT-5121) - Logic bug in TMultiplexedProcessor – Swift
- [THRIFT-5125](https://issues.apache.org/jira/browse/THRIFT-5125) - Swift server does not work using present code.
- [THRIFT-5129](https://issues.apache.org/jira/browse/THRIFT-5129) - Swift TSocketTransport cannot be used to connect to client
- [THRIFT-5150](https://issues.apache.org/jira/browse/THRIFT-5150) - TSet does not compile with Swift 5.2

### Test Suite

- [THRIFT-4974](https://issues.apache.org/jira/browse/THRIFT-4974) - Add cross test for Python's Unix domain socket transport
- [THRIFT-5145](https://issues.apache.org/jira/browse/THRIFT-5145) - Streamline  --pipe and --named-pipe options in the code base
- [THRIFT-5171](https://issues.apache.org/jira/browse/THRIFT-5171) - Fix maven-ant-tasks to use HTTPS instead of HTTP

### TypeScript) - Library

- [THRIFT-5003](https://issues.apache.org/jira/browse/THRIFT-5003) - Websocket Connection in Browsers with nodejs code

### Tutorial

- [THRIFT-4972](https://issues.apache.org/jira/browse/THRIFT-4972) - Add Makefile.am to the Perl tutorial
- [THRIFT-4975](https://issues.apache.org/jira/browse/THRIFT-4975) - Add Makefile.am to the PHP tutorial
- [THRIFT-5051](https://issues.apache.org/jira/browse/THRIFT-5051) - Fix Python tutorials to address THRIFT-4002
- [THRIFT-5052](https://issues.apache.org/jira/browse/THRIFT-5052) - Make the Go tutorial executable to the end
- [THRIFT-5122](https://issues.apache.org/jira/browse/THRIFT-5122) - Fix memory leak in c_glib tutorial server


## 0.13.0

### New Languages

- (none)

### Deprecated Languages

- [THRIFT-4723](https://issues.apache.org/jira/browse/THRIFT-4723) - CSharp and Netcore targets are deprecated and will be removed with the next release) - use NetStd instead.

### Removed Languages

- [THRIFT-4719](https://issues.apache.org/jira/browse/THRIFT-4719) - Cocoa language was removed) - use swift instead.

### Breaking Changes

- [THRIFT-4743](https://issues.apache.org/jira/browse/THRIFT-4743) - compiler: removed the plug-in mechanism
- [THRIFT-4720](https://issues.apache.org/jira/browse/THRIFT-4720) - cpp: C++03/C++98 support has been removed; also removed boost as a runtime dependency
- [THRIFT-4730](https://issues.apache.org/jira/browse/THRIFT-4730) - cpp: BoostThreadFactory, PosixThreadFactory, StdThreadFactory removed
- [THRIFT-4732](https://issues.apache.org/jira/browse/THRIFT-4732) - cpp: CMake build changed to use BUILD_SHARED_LIBS
- [THRIFT-4735](https://issues.apache.org/jira/browse/THRIFT-4735) - cpp: Removed Qt4 support
- [THRIFT-4740](https://issues.apache.org/jira/browse/THRIFT-4740) - cpp: Use std::chrono::duration for timeouts
- [THRIFT-4762](https://issues.apache.org/jira/browse/THRIFT-4762) - cpp: TTransport::getOrigin() is now const
- [THRIFT-4702](https://issues.apache.org/jira/browse/THRIFT-4702) - java: class org.apache.thrift.AutoExpandingBuffer is no longer public
- [THRIFT-4709](https://issues.apache.org/jira/browse/THRIFT-4709) - java: changes to UTF-8 handling require JDK 1.7 at a minimum
- [THRIFT-4712](https://issues.apache.org/jira/browse/THRIFT-4712) - java: class org.apache.thrift.ShortStack is no longer public
- [THRIFT-4725](https://issues.apache.org/jira/browse/THRIFT-4725) - java: change return type signature of 'process' methods
- [THRIFT-4805](https://issues.apache.org/jira/browse/THRIFT-4805) - java: replaced TSaslTransportException with TTransportException
- [THRIFT-2530](https://issues.apache.org/jira/browse/THRIFT-2530) - java: TIOStreamTransport's "isOpen" now returns false after "close" is called
- [THRIFT-4675](https://issues.apache.org/jira/browse/THRIFT-4675) - js: now uses node-int64 for 64 bit integer constants
- [THRIFT-4841](https://issues.apache.org/jira/browse/THRIFT-4841) - delphi: old THTTPTransport is now TMsxmlHTTPTransport
- [THRIFT-4536](https://issues.apache.org/jira/browse/THRIFT-4536) - rust: convert from try-from crate to rust stable (1.34+), re-export ordered-float

### Known Issues (Blocker or Critical)

- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - C++: library don't work with HTTP (csharp server, cpp client; need cross test enhancement)

### As3

- [THRIFT-4784](https://issues.apache.org/jira/browse/THRIFT-4784) - Thrift should throw when skipping over unexpected data

### Build Process

- [THRIFT-2333](https://issues.apache.org/jira/browse/THRIFT-2333) - RPMBUILD: Abort build if user did not disable ruby but ruby build will fail later on
- [THRIFT-4689](https://issues.apache.org/jira/browse/THRIFT-4689) - Pull changes from 0.12.0 release branch into master
- [THRIFT-4690](https://issues.apache.org/jira/browse/THRIFT-4690) - Update dlang deimos for OpenSSL 1.1 (use 1.1.0h tagged release instead of master)
- [THRIFT-4694](https://issues.apache.org/jira/browse/THRIFT-4694) - Upgrade Java to Java 1.8
- [THRIFT-4716](https://issues.apache.org/jira/browse/THRIFT-4716) - Create a version alignment tool to make releases easier
- [THRIFT-4760](https://issues.apache.org/jira/browse/THRIFT-4760) - Install pkgconfig when using cmake
- [THRIFT-4769](https://issues.apache.org/jira/browse/THRIFT-4769) - Change NuGet package to use netstd artifact
- [THRIFT-4811](https://issues.apache.org/jira/browse/THRIFT-4811) - Add cmake config module
- [THRIFT-4855](https://issues.apache.org/jira/browse/THRIFT-4855) - go CI fails with "cannot find package "golang.org/x/tools/go/packages" in any of ..."
- [THRIFT-4864](https://issues.apache.org/jira/browse/THRIFT-4864) - CI fails at netstd
- [THRIFT-4874](https://issues.apache.org/jira/browse/THRIFT-4874) - Thrift 0.12.0 Source Distribution (.tar.gz) Contains Hardlinks) - Extract Fails
- [THRIFT-4896](https://issues.apache.org/jira/browse/THRIFT-4896) - cpp and c_glib include paths are added to source files when building
- [THRIFT-4966](https://issues.apache.org/jira/browse/THRIFT-4966) - Git ignore files generated by the build

### C glib

- [THRIFT-4842](https://issues.apache.org/jira/browse/THRIFT-4842) - Multiplexed protocol has a memory leak in set c_glib
- [THRIFT-4878](https://issues.apache.org/jira/browse/THRIFT-4878) - c_glib ThriftSocket support for unix domain sockets
- [THRIFT-4950](https://issues.apache.org/jira/browse/THRIFT-4950) - fix bind print  error and Macro call errors thrift_server_socket

### C#

- [THRIFT-3587](https://issues.apache.org/jira/browse/THRIFT-3587) - C# TTLSSocket does not use timeout for opening the socket
- [THRIFT-4024](https://issues.apache.org/jira/browse/THRIFT-4024) - Skip() should throw on unknown data types
- [THRIFT-4684](https://issues.apache.org/jira/browse/THRIFT-4684) - Missing namespace and un-used private fields in WCF fault classes when enable WCF in C# code generation
- [THRIFT-4715](https://issues.apache.org/jira/browse/THRIFT-4715) - C# union "data" should be strongly-typed
- [THRIFT-4723](https://issues.apache.org/jira/browse/THRIFT-4723) - Consolidate C# and netcore into new netstd language target (and finally deprecate both C# and netcore bindings)
- [THRIFT-4741](https://issues.apache.org/jira/browse/THRIFT-4741) - Missing "inner" argument from one CTOR
- [THRIFT-4769](https://issues.apache.org/jira/browse/THRIFT-4769) - Change NuGet package to use netstd artifact
- [THRIFT-4859](https://issues.apache.org/jira/browse/THRIFT-4859) - Enables changing 'UserAgent'
- [THRIFT-4907](https://issues.apache.org/jira/browse/THRIFT-4907) - strong named assemblies wanted

### C++

- [THRIFT-4384](https://issues.apache.org/jira/browse/THRIFT-4384) - Using a concurrent client with cpp async is not safe.
- [THRIFT-4441](https://issues.apache.org/jira/browse/THRIFT-4441) - C++: support building lib without Boost
- [THRIFT-4487](https://issues.apache.org/jira/browse/THRIFT-4487) - gettimeofday: windows implementation not quoting source, applying license to foreign code
- [THRIFT-4593](https://issues.apache.org/jira/browse/THRIFT-4593) - Unit Tests failing on Alpine Linux due to non-portable mutex initializers
- [THRIFT-4678](https://issues.apache.org/jira/browse/THRIFT-4678) - add noexcept cpp generator option
- [THRIFT-4720](https://issues.apache.org/jira/browse/THRIFT-4720) - Drop support for C++03/C++98 and begin refactoring
- [THRIFT-4730](https://issues.apache.org/jira/browse/THRIFT-4730) - Remove pthread and boost::thread library support and use std::thread for C++11
- [THRIFT-4735](https://issues.apache.org/jira/browse/THRIFT-4735) - Remove C++ Qt4 support (leave Qt5) - Qt4 LTS ended in 2014
- [THRIFT-4739](https://issues.apache.org/jira/browse/THRIFT-4739) - Good old concurrency_test failing on windows builds again with some regularity
- [THRIFT-4740](https://issues.apache.org/jira/browse/THRIFT-4740) - Use std::chrono for timeout and remove old structures.
- [THRIFT-4762](https://issues.apache.org/jira/browse/THRIFT-4762) - C++: Applied some C++11 refactorings to the runtime library and compiler
- [THRIFT-4776](https://issues.apache.org/jira/browse/THRIFT-4776) - Modernize c++11 code by clang-tidy
- [THRIFT-4830](https://issues.apache.org/jira/browse/THRIFT-4830) - Add to_string function for enum in C++ file generate
- [THRIFT-4861](https://issues.apache.org/jira/browse/THRIFT-4861) - Fix use of deprecated boost endian header; move to minimum boost 1.56.0
- [THRIFT-4936](https://issues.apache.org/jira/browse/THRIFT-4936) - add depth limit type exception description
- [THRIFT-4962](https://issues.apache.org/jira/browse/THRIFT-4962) - Deadlock in TimerManager::stop

### cocoa

- [THRIFT-4719](https://issues.apache.org/jira/browse/THRIFT-4719) - Remove cocoa language support

## Compiler (General)

- [THRIFT-4743](https://issues.apache.org/jira/browse/THRIFT-4743) - Remove the compiler plug-in mode

### contributed

- [THRIFT-4897](https://issues.apache.org/jira/browse/THRIFT-4897) - UT of thrift-maven-plugin failed

## D language

- [THRIFT-4690](https://issues.apache.org/jira/browse/THRIFT-4690) - Update dlang deimos for OpenSSL 1.1 (use 1.1.0h tagged release instead of master)
- [THRIFT-4724](https://issues.apache.org/jira/browse/THRIFT-4724) - dlang dub.json dependency for openssl is too restrictive
- [THRIFT-4918](https://issues.apache.org/jira/browse/THRIFT-4918) - dlang name conflict

### dart

- [THRIFT-4654](https://issues.apache.org/jira/browse/THRIFT-4654) - Thrift Dart port is not compatible with Dart 2

### Delphi

- [THRIFT-4024](https://issues.apache.org/jira/browse/THRIFT-4024) - Skip() should throw on unknown data types
- [THRIFT-4841](https://issues.apache.org/jira/browse/THRIFT-4841) - THTTPTransport relies on activeX component
- [THRIFT-4843](https://issues.apache.org/jira/browse/THRIFT-4843) - http:// and https:// schemes are switched in test client
- [THRIFT-4862](https://issues.apache.org/jira/browse/THRIFT-4862) - better ToString() support for enums and container types
- [THRIFT-4863](https://issues.apache.org/jira/browse/THRIFT-4863) - better indication of WinHTTP errors
- [THRIFT-4881](https://issues.apache.org/jira/browse/THRIFT-4881) - Allow TLS1.1 and TLS1.2 over WinHTTP even when not configured as systemwide default
- [THRIFT-4882](https://issues.apache.org/jira/browse/THRIFT-4882) - Autodetect proxy settings with WinHTTP
- [THRIFT-4884](https://issues.apache.org/jira/browse/THRIFT-4884) - Add serialisation performance test for Delphi
- [THRIFT-4886](https://issues.apache.org/jira/browse/THRIFT-4886) - More detailed error information for WinHTTP transport
- [THRIFT-4894](https://issues.apache.org/jira/browse/THRIFT-4894) - Enable automatic content encoding handling for gzip,deflate in the WinHTTP client
- [THRIFT-4939](https://issues.apache.org/jira/browse/THRIFT-4939) - `TThriftListImpl<T>.Sort()` does not use comparer
- [THRIFT-4944](https://issues.apache.org/jira/browse/THRIFT-4944) - Field IDs > 255 fail with compact protocol

### Documentation

- [THRIFT-4697](https://issues.apache.org/jira/browse/THRIFT-4697) - Create updated release procedures
- [THRIFT-4808](https://issues.apache.org/jira/browse/THRIFT-4808) - Update LANGUAGES.md on master to reflect master
- [THRIFT-4933](https://issues.apache.org/jira/browse/THRIFT-4933) - Incorrect description in the 0.12.0 version of the documentation

### Erlang

- [THRIFT-4583](https://issues.apache.org/jira/browse/THRIFT-4583) - Support rebar3 for erlang builds
- [THRIFT-4744](https://issues.apache.org/jira/browse/THRIFT-4744) - Erlang help intendation not aligned

### Go

- [THRIFT-4024](https://issues.apache.org/jira/browse/THRIFT-4024) - Skip() should throw on unknown data types
- [THRIFT-4612](https://issues.apache.org/jira/browse/THRIFT-4612) - Add THeader for Go
- [THRIFT-4747](https://issues.apache.org/jira/browse/THRIFT-4747) - The 'omitempty' tag should not be appended to optional fields that have a default value
- [THRIFT-4797](https://issues.apache.org/jira/browse/THRIFT-4797) - Generated Go code produces name collisions on imports
- [THRIFT-4908](https://issues.apache.org/jira/browse/THRIFT-4908) - reader&writer in golang's TBinaryProtocol is not necessary and misleading

### haskell

- [THRIFT-4834](https://issues.apache.org/jira/browse/THRIFT-4834) - CI error at Haskell: Failed to load interface for `Network'
- [THRIFT-4955](https://issues.apache.org/jira/browse/THRIFT-4955) - Haskell test broken due to extension to CompactProtoTestStruct
- [THRIFT-4956](https://issues.apache.org/jira/browse/THRIFT-4956) - DebugProtoTest_Main.hs: Invalid ThriftType 128

### haxe

- [THRIFT-4024](https://issues.apache.org/jira/browse/THRIFT-4024) - Skip() should throw on unknown data types
- [THRIFT-4812](https://issues.apache.org/jira/browse/THRIFT-4812) - haxelib readme still points to old ASF git repo

### HTML

- [THRIFT-4763](https://issues.apache.org/jira/browse/THRIFT-4763) - HTML compiler produces invalid HTML document

### Java

- [THRIFT-2530](https://issues.apache.org/jira/browse/THRIFT-2530) - TIOStreamTransport's isOpen() always be true even if close() was called.
- [THRIFT-4368](https://issues.apache.org/jira/browse/THRIFT-4368) - Guaranteed NPE in TBaseAsyncProcessor.java
- [THRIFT-4469](https://issues.apache.org/jira/browse/THRIFT-4469) - isServing is not thread safe
- [THRIFT-4481](https://issues.apache.org/jira/browse/THRIFT-4481) - TBinaryProtocol.writeMessageEnd isn't throwable exception
- [THRIFT-4695](https://issues.apache.org/jira/browse/THRIFT-4695) - Pre-Size Java Collections in Union
- [THRIFT-4696](https://issues.apache.org/jira/browse/THRIFT-4696) - NonBlocking Server: Use case-switch Statement Instead of if-else Clauses
- [THRIFT-4702](https://issues.apache.org/jira/browse/THRIFT-4702) - Improve AutoExpandingBuffer
- [THRIFT-4704](https://issues.apache.org/jira/browse/THRIFT-4704) - Streamline TDeserializer Implementation
- [THRIFT-4709](https://issues.apache.org/jira/browse/THRIFT-4709) - Use StandardCharset UTF-8
- [THRIFT-4711](https://issues.apache.org/jira/browse/THRIFT-4711) - Improve Immutable None Type Instantiation
- [THRIFT-4712](https://issues.apache.org/jira/browse/THRIFT-4712) - Improve Performance of ShortStack
- [THRIFT-4713](https://issues.apache.org/jira/browse/THRIFT-4713) - Review of TBaseHelper.java
- [THRIFT-4714](https://issues.apache.org/jira/browse/THRIFT-4714) - Java TFramedTransport calls write twice for each flush
- [THRIFT-4725](https://issues.apache.org/jira/browse/THRIFT-4725) - Change Return Type Signature of Process Methods
- [THRIFT-4726](https://issues.apache.org/jira/browse/THRIFT-4726) - Remove SLF4J Logging Guards
- [THRIFT-4748](https://issues.apache.org/jira/browse/THRIFT-4748) - Add Jitpack support
- [THRIFT-4766](https://issues.apache.org/jira/browse/THRIFT-4766) - JDK9+ fails on missing annotations
- [THRIFT-4773](https://issues.apache.org/jira/browse/THRIFT-4773) - TSaslTransport should relay underlying TTransportException to TSaslTransportException
- [THRIFT-4805](https://issues.apache.org/jira/browse/THRIFT-4805) - Suppress excessive logging of SASL TTransportExceptions in case of END_OF_FILE
- [THRIFT-4849](https://issues.apache.org/jira/browse/THRIFT-4849) - Do not Ignore InterruptedException
- [THRIFT-4851](https://issues.apache.org/jira/browse/THRIFT-4851) - Remove All Calls To printStackTrace
- [THRIFT-4857](https://issues.apache.org/jira/browse/THRIFT-4857) - Java field hash code implementation inconsistent with equals.
- [THRIFT-4858](https://issues.apache.org/jira/browse/THRIFT-4858) - Java TThreadPoolServer: confusing error message on closed socket
- [THRIFT-4865](https://issues.apache.org/jira/browse/THRIFT-4865) - warning: [deprecation] UTF_8 in Charsets has been deprecated
- [THRIFT-4899](https://issues.apache.org/jira/browse/THRIFT-4899) - Generated TypeScript declarations incorrectly references types when there is more than 1 include
- [THRIFT-4945](https://issues.apache.org/jira/browse/THRIFT-4945) - Log output mode is not standardized
- [THRIFT-4957](https://issues.apache.org/jira/browse/THRIFT-4957) - testSanePartsOfCompactProtoTestStruct FAILED

### JavaScript

- [THRIFT-4675](https://issues.apache.org/jira/browse/THRIFT-4675) - JS code generators not handling int64 type properly for constants and for TypeScript type mappings
- [THRIFT-4728](https://issues.apache.org/jira/browse/THRIFT-4728) - Cleanup for the double rendering test in JS
- [THRIFT-4737](https://issues.apache.org/jira/browse/THRIFT-4737) - thrift.js does not use customHeaders in jqRequest
- [THRIFT-4745](https://issues.apache.org/jira/browse/THRIFT-4745) - warning C4305: 'initializing' : truncation from '"__int64' to 'long'
- [THRIFT-4757](https://issues.apache.org/jira/browse/THRIFT-4757) - grunt-shell-spawn drags in sync-exec which has a security notice

### netcore

- [THRIFT-4024](https://issues.apache.org/jira/browse/THRIFT-4024) - Skip() should throw on unknown data types
- [THRIFT-4722](https://issues.apache.org/jira/browse/THRIFT-4722) - Netcore union "data" should be strongly-typed
- [THRIFT-4723](https://issues.apache.org/jira/browse/THRIFT-4723) - Consolidate C# and netcore into new netstd language target (and finally deprecate both C# and netcore bindings)
- [THRIFT-4742](https://issues.apache.org/jira/browse/THRIFT-4742) - Typo "cannot read from null input stream" on write
- [THRIFT-4769](https://issues.apache.org/jira/browse/THRIFT-4769) - Change NuGet package to use netstd artifact
- [THRIFT-4919](https://issues.apache.org/jira/browse/THRIFT-4919) - THttpTransport.cs (netstd) and THttpClientTransport (netcore) have bad timeout code

### netstd

- [THRIFT-4768](https://issues.apache.org/jira/browse/THRIFT-4768) - Remove "nullable" option from the code base (netstd ONLY)
- [THRIFT-4772](https://issues.apache.org/jira/browse/THRIFT-4772) - fully enable server-side usage of framed/buffered transports
- [THRIFT-4813](https://issues.apache.org/jira/browse/THRIFT-4813) - NamedPipes may not work in all cases
- [THRIFT-4816](https://issues.apache.org/jira/browse/THRIFT-4816) - JSONTransports Context.WriteAsync/ReadAsync are badly named
- [THRIFT-4817](https://issues.apache.org/jira/browse/THRIFT-4817) - Add string CTOR to TTlsSocketTransport
- [THRIFT-4818](https://issues.apache.org/jira/browse/THRIFT-4818) - Test client should use cancellation token
- [THRIFT-4821](https://issues.apache.org/jira/browse/THRIFT-4821) - Normalize TServerSocketTransport constructors in netstd
- [THRIFT-4822](https://issues.apache.org/jira/browse/THRIFT-4822) - Refactor bool CTOR flags into enum type
- [THRIFT-4824](https://issues.apache.org/jira/browse/THRIFT-4824) - Logger deprecation warnings in tutorial
- [THRIFT-4825](https://issues.apache.org/jira/browse/THRIFT-4825) - Align TTlsServerSocketTransport constructors with TServerSocketTransport) - Breaking Change
- [THRIFT-4829](https://issues.apache.org/jira/browse/THRIFT-4829) - HTTP server transport lacks TransportFactory arguments
- [THRIFT-4831](https://issues.apache.org/jira/browse/THRIFT-4831) - interface ITProtocolFactory should be class TProtocolFactory again
- [THRIFT-4832](https://issues.apache.org/jira/browse/THRIFT-4832) - superfluous backing field causes CS0169 "field never used"
- [THRIFT-4839](https://issues.apache.org/jira/browse/THRIFT-4839) - Remove embedded buffering/framed options from TCP transports
- [THRIFT-4840](https://issues.apache.org/jira/browse/THRIFT-4840) - Update the README in the netstd tutorial to include references to the new buffering arguments
- [THRIFT-4848](https://issues.apache.org/jira/browse/THRIFT-4848) - Add ability to set Content-Type,Accept headers in HTTP client
- [THRIFT-4853](https://issues.apache.org/jira/browse/THRIFT-4853) - TServerFramedTransport is now obsolete and can be removed
- [THRIFT-4854](https://issues.apache.org/jira/browse/THRIFT-4854) - oneway calls do not work over HTTP
- [THRIFT-4860](https://issues.apache.org/jira/browse/THRIFT-4860) - Allow changing "User-Agent"
- [THRIFT-4879](https://issues.apache.org/jira/browse/THRIFT-4879) - general performance improvements for netstd library
- [THRIFT-4891](https://issues.apache.org/jira/browse/THRIFT-4891) - Align HTTP test client with all other variants
- [THRIFT-4893](https://issues.apache.org/jira/browse/THRIFT-4893) - Enable automatic content encoding handling for gzip,deflate in the HTTP client
- [THRIFT-4898](https://issues.apache.org/jira/browse/THRIFT-4898) - Pipe write operations across a network are limited to 65,535 bytes per write.
- [THRIFT-4919](https://issues.apache.org/jira/browse/THRIFT-4919) - THttpTransport.cs (netstd) and THttpClientTransport (netcore) have bad timeout code

### node.js

- [THRIFT-3060](https://issues.apache.org/jira/browse/THRIFT-3060) - Node.js client retry logic doesn't flush offline queue on reconnect
- [THRIFT-4675](https://issues.apache.org/jira/browse/THRIFT-4675) - JS code generators not handling int64 type properly for constants and for TypeScript type mappings
- [THRIFT-4738](https://issues.apache.org/jira/browse/THRIFT-4738) - Generated typescript type definition files are incorrect
- [THRIFT-4771](https://issues.apache.org/jira/browse/THRIFT-4771) - THeader for node.js
- [THRIFT-4809](https://issues.apache.org/jira/browse/THRIFT-4809) - Javascript episodic code generation
- [THRIFT-4844](https://issues.apache.org/jira/browse/THRIFT-4844) - createConnection ignores connect_timeout option

### perl

- [THRIFT-4691](https://issues.apache.org/jira/browse/THRIFT-4691) - The perl CPAN module contains no tests

### PHP

- [THRIFT-4751](https://issues.apache.org/jira/browse/THRIFT-4751) - Missing imports in TProtocol (phpdoc related only)
- [THRIFT-4794](https://issues.apache.org/jira/browse/THRIFT-4794) - Finish adding json protocol to the php cross test
- [THRIFT-4807](https://issues.apache.org/jira/browse/THRIFT-4807) - PHP extension segfaults if reference is used in input
- [THRIFT-4845](https://issues.apache.org/jira/browse/THRIFT-4845) - PHP's TCurlClient ignores timeout values smaller that 1 second

### python

- [THRIFT-1549](https://issues.apache.org/jira/browse/THRIFT-1549) - Python TSSLSocket: Shutdown cleanly
- [THRIFT-4733](https://issues.apache.org/jira/browse/THRIFT-4733) - Address already in use with python unit test
- [THRIFT-4767](https://issues.apache.org/jira/browse/THRIFT-4767) - support tcp keepalive in python
- [THRIFT-4778](https://issues.apache.org/jira/browse/THRIFT-4778) - Python protocol factories do not derive from TProtocolFactory
- [THRIFT-4779](https://issues.apache.org/jira/browse/THRIFT-4779) - Python, Java TMultiplexedProcessor do not raise TProtocolException
- [THRIFT-4780](https://issues.apache.org/jira/browse/THRIFT-4780) - TMultiplexedProcessor is not fully tested or implemented in Python
- [THRIFT-4783](https://issues.apache.org/jira/browse/THRIFT-4783) - Thrift should throw when skipping over unexpected data
- [THRIFT-4798](https://issues.apache.org/jira/browse/THRIFT-4798) - Fix python THttpServer to honor correct oneway reply semantics
- [THRIFT-4892](https://issues.apache.org/jira/browse/THRIFT-4892) - SASL data type exception for PLAIN
- [THRIFT-4920](https://issues.apache.org/jira/browse/THRIFT-4920) - Binary constants emit non-binary Python literals

### ruby

- [THRIFT-4721](https://issues.apache.org/jira/browse/THRIFT-4721) - Installing the ruby gem on systems without make fails in the build_ext task.
- [THRIFT-4971](https://issues.apache.org/jira/browse/THRIFT-4971) - Fix lib/rb/spec/union_spec.rb so that CI succeeds

### rust

- [THRIFT-4953](https://issues.apache.org/jira/browse/THRIFT-4953) - Unspecified Field Identifier Creates Non Compiling Rust Code
- [THRIFT-4960](https://issues.apache.org/jira/browse/THRIFT-4960) - Bare Trait Warnings

### Swift

- [THRIFT-4902](https://issues.apache.org/jira/browse/THRIFT-4902) - Swift compatibility with Swift 4.2, 5.0 and 5.1

### Test suite

- [THRIFT-4301](https://issues.apache.org/jira/browse/THRIFT-4301) - configuring --without-python and --without-py3 still invokes py3 tests in make cross
- [THRIFT-4405](https://issues.apache.org/jira/browse/THRIFT-4405) - Incorrect handling of sequence numbers that wrap to negative
- [THRIFT-4794](https://issues.apache.org/jira/browse/THRIFT-4794) - Finish adding json protocol to the php cross test
- [THRIFT-4969](https://issues.apache.org/jira/browse/THRIFT-4969) - PHP test doesn't check the code generation with php:classmap

### Tutorial

- [THRIFT-4426](https://issues.apache.org/jira/browse/THRIFT-4426) - repository should not include symbolic links
- [THRIFT-4965](https://issues.apache.org/jira/browse/THRIFT-4965) - Perl tutorial server doesn't work due to the lack of use statement
- [THRIFT-4967](https://issues.apache.org/jira/browse/THRIFT-4967) - Node.js tutorial server fails if the zip function invoked
- [THRIFT-4968](https://issues.apache.org/jira/browse/THRIFT-4968) - Makefile.am in the Ruby tutorial refers to Python directory
- [THRIFT-4970](https://issues.apache.org/jira/browse/THRIFT-4970) - PHP tutorial doesn't work with Thrift v0.12.0+

### Typescript

- [THRIFT-4675](https://issues.apache.org/jira/browse/THRIFT-4675) - JS code generators not handling int64 type properly for constants and for TypeScript type mappings

## 0.12.0

Released 2019-JAN-04

### New Languages
- Common LISP (cl)
- Swift
- Typescript (nodets)

### Deprecated Languages
- C++03/C++98 (move to C++11)
- Cocoa (move to Swift)

### Breaking Changes (since 0.11.0)
- [THRIFT-4529](https://issues.apache.org/jira/browse/THRIFT-4529) - Rust enum variants are now camel-cased instead of uppercased to conform to Rust naming conventions
- [THRIFT-4448](https://issues.apache.org/jira/browse/THRIFT-4448) - Support for golang 1.6 and earlier has been dropped.
- [THRIFT-4474](https://issues.apache.org/jira/browse/THRIFT-4474) - PHP now uses the PSR-4 loader by default instead of class maps.
- [THRIFT-4532](https://issues.apache.org/jira/browse/THRIFT-4532) - method signatures changed in the compiler's t_oop_generator.
- [THRIFT-4648](https://issues.apache.org/jira/browse/THRIFT-4648) - The C (GLib) compiler's handling of namespaces has been improved.

### Known Issues (Blocker or Critical)
- [THRIFT-4037](https://issues.apache.org/jira/browse/THRIFT-4037) - build: use a single build system for thrift
- [THRIFT-4119](https://issues.apache.org/jira/browse/THRIFT-4119) - build: bootstrap.sh is missing from source tarball
- [THRIFT-3289](https://issues.apache.org/jira/browse/THRIFT-3289) - csharp: socket exhaustion in csharp implementation
- [THRIFT-3029](https://issues.apache.org/jira/browse/THRIFT-3029) - cocoa: Getters for fields defined with uppercase names do not work
- [THRIFT-3325](https://issues.apache.org/jira/browse/THRIFT-3325) - cocoa: Extended services aren't subclasses in generated Cocoa
- [THRIFT-4116](https://issues.apache.org/jira/browse/THRIFT-4116) - cocoa: Thrift de-capitalizes the name of IsSet property in Cocoa
- [THRIFT-3877](https://issues.apache.org/jira/browse/THRIFT-3877) - cpp: the http implementation is not standard; interop with other languages is spotty at best
- [THRIFT-4180](https://issues.apache.org/jira/browse/THRIFT-4180) - cpp: Impossible to build Thrift C++ library for Android (NDK)
- [THRIFT-4384](https://issues.apache.org/jira/browse/THRIFT-4384) - cpp: Using multiple async services simultaneously is not thread-safe
- [THRIFT-3108](https://issues.apache.org/jira/browse/THRIFT-3108) - haskell: Defaulted struct parameters on a service generates invalid Haskell
- [THRIFT-3990](https://issues.apache.org/jira/browse/THRIFT-3990) - nodejs: Exception swallowed by deserialization function
- [THRIFT-4214](https://issues.apache.org/jira/browse/THRIFT-4214) - nodejs: `map<i64,value>` key treated as hex value in JavaScript
- [THRIFT-4602](https://issues.apache.org/jira/browse/THRIFT-4602) - nodejs: ERROR in ./node_modules/thrift/lib/nodejs/lib/thrift/connection.js Module not found: Error: Can't resolve 'child_process'
- [THRIFT-4639](https://issues.apache.org/jira/browse/THRIFT-4639) - nodejs: Sequence numbering for multiplexed protocol broken
- [THRIFT-1310](https://issues.apache.org/jira/browse/THRIFT-1310) - php: sequence and reconnection management issues
- [THRIFT-1538](https://issues.apache.org/jira/browse/THRIFT-1538) - php: Error during deserialization int64 on 32-bit architecture
- [THRIFT-1580](https://issues.apache.org/jira/browse/THRIFT-1580) - php: thrift type i64 java to php serialize/deserealize not working
- [THRIFT-1950](https://issues.apache.org/jira/browse/THRIFT-1950) - php: PHP gets stuck in infinite loop
- [THRIFT-2954](https://issues.apache.org/jira/browse/THRIFT-2954) - python: sending int or float in a double field breaks the connection
- [THRIFT-4080](https://issues.apache.org/jira/browse/THRIFT-4080) - python: unix sockets can get stuck forever
- [THRIFT-4281](https://issues.apache.org/jira/browse/THRIFT-4281) - python: generated code is out of order and causes load issues
- [THRIFT-4677](https://issues.apache.org/jira/browse/THRIFT-4677) - py3: UnicodeDecideError in Python3

### Build Process
- [THRIFT-4067](https://issues.apache.org/jira/browse/THRIFT-4067) - Windows thrift compiler distributed on the apache web site has runtime dependencies
- [THRIFT-4308](https://issues.apache.org/jira/browse/THRIFT-4308) - D language docker images need demios for libevent and openssl fixed to re-enable make cross on dlang
- [THRIFT-4579](https://issues.apache.org/jira/browse/THRIFT-4579) - Use Ubuntu Bionic (18.04 LTS) for CI builds instead of Artful (17.10)
- [THRIFT-4508](https://issues.apache.org/jira/browse/THRIFT-4508) - Define CI operating system coverage rules for the project and (hopefully) simplify CI a little more
- [THRIFT-4397](https://issues.apache.org/jira/browse/THRIFT-4397) - ubuntu install instructions broken on 16.04
- [THRIFT-4545](https://issues.apache.org/jira/browse/THRIFT-4545) - Appveyor builds are failing due to a haskell / cabal update in chocolatey
- [THRIFT-4452](https://issues.apache.org/jira/browse/THRIFT-4452) - optimize Dockerfile (only onetime apt-get update)
- [THRIFT-4440](https://issues.apache.org/jira/browse/THRIFT-4440) - rm `build/docker/ubuntu-trusty/Dockerfile.orig`
- [THRIFT-4352](https://issues.apache.org/jira/browse/THRIFT-4352) - Ubuntu Artful doesn't appear to be compatible with Thrift and Haxe 3.4.2
- [THRIFT-4666](https://issues.apache.org/jira/browse/THRIFT-4666) - DLang Client Pool Test fails sporadically
- [THRIFT-4676](https://issues.apache.org/jira/browse/THRIFT-4676) - CL tutorial build fails sporadically
- [THRIFT-4456](https://issues.apache.org/jira/browse/THRIFT-4456) - Make haxelib download quiet so it doesn't blow up the build log
- [THRIFT-4605](https://issues.apache.org/jira/browse/THRIFT-4605) - bootstrap.sh fails if automake=1.16.1

### c_glib
- [THRIFT-4648](https://issues.apache.org/jira/browse/THRIFT-4648) - The C (GLib) compiler's handling of namespaces has been improved.
- [THRIFT-4622](https://issues.apache.org/jira/browse/THRIFT-4622) - glibC compilation issue
- [THRIFT-4671](https://issues.apache.org/jira/browse/THRIFT-4671) - c glib is unable to handle client close unexpectedly

### cl (new language support in 0.12.0)
- [THRIFT-82](https://issues.apache.org/jira/browse/THRIFT-82) - Common Lisp support

### csharp
- [THRIFT-4558](https://issues.apache.org/jira/browse/THRIFT-4558) - reserved Csharp keywords are not escaped in some cases
- [THRIFT-4637](https://issues.apache.org/jira/browse/THRIFT-4637) - C# async mode generates incorrect code with inherited services
- [THRIFT-4672](https://issues.apache.org/jira/browse/THRIFT-4672) - IAsyncResult style methods not being supported by certain transports leads to issues in mixed ISync/IAsync use cases
- [THRIFT-4539](https://issues.apache.org/jira/browse/THRIFT-4539) - Allow TBufferedTransport to be used as base class
- [THRIFT-4535](https://issues.apache.org/jira/browse/THRIFT-4535) - XML docs; code cleanup (tabs->spaces; String->string)
- [THRIFT-4492](https://issues.apache.org/jira/browse/THRIFT-4492) - protected ExceptionType type member of TApplicationException cannot be accessed
- [THRIFT-4446](https://issues.apache.org/jira/browse/THRIFT-4446) - JSONProtocol Base64 Encoding Trims Padding
- [THRIFT-4455](https://issues.apache.org/jira/browse/THRIFT-4455) - Missing dispose calls in ThreadedServer & ThreadpoolServer
- [THRIFT-4609](https://issues.apache.org/jira/browse/THRIFT-4609) - keep InnerException wherever appropriate
- [THRIFT-4673](https://issues.apache.org/jira/browse/THRIFT-4673) - IAsyncResult not supported by layered transports (buffered/framed)

### cpp
- [THRIFT-4476](https://issues.apache.org/jira/browse/THRIFT-4476) - Typecasting problem on list items
- [THRIFT-4465](https://issues.apache.org/jira/browse/THRIFT-4465) - TNonblockingServer throwing THRIFT LOGGER: TConnection::workSocket(): THRIFT_EAGAIN (unavailable resources)
- [THRIFT-4680](https://issues.apache.org/jira/browse/THRIFT-4680) - TBufferTransports.h does not compile under Visual Studio 2017
- [THRIFT-4618](https://issues.apache.org/jira/browse/THRIFT-4618) - TNonblockingServer crash because of limitation of select()
- [THRIFT-4620](https://issues.apache.org/jira/browse/THRIFT-4620) - TZlibTransport.cpp doesn't ensure that there is enough space for the zlib flush marker in the buffer.
- [THRIFT-4571](https://issues.apache.org/jira/browse/THRIFT-4571) - ZeroMQ contrib library needs a refresh
- [THRIFT-4559](https://issues.apache.org/jira/browse/THRIFT-4559) - TSSLServerSocket incorrectly prints errors
- [THRIFT-4578](https://issues.apache.org/jira/browse/THRIFT-4578) - Move `TAsyncProtocolProcessor` into main thrift library
- [THRIFT-4418](https://issues.apache.org/jira/browse/THRIFT-4418) - evhttp_connection_new is deprecated; use evhttp_connection_base_new

### compiler
- [THRIFT-4644](https://issues.apache.org/jira/browse/THRIFT-4644) - Compiler cannot be compiled on macOS(maybe also on other platforms with clang)
- [THRIFT-4531](https://issues.apache.org/jira/browse/THRIFT-4531) - Thrift generates wrong Python code for immutable structures with optional members
- [THRIFT-4513](https://issues.apache.org/jira/browse/THRIFT-4513) - thrift generated code is not stable for constants
- [THRIFT-4532](https://issues.apache.org/jira/browse/THRIFT-4532) - Avoid updating Thrift compiler generated code if the output has not changed
- [THRIFT-4400](https://issues.apache.org/jira/browse/THRIFT-4400) - Visual Studio Compiler project should link runtime statically in release builds
- [THRIFT-4399](https://issues.apache.org/jira/browse/THRIFT-4399) - plugin.thrift t_const_value is not used as a union in C++ code -- fix this
- [THRIFT-4496](https://issues.apache.org/jira/browse/THRIFT-4496) - Dealing with language keywords in Thrift (e.g. service method names)
- [THRIFT-4393](https://issues.apache.org/jira/browse/THRIFT-4393) - repeated runs of compiler produce different binary output at plugin interface

### dlang
- [THRIFT-4478](https://issues.apache.org/jira/browse/THRIFT-4478) - Thrift will not build with dlang 2.078 or later
- [THRIFT-4503](https://issues.apache.org/jira/browse/THRIFT-4503) - dlang servers logError on normal client disconnecti
Download .txt
gitextract_p34yoq1j/

├── .asf.yaml
├── .clang-format
├── .dockerignore
├── .editorconfig
├── .flake8
├── .gitattributes
├── .github/
│   ├── dependabot.yml
│   ├── mergeable.yml
│   ├── pull_request_template.md
│   ├── stale.yml
│   └── workflows/
│       ├── build.yml
│       ├── cmake.yml
│       ├── msvc.yml
│       ├── publish.yml
│       ├── pypi.yml
│       ├── release_rust.yml
│       └── sca.yml
├── .gitignore
├── .gitmodules
├── .travis.yml
├── ApacheThrift.nuspec
├── CHANGES.md
├── CMakeLists.txt
├── CONTRIBUTING.md
├── FUZZING.md
├── LANGUAGES.md
├── LICENSE
├── Makefile.am
├── NOTICE
├── Package.swift
├── README.md
├── Thrift.podspec
├── aclocal/
│   ├── ac_prog_bison.m4
│   ├── ax_boost_base.m4
│   ├── ax_check_openssl.m4
│   ├── ax_compare_version.m4
│   ├── ax_cxx_compile_stdcxx.m4
│   ├── ax_cxx_compile_stdcxx_11.m4
│   ├── ax_dmd.m4
│   ├── ax_javac_and_java.m4
│   ├── ax_lib_event.m4
│   ├── ax_lib_zlib.m4
│   ├── ax_lua.m4
│   ├── ax_prog_dotnetcore_version.m4
│   ├── ax_prog_haxe_version.m4
│   ├── ax_prog_perl_modules.m4
│   ├── ax_signed_right_shift.m4
│   ├── ax_thrift_internal.m4
│   └── tar.m4
├── appveyor.yml
├── bootstrap.sh
├── bower.json
├── build/
│   ├── appveyor/
│   │   ├── CYGWIN-appveyor-full.bat
│   │   ├── MINGW-appveyor-full.bat
│   │   ├── MSVC-appveyor-full.bat
│   │   ├── MSYS-appveyor-full.bat
│   │   ├── README.md
│   │   ├── build-libevent.bat
│   │   ├── build-zlib.bat
│   │   ├── simulate-appveyor.bat
│   │   └── win_showenv.bat
│   ├── cmake/
│   │   ├── BoostMacros.cmake
│   │   ├── BuildType.cmake
│   │   ├── CPackConfig.cmake
│   │   ├── ConfigureChecks.cmake
│   │   ├── DefineCMakeDefaults.cmake
│   │   ├── DefineInstallationPaths.cmake
│   │   ├── DefineOptions.cmake
│   │   ├── DefinePlatformSpecifc.cmake
│   │   ├── FindAnt.cmake
│   │   ├── FindClangTools.cmake
│   │   ├── FindGLIB.cmake
│   │   ├── FindGradle.cmake
│   │   ├── FindInttypes.cmake
│   │   ├── FindLibevent.cmake
│   │   ├── GenerateConfigModule.cmake
│   │   ├── NewPlatformDebug.cmake
│   │   ├── README-MSYS2.md
│   │   ├── README.md
│   │   ├── StaticCodeAnalysis.cmake
│   │   ├── ThriftConfig.cmake.in
│   │   ├── ThriftMacros.cmake
│   │   ├── android-toolchain.cmake
│   │   ├── config.h.in
│   │   ├── mingw32-toolchain.cmake
│   │   └── uninstall.cmake
│   ├── docker/
│   │   ├── README.md
│   │   ├── msvc/
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── build-compiler.bat
│   │   │   └── build.bat
│   │   ├── refresh.sh
│   │   ├── run.sh
│   │   ├── scripts/
│   │   │   ├── autotools.sh
│   │   │   ├── cmake.sh
│   │   │   ├── coverity.sh
│   │   │   ├── covscan.sh
│   │   │   ├── cross-test.sh
│   │   │   ├── dpkg.sh
│   │   │   ├── make-dist.sh
│   │   │   ├── sca.sh
│   │   │   └── ubsan.sh
│   │   ├── ubuntu-focal/
│   │   │   └── Dockerfile
│   │   ├── ubuntu-jammy/
│   │   │   └── Dockerfile
│   │   └── ubuntu-noble/
│   │       └── Dockerfile
│   ├── fixchanges.sh
│   └── veralign.sh
├── compiler/
│   └── cpp/
│       ├── CMakeLists.txt
│       ├── Makefile.am
│       ├── README.md
│       ├── coding_standards.md
│       ├── compiler.sln
│       ├── compiler.vcxproj
│       ├── compiler.vcxproj.filters
│       ├── src/
│       │   ├── Makefile.am
│       │   └── thrift/
│       │       ├── audit/
│       │       │   ├── t_audit.cpp
│       │       │   └── t_audit.h
│       │       ├── common.cc
│       │       ├── common.h
│       │       ├── generate/
│       │       │   ├── go_validator_generator.cc
│       │       │   ├── go_validator_generator.h
│       │       │   ├── t_c_glib_generator.cc
│       │       │   ├── t_cl_generator.cc
│       │       │   ├── t_cpp_generator.cc
│       │       │   ├── t_d_generator.cc
│       │       │   ├── t_dart_generator.cc
│       │       │   ├── t_delphi_generator.cc
│       │       │   ├── t_erl_generator.cc
│       │       │   ├── t_generator.cc
│       │       │   ├── t_generator.h
│       │       │   ├── t_generator_registry.h
│       │       │   ├── t_go_generator.cc
│       │       │   ├── t_go_generator.h
│       │       │   ├── t_gv_generator.cc
│       │       │   ├── t_haxe_generator.cc
│       │       │   ├── t_html_generator.cc
│       │       │   ├── t_html_generator.h
│       │       │   ├── t_java_generator.cc
│       │       │   ├── t_javame_generator.cc
│       │       │   ├── t_js_generator.cc
│       │       │   ├── t_json_generator.cc
│       │       │   ├── t_kotlin_generator.cc
│       │       │   ├── t_lua_generator.cc
│       │       │   ├── t_markdown_generator.cc
│       │       │   ├── t_netstd_generator.cc
│       │       │   ├── t_netstd_generator.h
│       │       │   ├── 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_rs_generator.cc
│       │       │   ├── t_st_generator.cc
│       │       │   ├── t_swift_generator.cc
│       │       │   ├── t_xml_generator.cc
│       │       │   ├── t_xsd_generator.cc
│       │       │   ├── validator_parser.cc
│       │       │   └── validator_parser.h
│       │       ├── globals.h
│       │       ├── logging.cc
│       │       ├── logging.h
│       │       ├── main.cc
│       │       ├── main.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_type.h
│       │       │   ├── t_typedef.cc
│       │       │   └── t_typedef.h
│       │       ├── platform.h
│       │       ├── thriftl.ll
│       │       ├── thrifty.yy
│       │       └── windows/
│       │           └── config.h
│       ├── test/
│       │   ├── CMakeLists.txt
│       │   ├── Makefile.am
│       │   ├── compiler/
│       │   │   ├── Included.thrift
│       │   │   ├── Including.thrift
│       │   │   ├── Single.thrift
│       │   │   └── staleness_check.py
│       │   └── keyword-samples/
│       │       ├── const1_return.thrift
│       │       ├── enum1_return.thrift
│       │       ├── enum2_return.thrift
│       │       ├── exception1_return.thrift
│       │       ├── exception2_return.thrift
│       │       ├── service1_return.thrift
│       │       ├── service2_return.thrift
│       │       ├── service3_return.thrift
│       │       ├── service4_return.thrift
│       │       ├── struct1_return.thrift
│       │       ├── struct2_return.thrift
│       │       ├── typedef1_return.thrift
│       │       ├── union1_return.thrift
│       │       └── union2_return.thrift
│       └── tests/
│           ├── CMakeLists.txt
│           ├── README.md
│           ├── catch/
│           │   └── catch.hpp
│           ├── cpp/
│           │   ├── expected_Color_default.txt
│           │   ├── expected_Color_enum_class.txt
│           │   ├── expected_Color_pure_enums.txt
│           │   ├── expected_TestStruct_default.txt
│           │   ├── expected_TestStruct_private_optional.txt
│           │   ├── t_cpp_generator_enum_class_tests.cc
│           │   ├── t_cpp_generator_forward_setter_tests.cc
│           │   ├── t_cpp_generator_private_optional_tests.cc
│           │   ├── t_cpp_generator_template_streamop_tests.cc
│           │   ├── t_cpp_generator_test_utils.h
│           │   ├── test_enum_class.thrift
│           │   ├── test_forward_setter.thrift
│           │   ├── test_private_optional.thrift
│           │   └── test_template_streamop.thrift
│           ├── netcore/
│           │   ├── t_netcore_generator_functional_tests.cc
│           │   ├── t_netcore_generator_functional_tests_helpers.cc
│           │   ├── t_netcore_generator_functional_tests_helpers.h
│           │   ├── t_netcore_generator_helpers_tests.cc
│           │   └── t_netcore_generator_initialization_tests.cc
│           ├── ocaml/
│           │   ├── README.md
│           │   ├── snapshot_exception_types_i.hpp
│           │   ├── snapshot_service_handle_ex.hpp
│           │   ├── snapshot_typedefs.cc
│           │   └── t_ocaml_generator_tests.cc
│           ├── tests_main.cc
│           ├── thrift_test_globals.cc
│           └── thrift_test_parser_support.cc
├── composer.json
├── configure.ac
├── contrib/
│   ├── README.md
│   ├── Rebus/
│   │   ├── App.config
│   │   ├── Program.cs
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── README.md
│   │   ├── RebusSample.csproj
│   │   ├── RebusSample.sln
│   │   ├── ServiceImpl/
│   │   │   ├── Both.cs
│   │   │   ├── Client.cs
│   │   │   └── Server.cs
│   │   └── sample.thrift
│   ├── Stomp/
│   │   ├── README.md
│   │   └── Thrift.Transport.STOMP.pas
│   ├── Vagrantfile
│   ├── async-test/
│   │   ├── aggr.thrift
│   │   ├── test-leaf.py
│   │   └── test-server.cpp
│   ├── fb303/
│   │   ├── LICENSE
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── TClientInfo.cpp
│   │   ├── TClientInfo.h
│   │   ├── aclocal/
│   │   │   ├── ax_boost_base.m4
│   │   │   ├── ax_cxx_compile_stdcxx_11.m4
│   │   │   ├── ax_javac_and_java.m4
│   │   │   └── ax_thrift_internal.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.properties
│   │   │   ├── build.xml
│   │   │   └── src/
│   │   │       └── FacebookBase.java
│   │   ├── php/
│   │   │   └── FacebookBase.php
│   │   └── py/
│   │       ├── Makefile.am
│   │       ├── fb303/
│   │       │   └── FacebookBase.py
│   │       ├── fb303_scripts/
│   │       │   ├── __init__.py
│   │       │   └── fb303_simple_mgmt.py
│   │       └── setup.py
│   ├── mingw-cross-compile.sh
│   ├── parse_profiling.py
│   ├── thrift-maven-plugin/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── apache/
│   │       │               └── thrift/
│   │       │                   └── maven/
│   │       │                       ├── AbstractThriftMojo.java
│   │       │                       ├── Thrift.java
│   │       │                       ├── ThriftCompileMojo.java
│   │       │                       └── ThriftTestCompileMojo.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── apache/
│   │           │           └── thrift/
│   │           │               └── maven/
│   │           │                   ├── TestAbstractThriftMojo.java
│   │           │                   └── TestThrift.java
│   │           └── resources/
│   │               └── idl/
│   │                   ├── shared.thrift
│   │                   └── tutorial.thrift
│   ├── thrift.el
│   ├── thrift.spec
│   ├── thrift.vim
│   ├── thrift_dump.cpp
│   ├── transport-sample/
│   │   ├── README.md
│   │   ├── Sample.thrift
│   │   ├── ThriftCommon.cpp
│   │   ├── ThriftCommon.h
│   │   ├── client/
│   │   │   ├── ReadMe.txt
│   │   │   ├── client.cpp
│   │   │   ├── client.vcxproj
│   │   │   ├── client.vcxproj.filters
│   │   │   ├── stdafx.cpp
│   │   │   ├── stdafx.h
│   │   │   └── targetver.h
│   │   ├── config.h
│   │   ├── server/
│   │   │   ├── ReadMe.txt
│   │   │   ├── server.cpp
│   │   │   ├── server.vcxproj
│   │   │   ├── server.vcxproj.filters
│   │   │   ├── stdafx.cpp
│   │   │   ├── stdafx.h
│   │   │   └── targetver.h
│   │   ├── thriftme.bat
│   │   ├── thriftme.sh
│   │   └── transport-sample.sln
│   ├── vagrant/
│   │   └── centos-6.5/
│   │       ├── README.md
│   │       └── Vagrantfile
│   └── zeromq/
│       ├── README.md
│       ├── TZmqClient.cpp
│       ├── TZmqClient.h
│       ├── TZmqClient.py
│       ├── TZmqServer.cpp
│       ├── TZmqServer.h
│       ├── TZmqServer.py
│       ├── csharp/
│       │   ├── AssemblyInfo.cs
│       │   ├── Main.cs
│       │   ├── TZmqClient.cs
│       │   ├── TZmqServer.cs
│       │   ├── ThriftZMQ.csproj
│       │   └── ThriftZMQ.sln
│       ├── storage.thrift
│       ├── test-client.cpp
│       ├── test-client.py
│       ├── test-receiver.cpp
│       ├── test-sender.cpp
│       ├── test-server.cpp
│       └── test-server.py
├── debian/
│   ├── README.md
│   ├── changelog
│   ├── compat
│   ├── control
│   ├── copyright
│   ├── dirs
│   ├── docs
│   ├── libthrift-dev.install
│   ├── libthrift0.install
│   ├── php5-thrift.dirs
│   ├── rules
│   ├── substvars
│   ├── thrift-doc.docs
│   └── thrift-doc.install
├── doap.rdf
├── doc/
│   ├── ReleaseManagement.md
│   ├── coding_standards.md
│   ├── committers.md
│   ├── install/
│   │   ├── README.md
│   │   ├── centos.md
│   │   ├── debian.md
│   │   ├── os_x.md
│   │   └── windows.md
│   ├── licenses/
│   │   └── otp-base-license.txt
│   └── specs/
│       ├── HeaderFormat.md
│       ├── SequenceNumbers.md
│       ├── idl.md
│       ├── thrift-binary-protocol.md
│       ├── thrift-compact-protocol.md
│       ├── thrift-parameter-validation-proposal.md
│       ├── thrift-protocol-spec.md
│       ├── thrift-rpc.md
│       ├── thrift-sasl-spec.txt
│       ├── thrift-tconfiguration.md
│       └── thrift.tex
├── dub.json
├── eslint.config.mjs
├── go.mod
├── jitpack.yml
├── lib/
│   ├── Makefile.am
│   ├── c_glib/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── src/
│   │   │   └── thrift/
│   │   │       └── c_glib/
│   │   │           ├── processor/
│   │   │           │   ├── thrift_dispatch_processor.c
│   │   │           │   ├── thrift_dispatch_processor.h
│   │   │           │   ├── thrift_multiplexed_processor.c
│   │   │           │   ├── thrift_multiplexed_processor.h
│   │   │           │   ├── thrift_processor.c
│   │   │           │   └── thrift_processor.h
│   │   │           ├── protocol/
│   │   │           │   ├── thrift_binary_protocol.c
│   │   │           │   ├── thrift_binary_protocol.h
│   │   │           │   ├── thrift_binary_protocol_factory.c
│   │   │           │   ├── thrift_binary_protocol_factory.h
│   │   │           │   ├── thrift_compact_protocol.c
│   │   │           │   ├── thrift_compact_protocol.h
│   │   │           │   ├── thrift_compact_protocol_factory.c
│   │   │           │   ├── thrift_compact_protocol_factory.h
│   │   │           │   ├── thrift_multiplexed_protocol.c
│   │   │           │   ├── thrift_multiplexed_protocol.h
│   │   │           │   ├── thrift_protocol.c
│   │   │           │   ├── thrift_protocol.h
│   │   │           │   ├── thrift_protocol_decorator.c
│   │   │           │   ├── thrift_protocol_decorator.h
│   │   │           │   ├── thrift_protocol_factory.c
│   │   │           │   ├── thrift_protocol_factory.h
│   │   │           │   ├── thrift_stored_message_protocol.c
│   │   │           │   └── thrift_stored_message_protocol.h
│   │   │           ├── server/
│   │   │           │   ├── thrift_server.c
│   │   │           │   ├── thrift_server.h
│   │   │           │   ├── thrift_simple_server.c
│   │   │           │   └── thrift_simple_server.h
│   │   │           ├── thrift.c
│   │   │           ├── thrift.h
│   │   │           ├── thrift_application_exception.c
│   │   │           ├── thrift_application_exception.h
│   │   │           ├── thrift_configuration.c
│   │   │           ├── thrift_configuration.h
│   │   │           ├── thrift_struct.c
│   │   │           ├── thrift_struct.h
│   │   │           └── transport/
│   │   │               ├── thrift_buffered_transport.c
│   │   │               ├── thrift_buffered_transport.h
│   │   │               ├── thrift_buffered_transport_factory.c
│   │   │               ├── thrift_buffered_transport_factory.h
│   │   │               ├── thrift_fd_transport.c
│   │   │               ├── thrift_fd_transport.h
│   │   │               ├── thrift_framed_transport.c
│   │   │               ├── thrift_framed_transport.h
│   │   │               ├── thrift_framed_transport_factory.c
│   │   │               ├── thrift_framed_transport_factory.h
│   │   │               ├── thrift_memory_buffer.c
│   │   │               ├── thrift_memory_buffer.h
│   │   │               ├── thrift_platform_socket.h
│   │   │               ├── thrift_server_socket.c
│   │   │               ├── thrift_server_socket.h
│   │   │               ├── thrift_server_transport.c
│   │   │               ├── thrift_server_transport.h
│   │   │               ├── thrift_socket.c
│   │   │               ├── thrift_socket.h
│   │   │               ├── thrift_ssl_socket.c
│   │   │               ├── thrift_ssl_socket.h
│   │   │               ├── thrift_transport.c
│   │   │               ├── thrift_transport.h
│   │   │               ├── thrift_transport_factory.c
│   │   │               ├── thrift_transport_factory.h
│   │   │               ├── thrift_zlib_transport.c
│   │   │               ├── thrift_zlib_transport.h
│   │   │               ├── thrift_zlib_transport_factory.c
│   │   │               └── thrift_zlib_transport_factory.h
│   │   ├── test/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ContainerTest.thrift
│   │   │   ├── Makefile.am
│   │   │   ├── fuzz/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── README.md
│   │   │   │   ├── fuzz_parse_binary.c
│   │   │   │   └── fuzz_parse_compact.c
│   │   │   ├── glib.suppress
│   │   │   ├── testapplicationexception.c
│   │   │   ├── testbinaryprotocol.c
│   │   │   ├── testbufferedtransport.c
│   │   │   ├── testcompactprotocol.c
│   │   │   ├── testcontainertest.c
│   │   │   ├── testdebugproto.c
│   │   │   ├── testfdtransport.c
│   │   │   ├── testframedtransport.c
│   │   │   ├── testmemorybuffer.c
│   │   │   ├── testoptionalrequired.c
│   │   │   ├── testserialization.c
│   │   │   ├── testsimpleserver.c
│   │   │   ├── teststruct.c
│   │   │   ├── testthriftbinaryreadcheck.c
│   │   │   ├── testthriftbufferedreadcheck.c
│   │   │   ├── testthriftcompactreadcheck.c
│   │   │   ├── testthriftfdreadcheck.c
│   │   │   ├── testthriftframedreadcheck.c
│   │   │   ├── testthriftmemorybufferreadcheck.c
│   │   │   ├── testthrifttest.c
│   │   │   ├── testthrifttestclient.cpp
│   │   │   ├── testthrifttestzlibclient.cpp
│   │   │   ├── testtransportsocket.c
│   │   │   ├── testtransportsslsocket.c
│   │   │   └── testzlibtransport.c
│   │   └── thrift_c_glib.pc.in
│   ├── cl/
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── READMES/
│   │   │   └── readme-cassandra.lisp
│   │   ├── ensure-externals.sh
│   │   ├── load-locally.lisp
│   │   └── test/
│   │       └── make-test-binary.lisp
│   ├── cpp/
│   │   ├── 3rdparty.props
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── libthrift.vcxproj
│   │   ├── libthrift.vcxproj.filters
│   │   ├── libthriftnb.vcxproj
│   │   ├── libthriftnb.vcxproj.filters
│   │   ├── src/
│   │   │   └── thrift/
│   │   │       ├── TApplicationException.cpp
│   │   │       ├── TApplicationException.h
│   │   │       ├── TBase.h
│   │   │       ├── TConfiguration.h
│   │   │       ├── TDispatchProcessor.h
│   │   │       ├── TLogging.h
│   │   │       ├── TNonCopyable.h
│   │   │       ├── TOutput.cpp
│   │   │       ├── TOutput.h
│   │   │       ├── TPrintTo.h
│   │   │       ├── TProcessor.h
│   │   │       ├── TToString.h
│   │   │       ├── TUuid.cpp
│   │   │       ├── TUuid.h
│   │   │       ├── Thrift.h
│   │   │       ├── VirtualProfiling.cpp
│   │   │       ├── async/
│   │   │       │   ├── TAsyncBufferProcessor.h
│   │   │       │   ├── TAsyncChannel.cpp
│   │   │       │   ├── TAsyncChannel.h
│   │   │       │   ├── TAsyncDispatchProcessor.h
│   │   │       │   ├── TAsyncProcessor.h
│   │   │       │   ├── TAsyncProtocolProcessor.cpp
│   │   │       │   ├── TAsyncProtocolProcessor.h
│   │   │       │   ├── TConcurrentClientSyncInfo.cpp
│   │   │       │   ├── TConcurrentClientSyncInfo.h
│   │   │       │   ├── TEvhttpClientChannel.cpp
│   │   │       │   ├── TEvhttpClientChannel.h
│   │   │       │   ├── TEvhttpServer.cpp
│   │   │       │   └── TEvhttpServer.h
│   │   │       ├── concurrency/
│   │   │       │   ├── Exception.h
│   │   │       │   ├── FunctionRunner.h
│   │   │       │   ├── Monitor.cpp
│   │   │       │   ├── Monitor.h
│   │   │       │   ├── Mutex.cpp
│   │   │       │   ├── Mutex.h
│   │   │       │   ├── Thread.cpp
│   │   │       │   ├── Thread.h
│   │   │       │   ├── ThreadFactory.cpp
│   │   │       │   ├── ThreadFactory.h
│   │   │       │   ├── ThreadManager.cpp
│   │   │       │   ├── ThreadManager.h
│   │   │       │   ├── TimerManager.cpp
│   │   │       │   └── TimerManager.h
│   │   │       ├── processor/
│   │   │       │   ├── PeekProcessor.cpp
│   │   │       │   ├── PeekProcessor.h
│   │   │       │   ├── StatsProcessor.h
│   │   │       │   └── TMultiplexedProcessor.h
│   │   │       ├── protocol/
│   │   │       │   ├── TBase64Utils.cpp
│   │   │       │   ├── TBase64Utils.h
│   │   │       │   ├── TBinaryProtocol.h
│   │   │       │   ├── TBinaryProtocol.tcc
│   │   │       │   ├── TCompactProtocol.h
│   │   │       │   ├── TCompactProtocol.tcc
│   │   │       │   ├── TDebugProtocol.cpp
│   │   │       │   ├── TDebugProtocol.h
│   │   │       │   ├── TEnum.h
│   │   │       │   ├── THeaderProtocol.cpp
│   │   │       │   ├── THeaderProtocol.h
│   │   │       │   ├── TJSONProtocol.cpp
│   │   │       │   ├── TJSONProtocol.h
│   │   │       │   ├── TList.h
│   │   │       │   ├── TMap.h
│   │   │       │   ├── TMultiplexedProtocol.cpp
│   │   │       │   ├── TMultiplexedProtocol.h
│   │   │       │   ├── TProtocol.cpp
│   │   │       │   ├── TProtocol.h
│   │   │       │   ├── TProtocolDecorator.h
│   │   │       │   ├── TProtocolException.h
│   │   │       │   ├── TProtocolTap.h
│   │   │       │   ├── TProtocolTypes.h
│   │   │       │   ├── TSet.h
│   │   │       │   └── TVirtualProtocol.h
│   │   │       ├── qt/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── TQIODeviceTransport.cpp
│   │   │       │   ├── TQIODeviceTransport.h
│   │   │       │   ├── TQTcpServer.cpp
│   │   │       │   └── TQTcpServer.h
│   │   │       ├── server/
│   │   │       │   ├── TConnectedClient.cpp
│   │   │       │   ├── TConnectedClient.h
│   │   │       │   ├── TNonblockingServer.cpp
│   │   │       │   ├── TNonblockingServer.h
│   │   │       │   ├── TServer.cpp
│   │   │       │   ├── TServer.h
│   │   │       │   ├── TServerFramework.cpp
│   │   │       │   ├── TServerFramework.h
│   │   │       │   ├── TSimpleServer.cpp
│   │   │       │   ├── TSimpleServer.h
│   │   │       │   ├── TThreadPoolServer.cpp
│   │   │       │   ├── TThreadPoolServer.h
│   │   │       │   ├── TThreadedServer.cpp
│   │   │       │   └── TThreadedServer.h
│   │   │       ├── thrift-config.h
│   │   │       ├── thrift_export.h
│   │   │       ├── transport/
│   │   │       │   ├── PlatformSocket.h
│   │   │       │   ├── SocketCommon.cpp
│   │   │       │   ├── SocketCommon.h
│   │   │       │   ├── TBufferTransports.cpp
│   │   │       │   ├── TBufferTransports.h
│   │   │       │   ├── TFDTransport.cpp
│   │   │       │   ├── TFDTransport.h
│   │   │       │   ├── TFileTransport.cpp
│   │   │       │   ├── TFileTransport.h
│   │   │       │   ├── THeaderTransport.cpp
│   │   │       │   ├── THeaderTransport.h
│   │   │       │   ├── THttpClient.cpp
│   │   │       │   ├── THttpClient.h
│   │   │       │   ├── THttpServer.cpp
│   │   │       │   ├── THttpServer.h
│   │   │       │   ├── THttpTransport.cpp
│   │   │       │   ├── THttpTransport.h
│   │   │       │   ├── TNonblockingSSLServerSocket.cpp
│   │   │       │   ├── TNonblockingSSLServerSocket.h
│   │   │       │   ├── TNonblockingServerSocket.cpp
│   │   │       │   ├── TNonblockingServerSocket.h
│   │   │       │   ├── TNonblockingServerTransport.h
│   │   │       │   ├── TPipe.cpp
│   │   │       │   ├── TPipe.h
│   │   │       │   ├── TPipeServer.cpp
│   │   │       │   ├── TPipeServer.h
│   │   │       │   ├── TSSLServerSocket.cpp
│   │   │       │   ├── TSSLServerSocket.h
│   │   │       │   ├── TSSLSocket.cpp
│   │   │       │   ├── TSSLSocket.h
│   │   │       │   ├── TServerSocket.cpp
│   │   │       │   ├── TServerSocket.h
│   │   │       │   ├── TServerTransport.h
│   │   │       │   ├── TShortReadTransport.h
│   │   │       │   ├── TSimpleFileTransport.cpp
│   │   │       │   ├── TSimpleFileTransport.h
│   │   │       │   ├── TSocket.cpp
│   │   │       │   ├── TSocket.h
│   │   │       │   ├── TSocketPool.cpp
│   │   │       │   ├── TSocketPool.h
│   │   │       │   ├── TSocketUtils.h
│   │   │       │   ├── TTransport.h
│   │   │       │   ├── TTransportException.cpp
│   │   │       │   ├── TTransportException.h
│   │   │       │   ├── TTransportUtils.cpp
│   │   │       │   ├── TTransportUtils.h
│   │   │       │   ├── TVirtualTransport.h
│   │   │       │   ├── TWebSocketServer.cpp
│   │   │       │   ├── TWebSocketServer.h
│   │   │       │   ├── TZlibTransport.cpp
│   │   │       │   └── TZlibTransport.h
│   │   │       └── windows/
│   │   │           ├── GetTimeOfDay.cpp
│   │   │           ├── GetTimeOfDay.h
│   │   │           ├── Operators.h
│   │   │           ├── OverlappedSubmissionThread.cpp
│   │   │           ├── OverlappedSubmissionThread.h
│   │   │           ├── SocketPair.cpp
│   │   │           ├── SocketPair.h
│   │   │           ├── Sync.h
│   │   │           ├── TWinsockSingleton.cpp
│   │   │           ├── TWinsockSingleton.h
│   │   │           ├── WinFcntl.cpp
│   │   │           ├── WinFcntl.h
│   │   │           └── config.h
│   │   ├── test/
│   │   │   ├── AllProtocolTests.cpp
│   │   │   ├── AllProtocolTests.tcc
│   │   │   ├── AnnotationTest.cpp
│   │   │   ├── Base64Test.cpp
│   │   │   ├── Benchmark.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DebugProtoTest.cpp
│   │   │   ├── DebugProtoTest_extras.cpp
│   │   │   ├── EnumTest.cpp
│   │   │   ├── GenericHelpers.h
│   │   │   ├── JSONProtoTest.cpp
│   │   │   ├── Makefile.am
│   │   │   ├── OneWayHTTPTest.cpp
│   │   │   ├── OneWayTest.thrift
│   │   │   ├── OpenSSLManualInitTest.cpp
│   │   │   ├── OptionalRequiredTest.cpp
│   │   │   ├── RecursiveTest.cpp
│   │   │   ├── RenderedDoubleConstantsTest.cpp
│   │   │   ├── SecurityFromBufferTest.cpp
│   │   │   ├── SecurityTest.cpp
│   │   │   ├── SpecializationTest.cpp
│   │   │   ├── TBufferBaseTest.cpp
│   │   │   ├── TFDTransportTest.cpp
│   │   │   ├── TFileTransportTest.cpp
│   │   │   ├── TMemoryBufferTest.cpp
│   │   │   ├── TNonblockingSSLServerTest.cpp
│   │   │   ├── TNonblockingServerTest.cpp
│   │   │   ├── TPipeInterruptTest.cpp
│   │   │   ├── TPipedTransportTest.cpp
│   │   │   ├── TSSLSocketInterruptTest.cpp
│   │   │   ├── TServerIntegrationTest.cpp
│   │   │   ├── TServerSocketTest.cpp
│   │   │   ├── TServerTransportTest.cpp
│   │   │   ├── TSocketInterruptTest.cpp
│   │   │   ├── TTransportCheckThrow.h
│   │   │   ├── TUuidTest.cpp
│   │   │   ├── TUuidTestBoost.cpp
│   │   │   ├── TUuidTestBoostNoDirective.cpp
│   │   │   ├── Thrift5272.cpp
│   │   │   ├── Thrift5272.thrift
│   │   │   ├── ThriftTest_extras.cpp
│   │   │   ├── ThrifttReadCheckTests.cpp
│   │   │   ├── ToStringTest.cpp
│   │   │   ├── TransportTest.cpp
│   │   │   ├── TypedefTest.cpp
│   │   │   ├── UnitTestMain.cpp
│   │   │   ├── ZlibTest.cpp
│   │   │   ├── concurrency/
│   │   │   │   ├── Tests.cpp
│   │   │   │   ├── ThreadFactoryTests.h
│   │   │   │   ├── ThreadManagerTests.h
│   │   │   │   └── TimerManagerTests.h
│   │   │   ├── fuzz/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FuzzCommon.tcc
│   │   │   │   ├── FuzzParseBinary.cpp
│   │   │   │   ├── FuzzParseCompact.cpp
│   │   │   │   ├── FuzzParseJson.cpp
│   │   │   │   ├── FuzzRoundtripBinary.cpp
│   │   │   │   ├── FuzzRoundtripCompact.cpp
│   │   │   │   ├── FuzzRoundtripJson.cpp
│   │   │   │   ├── Makefile.am
│   │   │   │   └── README.md
│   │   │   ├── link/
│   │   │   │   ├── LinkTest.cpp
│   │   │   │   ├── TemplatedService1.cpp
│   │   │   │   └── TemplatedService2.cpp
│   │   │   ├── processor/
│   │   │   │   ├── EventLog.cpp
│   │   │   │   ├── EventLog.h
│   │   │   │   ├── Handlers.h
│   │   │   │   ├── ProcessorTest.cpp
│   │   │   │   ├── ServerThread.cpp
│   │   │   │   ├── ServerThread.h
│   │   │   │   └── proc.thrift
│   │   │   └── qt/
│   │   │       ├── CMakeLists.txt
│   │   │       └── TQTcpServerTest.cpp
│   │   ├── thrift-nb.pc.in
│   │   ├── thrift-qt5.pc.in
│   │   ├── thrift-z.pc.in
│   │   ├── thrift.pc.in
│   │   └── thrift.sln
│   ├── d/
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── 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.d
│   │   │       │   ├── ssl_bio.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
│   │   │       │   ├── websocket.d
│   │   │       │   └── zlib.d
│   │   │       └── util/
│   │   │           ├── awaitable.d
│   │   │           ├── cancellation.d
│   │   │           ├── future.d
│   │   │           └── hashset.d
│   │   └── test/
│   │       ├── Makefile.am
│   │       ├── async_test.d
│   │       ├── async_test_runner.sh
│   │       ├── client_pool_test.d
│   │       ├── 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
│   ├── dart/
│   │   ├── LICENSE
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── coding_standards.md
│   │   ├── lib/
│   │   │   ├── src/
│   │   │   │   ├── browser/
│   │   │   │   │   └── t_web_socket.dart
│   │   │   │   ├── console/
│   │   │   │   │   ├── t_tcp_socket.dart
│   │   │   │   │   └── t_web_socket.dart
│   │   │   │   ├── protocol/
│   │   │   │   │   ├── t_binary_protocol.dart
│   │   │   │   │   ├── t_compact_protocol.dart
│   │   │   │   │   ├── t_field.dart
│   │   │   │   │   ├── t_json_protocol.dart
│   │   │   │   │   ├── t_list.dart
│   │   │   │   │   ├── t_map.dart
│   │   │   │   │   ├── t_message.dart
│   │   │   │   │   ├── t_multiplexed_protocol.dart
│   │   │   │   │   ├── t_protocol.dart
│   │   │   │   │   ├── t_protocol_decorator.dart
│   │   │   │   │   ├── t_protocol_error.dart
│   │   │   │   │   ├── t_protocol_factory.dart
│   │   │   │   │   ├── t_protocol_util.dart
│   │   │   │   │   ├── t_set.dart
│   │   │   │   │   ├── t_struct.dart
│   │   │   │   │   └── t_type.dart
│   │   │   │   ├── serializer/
│   │   │   │   │   ├── t_deserializer.dart
│   │   │   │   │   └── t_serializer.dart
│   │   │   │   ├── t_application_error.dart
│   │   │   │   ├── t_base.dart
│   │   │   │   ├── t_error.dart
│   │   │   │   ├── t_processor.dart
│   │   │   │   └── transport/
│   │   │   │       ├── t_buffered_transport.dart
│   │   │   │       ├── t_framed_transport.dart
│   │   │   │       ├── t_http_transport.dart
│   │   │   │       ├── t_message_reader.dart
│   │   │   │       ├── t_socket.dart
│   │   │   │       ├── t_socket_transport.dart
│   │   │   │       ├── t_transport.dart
│   │   │   │       ├── t_transport_error.dart
│   │   │   │       └── t_transport_factory.dart
│   │   │   ├── thrift.dart
│   │   │   ├── thrift_browser.dart
│   │   │   └── thrift_console.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── protocol/
│   │       │   └── t_protocol_test.dart
│   │       ├── serializer/
│   │       │   ├── serializer_test.dart
│   │       │   └── serializer_test_data.dart
│   │       ├── t_application_error_test.dart
│   │       └── transport/
│   │           ├── t_framed_transport_test.dart
│   │           ├── t_http_transport_test.dart
│   │           ├── t_socket_transport_test.dart
│   │           └── t_transport_test.dart
│   ├── delphi/
│   │   ├── DelphiThrift.groupproj
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── src/
│   │   │   ├── Thrift.Collections.pas
│   │   │   ├── Thrift.Configuration.pas
│   │   │   ├── Thrift.Defines.inc
│   │   │   ├── Thrift.Exception.pas
│   │   │   ├── Thrift.Processor.Multiplex.pas
│   │   │   ├── Thrift.Protocol.Compact.pas
│   │   │   ├── Thrift.Protocol.JSON.pas
│   │   │   ├── Thrift.Protocol.Multiplex.pas
│   │   │   ├── Thrift.Protocol.pas
│   │   │   ├── Thrift.Serializer.pas
│   │   │   ├── Thrift.Server.pas
│   │   │   ├── Thrift.Socket.pas
│   │   │   ├── Thrift.Stream.pas
│   │   │   ├── Thrift.Transport.MsxmlHTTP.pas
│   │   │   ├── Thrift.Transport.Pipes.pas
│   │   │   ├── Thrift.Transport.WinHTTP.pas
│   │   │   ├── Thrift.Transport.pas
│   │   │   ├── Thrift.TypeRegistry.pas
│   │   │   ├── Thrift.Utils.pas
│   │   │   ├── Thrift.WinHTTP.pas
│   │   │   └── Thrift.pas
│   │   └── test/
│   │       ├── ConsoleHelper.pas
│   │       ├── client.dpr
│   │       ├── client.dproj
│   │       ├── codegen/
│   │       │   ├── README.md
│   │       │   └── run-Pascal-Codegen-Tests.ps1
│   │       ├── keywords/
│   │       │   ├── ReservedIncluded.thrift
│   │       │   ├── ReservedKeywords.dpr
│   │       │   ├── ReservedKeywords.dproj
│   │       │   └── ReservedKeywords.thrift
│   │       ├── maketest.sh
│   │       ├── multiplexed/
│   │       │   ├── Multiplex.Client.Main.pas
│   │       │   ├── Multiplex.Server.Main.pas
│   │       │   ├── Multiplex.Test.Client.dpr
│   │       │   ├── Multiplex.Test.Client.dproj
│   │       │   ├── Multiplex.Test.Common.pas
│   │       │   ├── Multiplex.Test.Server.dpr
│   │       │   └── Multiplex.Test.Server.dproj
│   │       ├── serializer/
│   │       │   ├── SerializerData.dpr
│   │       │   ├── SerializerData.dproj
│   │       │   ├── SerializerData.res
│   │       │   ├── SimpleException.thrift
│   │       │   ├── TestSerializer.Data.pas
│   │       │   ├── TestSerializer.Tests.pas
│   │       │   ├── TestSerializer.dpr
│   │       │   └── TestSerializer.dproj
│   │       ├── server.dpr
│   │       ├── server.dproj
│   │       ├── skip/
│   │       │   ├── README.md
│   │       │   ├── idl/
│   │       │   │   ├── skiptest_version_1.thrift
│   │       │   │   └── skiptest_version_2.thrift
│   │       │   ├── skiptest_version1.dpr
│   │       │   ├── skiptest_version1.dproj
│   │       │   ├── skiptest_version2.dpr
│   │       │   └── skiptest_version2.dproj
│   │       ├── testsuite/
│   │       │   ├── TestConstants.pas
│   │       │   ├── client/
│   │       │   │   ├── Performance/
│   │       │   │   │   ├── DataFactory.pas
│   │       │   │   │   └── PerfTests.pas
│   │       │   │   ├── TestClient.pas
│   │       │   │   ├── TestLogger.pas
│   │       │   │   └── UnitTests.pas
│   │       │   └── server/
│   │       │       ├── TestServer.pas
│   │       │       └── TestServerEvents.pas
│   │       └── typeregistry/
│   │           ├── Test.EnumToString.pas
│   │           ├── Test.TypeRegistry.pas
│   │           ├── TestTypeRegistry.dpr
│   │           └── TestTypeRegistry.dproj
│   ├── erl/
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── include/
│   │   │   ├── thrift_constants.hrl
│   │   │   └── thrift_protocol.hrl
│   │   ├── rebar.config
│   │   ├── rebar.config.script
│   │   ├── src/
│   │   │   ├── thrift_base64_transport.erl
│   │   │   ├── thrift_binary_protocol.erl
│   │   │   ├── thrift_buffered_transport.erl
│   │   │   ├── thrift_client.erl
│   │   │   ├── thrift_client_util.erl
│   │   │   ├── thrift_compact_protocol.erl
│   │   │   ├── thrift_disk_log_transport.erl
│   │   │   ├── thrift_file_transport.erl
│   │   │   ├── thrift_framed_transport.erl
│   │   │   ├── thrift_http_transport.erl
│   │   │   ├── thrift_json_parser.erl
│   │   │   ├── thrift_json_protocol.erl
│   │   │   ├── thrift_membuffer_transport.erl
│   │   │   ├── thrift_memory_buffer.erl
│   │   │   ├── thrift_multiplexed_map_wrapper.erl
│   │   │   ├── thrift_multiplexed_protocol.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_sslsocket_transport.erl
│   │   │   ├── thrift_transport.erl
│   │   │   └── thrift_transport_state_test.erl
│   │   └── test/
│   │       ├── Thrift1151.thrift
│   │       ├── Thrift1475.thrift
│   │       ├── Thrift_omit_with.thrift
│   │       ├── flags/
│   │       │   ├── LegacyNames.thrift
│   │       │   └── Thrift3214.thrift
│   │       ├── legacy_names_test.erl
│   │       ├── multiplexing.thrift
│   │       ├── multiplexing_test.erl
│   │       ├── name_conflict_test.erl
│   │       ├── stress_server.erl
│   │       ├── test_const.erl
│   │       ├── test_disklog.erl
│   │       ├── test_omit.erl
│   │       ├── test_rendered_double_constants.erl
│   │       ├── test_thrift_1151.erl
│   │       ├── test_thrift_3214.erl
│   │       ├── test_thrift_buffered_transport.erl
│   │       ├── test_thrift_compact_protocol.erl
│   │       ├── test_thrift_file_transport.erl
│   │       ├── test_thrift_framed_transport.erl
│   │       ├── test_thrift_membuffer_transport.erl
│   │       ├── test_thrift_socket_transport.erl
│   │       ├── thrift_socket_server_test.erl
│   │       └── thrift_test_test.erl
│   ├── go/
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── test/
│   │   │   ├── BinaryKeyTest.thrift
│   │   │   ├── ClientMiddlewareExceptionTest.thrift
│   │   │   ├── ConflictArgNamesTest.thrift
│   │   │   ├── ConflictNamespaceServiceTest.thrift
│   │   │   ├── ConflictNamespaceTestA.thrift
│   │   │   ├── ConflictNamespaceTestB.thrift
│   │   │   ├── ConflictNamespaceTestC.thrift
│   │   │   ├── ConflictNamespaceTestD.thrift
│   │   │   ├── ConflictNamespaceTestE.thrift
│   │   │   ├── ConflictNamespaceTestF.thrift
│   │   │   ├── ConflictNamespaceTestSuperThing.thrift
│   │   │   ├── ConstOptionalField.thrift
│   │   │   ├── ConstOptionalFieldImport.thrift
│   │   │   ├── DontExportRWTest.thrift
│   │   │   ├── DuplicateImportsTest.thrift
│   │   │   ├── EqualsTest.thrift
│   │   │   ├── ErrorTest.thrift
│   │   │   ├── ForwardType.thrift
│   │   │   ├── GoTagTest.thrift
│   │   │   ├── IgnoreInitialismsTest.thrift
│   │   │   ├── IncludesTest.thrift
│   │   │   ├── InitialismsTest.thrift
│   │   │   ├── Makefile.am
│   │   │   ├── MultiplexedProtocolTest.thrift
│   │   │   ├── NamesTest.thrift
│   │   │   ├── NamespacedTest.thrift
│   │   │   ├── OnewayTest.thrift
│   │   │   ├── OptionalFieldsTest.thrift
│   │   │   ├── ProcessorMiddlewareTest.thrift
│   │   │   ├── RefAnnotationFieldsTest.thrift
│   │   │   ├── RequiredFieldTest.thrift
│   │   │   ├── ServicesTest.thrift
│   │   │   ├── StringParseAllocationTest.thrift
│   │   │   ├── TypedefFieldTest.thrift
│   │   │   ├── UnionBinaryTest.thrift
│   │   │   ├── UnionDefaultValueTest.thrift
│   │   │   ├── ValidateTest.thrift
│   │   │   ├── common/
│   │   │   │   ├── a.thrift
│   │   │   │   └── b.thrift
│   │   │   ├── dontexportrwtest/
│   │   │   │   └── compile_test.go
│   │   │   ├── fuzz/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── README.md
│   │   │   │   ├── fuzz.go
│   │   │   │   ├── fuzz_test.go
│   │   │   │   └── go.mod
│   │   │   ├── go.mod
│   │   │   ├── go.sum
│   │   │   └── tests/
│   │   │       ├── binary_key_test.go
│   │   │       ├── client_error_test.go
│   │   │       ├── client_middleware_exception_test.go
│   │   │       ├── conflict_arg_names_test.go
│   │   │       ├── conflict_namespace_test.go
│   │   │       ├── const_optional_field_test.go
│   │   │       ├── context.go
│   │   │       ├── encoding_json_test.go
│   │   │       ├── enum_values_test.go
│   │   │       ├── equals_test.go
│   │   │       ├── forwardtype_test.go
│   │   │       ├── gotag_test.go
│   │   │       ├── header_zlib_test.go
│   │   │       ├── ignoreinitialisms_test.go
│   │   │       ├── initialisms_test.go
│   │   │       ├── json_protocol_deserializer_test.go
│   │   │       ├── multiplexed_protocol_test.go
│   │   │       ├── names_test.go
│   │   │       ├── one_way_test.go
│   │   │       ├── optional_fields_test.go
│   │   │       ├── processor_middleware_test.go
│   │   │       ├── protocol_mock.go
│   │   │       ├── protocols_test.go
│   │   │       ├── required_fields_test.go
│   │   │       ├── server_connectivity_check_test.go
│   │   │       ├── slog_tstruct_wrapper_test.go
│   │   │       ├── string_parse_allocation_test.go
│   │   │       ├── struct_args_rets_test.go
│   │   │       ├── thrifttest_driver.go
│   │   │       ├── thrifttest_handler.go
│   │   │       ├── union_binary_test.go
│   │   │       ├── union_default_value_test.go
│   │   │       ├── validate_test.go
│   │   │       └── write_texception_test.go
│   │   └── thrift/
│   │       ├── application_exception.go
│   │       ├── application_exception_test.go
│   │       ├── binary_protocol.go
│   │       ├── binary_protocol_test.go
│   │       ├── buffered_transport.go
│   │       ├── buffered_transport_test.go
│   │       ├── client.go
│   │       ├── common_test.go
│   │       ├── compact_protocol.go
│   │       ├── compact_protocol_test.go
│   │       ├── configuration.go
│   │       ├── configuration_test.go
│   │       ├── context.go
│   │       ├── debug_protocol.go
│   │       ├── deserializer.go
│   │       ├── duplicate_protocol.go
│   │       ├── duplicate_protocol_test.go
│   │       ├── example_client_middleware_test.go
│   │       ├── example_processor_middleware_test.go
│   │       ├── exception.go
│   │       ├── exception_test.go
│   │       ├── framed_transport.go
│   │       ├── framed_transport_test.go
│   │       ├── header_context.go
│   │       ├── header_context_test.go
│   │       ├── header_protocol.go
│   │       ├── header_protocol_test.go
│   │       ├── header_transport.go
│   │       ├── header_transport_test.go
│   │       ├── http_client.go
│   │       ├── http_client_test.go
│   │       ├── http_transport.go
│   │       ├── iostream_transport.go
│   │       ├── iostream_transport_test.go
│   │       ├── json_protocol.go
│   │       ├── json_protocol_test.go
│   │       ├── logger.go
│   │       ├── lowlevel_benchmarks_test.go
│   │       ├── memory_buffer.go
│   │       ├── memory_buffer_test.go
│   │       ├── messagetype.go
│   │       ├── middleware.go
│   │       ├── middleware_test.go
│   │       ├── multiplexed_protocol.go
│   │       ├── multiplexed_protocol_test.go
│   │       ├── numeric.go
│   │       ├── pointerize.go
│   │       ├── pool.go
│   │       ├── pool_test.go
│   │       ├── processor_factory.go
│   │       ├── protocol.go
│   │       ├── protocol_exception.go
│   │       ├── protocol_factory.go
│   │       ├── protocol_test.go
│   │       ├── response_helper.go
│   │       ├── response_helper_test.go
│   │       ├── rich_transport.go
│   │       ├── rich_transport_test.go
│   │       ├── serializer.go
│   │       ├── serializer_test.go
│   │       ├── serializer_types_test.go
│   │       ├── server.go
│   │       ├── server_socket.go
│   │       ├── server_socket_test.go
│   │       ├── server_test.go
│   │       ├── server_transport.go
│   │       ├── simple_json_protocol.go
│   │       ├── simple_json_protocol_test.go
│   │       ├── simple_server.go
│   │       ├── simple_server_test.go
│   │       ├── slog.go
│   │       ├── slog_test.go
│   │       ├── socket.go
│   │       ├── socket_aix_syscall.go
│   │       ├── socket_conn.go
│   │       ├── socket_conn_test.go
│   │       ├── socket_non_aix_syscall.go
│   │       ├── socket_non_unix_conn.go
│   │       ├── socket_unix_conn.go
│   │       ├── socket_unix_conn_test.go
│   │       ├── ssl_server_socket.go
│   │       ├── ssl_socket.go
│   │       ├── staticcheck.conf
│   │       ├── transport.go
│   │       ├── transport_exception.go
│   │       ├── transport_exception_test.go
│   │       ├── transport_factory.go
│   │       ├── transport_test.go
│   │       ├── type.go
│   │       ├── uuid.go
│   │       ├── uuid_test.go
│   │       ├── zlib_pool.go
│   │       ├── zlib_pool_test.go
│   │       ├── zlib_transport.go
│   │       └── zlib_transport_test.go
│   ├── haxe/
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── haxelib.json
│   │   ├── src/
│   │   │   └── org/
│   │   │       └── apache/
│   │   │           └── thrift/
│   │   │               ├── AbstractMethodError.hx
│   │   │               ├── ArgumentError.hx
│   │   │               ├── Limits.hx
│   │   │               ├── TApplicationException.hx
│   │   │               ├── TBase.hx
│   │   │               ├── TConfiguration.hx
│   │   │               ├── TException.hx
│   │   │               ├── TFieldRequirementType.hx
│   │   │               ├── TProcessor.hx
│   │   │               ├── helper/
│   │   │               │   ├── BitConverter.hx
│   │   │               │   ├── Int64Map.hx
│   │   │               │   ├── IntSet.hx
│   │   │               │   ├── ObjectSet.hx
│   │   │               │   ├── StringSet.hx
│   │   │               │   ├── UuidHelper.hx
│   │   │               │   └── ZigZag.hx
│   │   │               ├── protocol/
│   │   │               │   ├── TBinaryProtocol.hx
│   │   │               │   ├── TBinaryProtocolFactory.hx
│   │   │               │   ├── TCompactProtocol.hx
│   │   │               │   ├── TCompactProtocolFactory.hx
│   │   │               │   ├── TCompactTypes.hx
│   │   │               │   ├── TField.hx
│   │   │               │   ├── TJSONProtocol.hx
│   │   │               │   ├── TJSONProtocolFactory.hx
│   │   │               │   ├── TList.hx
│   │   │               │   ├── TMap.hx
│   │   │               │   ├── TMessage.hx
│   │   │               │   ├── TMessageType.hx
│   │   │               │   ├── TMultiplexedProcessor.hx
│   │   │               │   ├── TMultiplexedProtocol.hx
│   │   │               │   ├── TProtocol.hx
│   │   │               │   ├── TProtocolDecorator.hx
│   │   │               │   ├── TProtocolException.hx
│   │   │               │   ├── TProtocolFactory.hx
│   │   │               │   ├── TProtocolImplBase.hx
│   │   │               │   ├── TProtocolUtil.hx
│   │   │               │   ├── TSet.hx
│   │   │               │   ├── TStruct.hx
│   │   │               │   └── TType.hx
│   │   │               ├── server/
│   │   │               │   ├── TServer.hx
│   │   │               │   ├── TServerEventHandler.hx
│   │   │               │   └── TSimpleServer.hx
│   │   │               └── transport/
│   │   │                   ├── TBufferedTransport.hx
│   │   │                   ├── TBufferedTransportFactory.hx
│   │   │                   ├── TEndpointTransport.hx
│   │   │                   ├── TFileStream.hx
│   │   │                   ├── TFramedTransport.hx
│   │   │                   ├── TFramedTransportFactory.hx
│   │   │                   ├── TFullDuplexHttpClient.hx
│   │   │                   ├── THttpClient.hx
│   │   │                   ├── TLayeredTransport.hx
│   │   │                   ├── TMemoryStream.hx
│   │   │                   ├── TServerSocket.hx
│   │   │                   ├── TServerTransport.hx
│   │   │                   ├── TSocket.hx
│   │   │                   ├── TStream.hx
│   │   │                   ├── TStreamTransport.hx
│   │   │                   ├── TTransport.hx
│   │   │                   ├── TTransportException.hx
│   │   │                   ├── TTransportFactory.hx
│   │   │                   └── TWrappingServerTransport.hx
│   │   └── test/
│   │       ├── HaxeTests.hxproj
│   │       ├── Makefile.am
│   │       ├── cpp.hxml
│   │       ├── csharp.hxml
│   │       ├── flash.hxml
│   │       ├── java.hxml
│   │       ├── javascript.hxml
│   │       ├── make_all.bat
│   │       ├── make_all.sh
│   │       ├── neko.hxml
│   │       ├── php.hxml
│   │       ├── project.hide
│   │       ├── python.hxml
│   │       └── src/
│   │           ├── Main.hx
│   │           └── tests/
│   │               ├── ConstantsTest.hx
│   │               ├── MultiplexTest.hx
│   │               ├── StreamTest.hx
│   │               └── TestBase.hx
│   ├── java/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   ├── settings.gradle
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── AndroidManifest.xml
│   │   ├── build.gradle
│   │   ├── code_quality_tools/
│   │   │   └── findbugs-filter.xml
│   │   ├── coding_standards.md
│   │   ├── gradle/
│   │   │   ├── cloverCoverage.gradle
│   │   │   ├── codeQualityChecks.gradle
│   │   │   ├── environment.gradle
│   │   │   ├── functionalTests.gradle
│   │   │   ├── generateTestThrift.gradle
│   │   │   ├── publishing.gradle
│   │   │   ├── sourceConfiguration.gradle
│   │   │   └── unitTests.gradle
│   │   ├── gradle.properties
│   │   ├── settings.gradle
│   │   └── src/
│   │       ├── crossTest/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── apache/
│   │       │   │           └── thrift/
│   │       │   │               └── test/
│   │       │   │                   ├── TestClient.java
│   │       │   │                   ├── TestNonblockingClient.java
│   │       │   │                   ├── TestNonblockingServer.java
│   │       │   │                   ├── TestServer.java
│   │       │   │                   └── TestTServletServer.java
│   │       │   └── resources/
│   │       │       ├── .clientkeystore
│   │       │       ├── .serverkeystore
│   │       │       └── .truststore
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── apache/
│   │       │               └── thrift/
│   │       │                   ├── AsyncProcessFunction.java
│   │       │                   ├── EncodingUtils.java
│   │       │                   ├── Option.java
│   │       │                   ├── ProcessFunction.java
│   │       │                   ├── TApplicationException.java
│   │       │                   ├── TAsyncProcessor.java
│   │       │                   ├── TBase.java
│   │       │                   ├── TBaseAsyncProcessor.java
│   │       │                   ├── TBaseHelper.java
│   │       │                   ├── TBaseProcessor.java
│   │       │                   ├── TByteArrayOutputStream.java
│   │       │                   ├── TConfiguration.java
│   │       │                   ├── TDeserializer.java
│   │       │                   ├── TEnum.java
│   │       │                   ├── TEnumHelper.java
│   │       │                   ├── TException.java
│   │       │                   ├── TFieldIdEnum.java
│   │       │                   ├── TFieldRequirementType.java
│   │       │                   ├── THttpClientResponseHandler.java
│   │       │                   ├── TMultiplexedProcessor.java
│   │       │                   ├── TNonblockingMultiFetchClient.java
│   │       │                   ├── TNonblockingMultiFetchStats.java
│   │       │                   ├── TProcessor.java
│   │       │                   ├── TProcessorFactory.java
│   │       │                   ├── TSerializable.java
│   │       │                   ├── TSerializer.java
│   │       │                   ├── TServiceClient.java
│   │       │                   ├── TServiceClientFactory.java
│   │       │                   ├── TUnion.java
│   │       │                   ├── annotation/
│   │       │                   │   └── Nullable.java
│   │       │                   ├── async/
│   │       │                   │   ├── AsyncMethodCallback.java
│   │       │                   │   ├── AsyncMethodFutureAdapter.java
│   │       │                   │   ├── TAsyncClient.java
│   │       │                   │   ├── TAsyncClientFactory.java
│   │       │                   │   ├── TAsyncClientManager.java
│   │       │                   │   └── TAsyncMethodCall.java
│   │       │                   ├── meta_data/
│   │       │                   │   ├── EnumMetaData.java
│   │       │                   │   ├── FieldMetaData.java
│   │       │                   │   ├── FieldValueMetaData.java
│   │       │                   │   ├── ListMetaData.java
│   │       │                   │   ├── MapMetaData.java
│   │       │                   │   ├── SetMetaData.java
│   │       │                   │   └── StructMetaData.java
│   │       │                   ├── partial/
│   │       │                   │   ├── EnumCache.java
│   │       │                   │   ├── PartialThriftComparer.java
│   │       │                   │   ├── README.md
│   │       │                   │   ├── TFieldData.java
│   │       │                   │   ├── ThriftField.java
│   │       │                   │   ├── ThriftFieldValueProcessor.java
│   │       │                   │   ├── ThriftMetadata.java
│   │       │                   │   ├── ThriftStructProcessor.java
│   │       │                   │   └── Validate.java
│   │       │                   ├── protocol/
│   │       │                   │   ├── ShortStack.java
│   │       │                   │   ├── TBase64Utils.java
│   │       │                   │   ├── TBinaryProtocol.java
│   │       │                   │   ├── TCompactProtocol.java
│   │       │                   │   ├── TField.java
│   │       │                   │   ├── TJSONProtocol.java
│   │       │                   │   ├── TLegacyUuidProtocolDecorator.java
│   │       │                   │   ├── TList.java
│   │       │                   │   ├── TMap.java
│   │       │                   │   ├── TMessage.java
│   │       │                   │   ├── TMessageType.java
│   │       │                   │   ├── TMultiplexedProtocol.java
│   │       │                   │   ├── TProtocol.java
│   │       │                   │   ├── TProtocolDecorator.java
│   │       │                   │   ├── TProtocolException.java
│   │       │                   │   ├── TProtocolFactory.java
│   │       │                   │   ├── TProtocolUtil.java
│   │       │                   │   ├── TReadProtocol.java
│   │       │                   │   ├── TSet.java
│   │       │                   │   ├── TSimpleJSONProtocol.java
│   │       │                   │   ├── TStruct.java
│   │       │                   │   ├── TTupleProtocol.java
│   │       │                   │   ├── TType.java
│   │       │                   │   └── TWriteProtocol.java
│   │       │                   ├── scheme/
│   │       │                   │   ├── IScheme.java
│   │       │                   │   ├── SchemeFactory.java
│   │       │                   │   ├── StandardScheme.java
│   │       │                   │   └── TupleScheme.java
│   │       │                   ├── server/
│   │       │                   │   ├── AbstractNonblockingServer.java
│   │       │                   │   ├── Invocation.java
│   │       │                   │   ├── ServerContext.java
│   │       │                   │   ├── TExtensibleServlet.java
│   │       │                   │   ├── THsHaServer.java
│   │       │                   │   ├── TNonblockingServer.java
│   │       │                   │   ├── TSaslNonblockingServer.java
│   │       │                   │   ├── TServer.java
│   │       │                   │   ├── TServerEventHandler.java
│   │       │                   │   ├── TServlet.java
│   │       │                   │   ├── TSimpleServer.java
│   │       │                   │   ├── TThreadPoolServer.java
│   │       │                   │   └── TThreadedSelectorServer.java
│   │       │                   ├── transport/
│   │       │                   │   ├── AutoExpandingBuffer.java
│   │       │                   │   ├── AutoExpandingBufferReadTransport.java
│   │       │                   │   ├── AutoExpandingBufferWriteTransport.java
│   │       │                   │   ├── SocketAddressProvider.java
│   │       │                   │   ├── TByteBuffer.java
│   │       │                   │   ├── TEOFException.java
│   │       │                   │   ├── TEndpointTransport.java
│   │       │                   │   ├── TFileProcessor.java
│   │       │                   │   ├── TFileTransport.java
│   │       │                   │   ├── THttpClient.java
│   │       │                   │   ├── TIOStreamTransport.java
│   │       │                   │   ├── TMemoryBuffer.java
│   │       │                   │   ├── TMemoryInputTransport.java
│   │       │                   │   ├── TMemoryTransport.java
│   │       │                   │   ├── TNonblockingSSLSocket.java
│   │       │                   │   ├── TNonblockingServerSocket.java
│   │       │                   │   ├── TNonblockingServerTransport.java
│   │       │                   │   ├── TNonblockingSocket.java
│   │       │                   │   ├── TNonblockingTransport.java
│   │       │                   │   ├── TSSLTransportFactory.java
│   │       │                   │   ├── TSaslClientTransport.java
│   │       │                   │   ├── TSaslServerTransport.java
│   │       │                   │   ├── TSaslTransport.java
│   │       │                   │   ├── TSeekableFile.java
│   │       │                   │   ├── TServerSocket.java
│   │       │                   │   ├── TServerTransport.java
│   │       │                   │   ├── TSimpleFileTransport.java
│   │       │                   │   ├── TSocket.java
│   │       │                   │   ├── TStandardFile.java
│   │       │                   │   ├── TTransport.java
│   │       │                   │   ├── TTransportException.java
│   │       │                   │   ├── TTransportFactory.java
│   │       │                   │   ├── TZlibTransport.java
│   │       │                   │   ├── layered/
│   │       │                   │   │   ├── TFastFramedTransport.java
│   │       │                   │   │   ├── TFramedTransport.java
│   │       │                   │   │   └── TLayeredTransport.java
│   │       │                   │   └── sasl/
│   │       │                   │       ├── DataFrameHeaderReader.java
│   │       │                   │       ├── DataFrameReader.java
│   │       │                   │       ├── DataFrameWriter.java
│   │       │                   │       ├── FixedSizeHeaderReader.java
│   │       │                   │       ├── FrameHeaderReader.java
│   │       │                   │       ├── FrameReader.java
│   │       │                   │       ├── FrameWriter.java
│   │       │                   │       ├── NegotiationStatus.java
│   │       │                   │       ├── NonblockingSaslHandler.java
│   │       │                   │       ├── SaslNegotiationFrameReader.java
│   │       │                   │       ├── SaslNegotiationFrameWriter.java
│   │       │                   │       ├── SaslNegotiationHeaderReader.java
│   │       │                   │       ├── SaslPeer.java
│   │       │                   │       ├── ServerSaslPeer.java
│   │       │                   │       ├── TBaseSaslProcessorFactory.java
│   │       │                   │       ├── TInvalidSaslFrameException.java
│   │       │                   │       ├── TSaslNegotiationException.java
│   │       │                   │       ├── TSaslProcessorFactory.java
│   │       │                   │       ├── TSaslServerDefinition.java
│   │       │                   │       └── TSaslServerFactory.java
│   │       │                   └── utils/
│   │       │                       └── StringUtils.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── apache/
│   │           │           └── thrift/
│   │           │               ├── Fixtures.java
│   │           │               ├── TestAnnotationMetadata.java
│   │           │               ├── TestDeepCopy.java
│   │           │               ├── TestDefinitionOrder.java
│   │           │               ├── TestEnumContainers.java
│   │           │               ├── TestFullCamel.java
│   │           │               ├── TestMultiplexedProcessor.java
│   │           │               ├── TestOptionType.java
│   │           │               ├── TestOptionals.java
│   │           │               ├── TestOptionalsWithJdk8.java
│   │           │               ├── TestRenderedDoubleConstants.java
│   │           │               ├── TestReuse.java
│   │           │               ├── TestStruct.java
│   │           │               ├── TestTBaseHelper.java
│   │           │               ├── TestTDeserializer.java
│   │           │               ├── TestTEnumHelper.java
│   │           │               ├── TestTUnion.java
│   │           │               ├── TestUnsafeBinaries.java
│   │           │               ├── async/
│   │           │               │   ├── TestTAsyncClient.java
│   │           │               │   ├── TestTAsyncClientManager.java
│   │           │               │   ├── TestTAsyncSSLClientManager.java
│   │           │               │   └── TestTAsyncSSLClientManagerCustomClient.java
│   │           │               ├── partial/
│   │           │               │   ├── EnumCacheTest.java
│   │           │               │   ├── PartialThriftComparerTest.java
│   │           │               │   ├── PartialThriftTestData.java
│   │           │               │   ├── TFieldDataTest.java
│   │           │               │   ├── TestData.java
│   │           │               │   ├── TestPartialThriftDeserializer.java
│   │           │               │   ├── ThriftFieldTest.java
│   │           │               │   ├── ThriftMetadataTest.java
│   │           │               │   ├── ThriftSerDe.java
│   │           │               │   ├── ThriftStructProcessorTest.java
│   │           │               │   └── ValidateTest.java
│   │           │               ├── protocol/
│   │           │               │   ├── BenchmarkProtocols.java
│   │           │               │   ├── ProtocolTestBase.java
│   │           │               │   ├── TestShortStack.java
│   │           │               │   ├── TestTBinaryProtocol.java
│   │           │               │   ├── TestTCompactProtocol.java
│   │           │               │   ├── TestTField.java
│   │           │               │   ├── TestTJSONProtocol.java
│   │           │               │   ├── TestTLegacyUuidProtocolDecorator.java
│   │           │               │   ├── TestTProtocolUtil.java
│   │           │               │   ├── TestTSimpleJSONProtocol.java
│   │           │               │   └── TestTTupleProtocol.java
│   │           │               ├── scheme/
│   │           │               │   └── TestStandardScheme.java
│   │           │               ├── server/
│   │           │               │   ├── ServerTestBase.java
│   │           │               │   ├── TestAsyncServer.java
│   │           │               │   ├── TestHsHaServer.java
│   │           │               │   ├── TestNonblockingServer.java
│   │           │               │   ├── TestSaslNonblockingServer.java
│   │           │               │   ├── TestThreadPoolServer.java
│   │           │               │   └── TestThreadedSelectorServer.java
│   │           │               ├── test/
│   │           │               │   ├── EqualityTest.java
│   │           │               │   ├── JavaBeansTest.java
│   │           │               │   ├── ReadStruct.java
│   │           │               │   ├── SerializationBenchmark.java
│   │           │               │   ├── TestServlet.java
│   │           │               │   ├── WriteStruct.java
│   │           │               │   ├── fuzz/
│   │           │               │   │   ├── FuzzTestUtils.java
│   │           │               │   │   ├── ParseBinaryFuzzer.java
│   │           │               │   │   ├── ParseCompactFuzzer.java
│   │           │               │   │   ├── ParseJSONFuzzer.java
│   │           │               │   │   ├── README.md
│   │           │               │   │   ├── RoundtripBinaryFuzzer.java
│   │           │               │   │   ├── RoundtripCompactFuzzer.java
│   │           │               │   │   ├── RoundtripJSONFuzzer.java
│   │           │               │   │   └── TestRecursionLimit.java
│   │           │               │   └── voidmethexceptions/
│   │           │               │       ├── ServiceAsyncImp.java
│   │           │               │       ├── ServiceBase.java
│   │           │               │       ├── ServiceSyncImp.java
│   │           │               │       └── TestVoidMethExceptions.java
│   │           │               ├── transport/
│   │           │               │   ├── ReadCountingTransport.java
│   │           │               │   ├── TestAutoExpandingBuffer.java
│   │           │               │   ├── TestAutoExpandingBufferReadTransport.java
│   │           │               │   ├── TestAutoExpandingBufferWriteTransport.java
│   │           │               │   ├── TestNonblockingServerSocket.java
│   │           │               │   ├── TestTByteBuffer.java
│   │           │               │   ├── TestTFastFramedTransport.java
│   │           │               │   ├── TestTFramedTransport.java
│   │           │               │   ├── TestTIOStreamTransport.java
│   │           │               │   ├── TestTMemoryInputTransport.java
│   │           │               │   ├── TestTMemoryTransport.java
│   │           │               │   ├── TestTSSLTransportFactory.java
│   │           │               │   ├── TestTSSLTransportFactoryCustomClient1.java
│   │           │               │   ├── TestTSSLTransportFactoryCustomClient2.java
│   │           │               │   ├── TestTSSLTransportFactoryStreamedStore.java
│   │           │               │   ├── TestTSaslTransports.java
│   │           │               │   ├── TestTSimpleFileTransport.java
│   │           │               │   ├── TestTZlibTransport.java
│   │           │               │   ├── WriteCountingTransport.java
│   │           │               │   └── sasl/
│   │           │               │       ├── TestDataFrameReader.java
│   │           │               │       ├── TestDataFrameWriter.java
│   │           │               │       ├── TestSaslNegotiationFrameReader.java
│   │           │               │       └── TestSaslNegotiationFrameWriter.java
│   │           │               └── utils/
│   │           │                   └── TestStringUtils.java
│   │           └── resources/
│   │               ├── JavaAnnotationTest.thrift
│   │               ├── JavaBeansTest.thrift
│   │               ├── JavaBinaryDefault.thrift
│   │               ├── JavaDeepCopyTest.thrift
│   │               ├── JavaDefinitionOrderA.thrift
│   │               ├── JavaDefinitionOrderB.thrift
│   │               ├── JavaOptionTypeJdk8Test.thrift
│   │               ├── JavaTypes.thrift
│   │               └── log4j.properties
│   ├── javame/
│   │   ├── coding_standards.md
│   │   └── src/
│   │       └── org/
│   │           └── apache/
│   │               └── thrift/
│   │                   ├── TApplicationException.java
│   │                   ├── TBase.java
│   │                   ├── TBaseHelper.java
│   │                   ├── TByteArrayOutputStream.java
│   │                   ├── TDeserializer.java
│   │                   ├── TEnum.java
│   │                   ├── TException.java
│   │                   ├── TFieldRequirementType.java
│   │                   ├── TProcessor.java
│   │                   ├── TProcessorFactory.java
│   │                   ├── TSerializer.java
│   │                   ├── TServiceClient.java
│   │                   ├── meta_data/
│   │                   │   ├── FieldMetaData.java
│   │                   │   ├── FieldValueMetaData.java
│   │                   │   ├── ListMetaData.java
│   │                   │   ├── MapMetaData.java
│   │                   │   ├── SetMetaData.java
│   │                   │   └── StructMetaData.java
│   │                   ├── protocol/
│   │                   │   ├── TBase64Utils.java
│   │                   │   ├── TBinaryProtocol.java
│   │                   │   ├── TField.java
│   │                   │   ├── TJSONProtocol.java
│   │                   │   ├── TList.java
│   │                   │   ├── TMap.java
│   │                   │   ├── TMessage.java
│   │                   │   ├── TMessageType.java
│   │                   │   ├── TProtocol.java
│   │                   │   ├── TProtocolException.java
│   │                   │   ├── TProtocolFactory.java
│   │                   │   ├── TProtocolUtil.java
│   │                   │   ├── TSet.java
│   │                   │   ├── TStruct.java
│   │                   │   └── TType.java
│   │                   └── transport/
│   │                       ├── TFramedTransport.java
│   │                       ├── THttpClient.java
│   │                       ├── TIOStreamTransport.java
│   │                       ├── TMemoryBuffer.java
│   │                       ├── TTransport.java
│   │                       ├── TTransportException.java
│   │                       └── TTransportFactory.java
│   ├── js/
│   │   ├── CMakeLists.txt
│   │   ├── Gruntfile.js
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── thrift.js
│   │   └── test/
│   │       ├── Makefile.am
│   │       ├── README.md
│   │       ├── build.properties
│   │       ├── build.xml
│   │       ├── deep-constructor.test.js
│   │       ├── jsTestDriver.conf
│   │       ├── phantom-client.js
│   │       ├── phantomjs-qunit.js
│   │       ├── server_http.js
│   │       ├── server_https.js
│   │       ├── src/
│   │       │   └── test/
│   │       │       └── Httpd.java
│   │       ├── test-async.js
│   │       ├── test-deep-constructor.html
│   │       ├── test-double-rendering.html
│   │       ├── test-double-rendering.js
│   │       ├── test-es6.html
│   │       ├── test-es6.js
│   │       ├── test-int64.html
│   │       ├── test-int64.js
│   │       ├── test-jq.js
│   │       ├── test-nojq.html
│   │       ├── test-nojq.js
│   │       ├── test.html
│   │       ├── test.js
│   │       ├── test_handler.js
│   │       └── testws.html
│   ├── json/
│   │   ├── Makefile.am
│   │   ├── schema.json
│   │   └── test/
│   │       ├── Makefile.am
│   │       ├── build.properties
│   │       └── build.xml
│   ├── kotlin/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── build.gradle.kts
│   │   ├── cross-test-client/
│   │   │   ├── build.gradle.kts
│   │   │   └── src/
│   │   │       └── main/
│   │   │           ├── kotlin/
│   │   │           │   └── org/
│   │   │           │       └── apache/
│   │   │           │           └── thrift/
│   │   │           │               └── test/
│   │   │           │                   └── TestClient.kt
│   │   │           └── resources/
│   │   │               └── logback.xml
│   │   ├── cross-test-server/
│   │   │   ├── build.gradle.kts
│   │   │   └── src/
│   │   │       └── main/
│   │   │           ├── kotlin/
│   │   │           │   └── org/
│   │   │           │       └── apache/
│   │   │           │           └── thrift/
│   │   │           │               └── test/
│   │   │           │                   ├── TestHandler.kt
│   │   │           │                   └── TestServer.kt
│   │   │           └── resources/
│   │   │               └── logback.xml
│   │   ├── gradle.properties
│   │   ├── settings.gradle.kts
│   │   └── src/
│   │       └── test/
│   │           ├── kotlin/
│   │           │   └── org/
│   │           │       └── apache/
│   │           │           └── thrift/
│   │           │               └── MetaDataTest.kt
│   │           └── resources/
│   │               └── AnnotationTest.thrift
│   ├── lua/
│   │   ├── Makefile.am
│   │   ├── TBinaryProtocol.lua
│   │   ├── TBufferedTransport.lua
│   │   ├── TCompactProtocol.lua
│   │   ├── TFramedTransport.lua
│   │   ├── THttpTransport.lua
│   │   ├── TJsonProtocol.lua
│   │   ├── TMemoryBuffer.lua
│   │   ├── TProtocol.lua
│   │   ├── TServer.lua
│   │   ├── TSocket.lua
│   │   ├── TTransport.lua
│   │   ├── Thrift.lua
│   │   ├── coding_standards.md
│   │   └── src/
│   │       ├── longnumberutils.c
│   │       ├── luabitwise.c
│   │       ├── luabpack.c
│   │       ├── lualongnumber.c
│   │       ├── luasocket.c
│   │       ├── socket.h
│   │       └── usocket.c
│   ├── netstd/
│   │   ├── Benchmarks/
│   │   │   └── Thrift.Benchmarks/
│   │   │       ├── CompactProtocolBenchmarks.cs
│   │   │       ├── Program.cs
│   │   │       └── Thrift.Benchmarks.csproj
│   │   ├── Directory.Build.props
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── Tests/
│   │   │   ├── Thrift.Compile.Tests/
│   │   │   │   ├── CassandraTest.thrift
│   │   │   │   ├── GlobalSuppressions.cs
│   │   │   │   ├── Thrift.Compile.net10/
│   │   │   │   │   ├── Impl/
│   │   │   │   │   │   └── Thrift5253/
│   │   │   │   │   │       └── MyService.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── Thrift.Compile.net10.csproj
│   │   │   │   ├── Thrift.Compile.net8/
│   │   │   │   │   ├── Impl/
│   │   │   │   │   │   └── Thrift5253/
│   │   │   │   │   │       └── MyService.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── Thrift.Compile.net8.csproj
│   │   │   │   ├── Thrift.Compile.net9/
│   │   │   │   │   ├── Impl/
│   │   │   │   │   │   └── Thrift5253/
│   │   │   │   │   │       └── MyService.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── Thrift.Compile.net9.csproj
│   │   │   │   ├── Thrift.Compile.netstd2/
│   │   │   │   │   ├── Impl/
│   │   │   │   │   │   └── Thrift5253/
│   │   │   │   │   │       └── MyService.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── Thrift.Compile.netstd2.csproj
│   │   │   │   ├── Thrift5253.thrift
│   │   │   │   ├── Thrift5320.enum.thrift
│   │   │   │   ├── Thrift5320.exception.thrift
│   │   │   │   ├── Thrift5320.struct.thrift
│   │   │   │   ├── Thrift5320.thrift
│   │   │   │   ├── Thrift5382.objs.thrift
│   │   │   │   ├── Thrift5382.thrift
│   │   │   │   ├── Thrift5794.thrift
│   │   │   │   ├── Thrift5795.thrift
│   │   │   │   ├── name_conflicts.enum.thrift
│   │   │   │   ├── name_conflicts.thrift
│   │   │   │   └── optional_required_default.thrift
│   │   │   ├── Thrift.IntegrationTests/
│   │   │   │   ├── Protocols/
│   │   │   │   │   ├── ProtocolConformityTests.cs
│   │   │   │   │   ├── ProtocolsOperationsTests.cs
│   │   │   │   │   └── TestBase.cs
│   │   │   │   └── Thrift.IntegrationTests.csproj
│   │   │   └── Thrift.Tests/
│   │   │       ├── Collections/
│   │   │       │   ├── TCollectionsTests.cs
│   │   │       │   └── THashSetTests.cs
│   │   │       ├── DataModel/
│   │   │       │   ├── DeepCopy.cs
│   │   │       │   ├── ExceptionAsStruct.cs
│   │   │       │   └── NullValuesSet.cs
│   │   │       ├── Protocols/
│   │   │       │   ├── TJsonProtocolHelperTests.cs
│   │   │       │   └── TJsonProtocolTests.cs
│   │   │       ├── Thrift.Tests.csproj
│   │   │       └── Transports/
│   │   │           └── THttpTransportTests.cs
│   │   ├── Thrift/
│   │   │   ├── .editorconfig
│   │   │   ├── Collections/
│   │   │   │   ├── TCollections.cs
│   │   │   │   └── THashSet.cs
│   │   │   ├── GlobalSuppressions.cs
│   │   │   ├── Processor/
│   │   │   │   ├── ITAsyncProcessor.cs
│   │   │   │   ├── ITProcessorFactory.cs
│   │   │   │   ├── TMultiplexedProcessor.cs
│   │   │   │   └── TSingletonProcessorFactory.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Protocol/
│   │   │   │   ├── Entities/
│   │   │   │   │   ├── TField.cs
│   │   │   │   │   ├── TList.cs
│   │   │   │   │   ├── TMap.cs
│   │   │   │   │   ├── TMessage.cs
│   │   │   │   │   ├── TMessageType.cs
│   │   │   │   │   ├── TSet.cs
│   │   │   │   │   ├── TStruct.cs
│   │   │   │   │   └── TType.cs
│   │   │   │   ├── TBase.cs
│   │   │   │   ├── TBinaryProtocol.cs
│   │   │   │   ├── TCompactProtocol.cs
│   │   │   │   ├── TJSONProtocol.cs
│   │   │   │   ├── TMultiplexedProtocol.cs
│   │   │   │   ├── TProtocol.cs
│   │   │   │   ├── TProtocolDecorator.cs
│   │   │   │   ├── TProtocolException.cs
│   │   │   │   ├── TProtocolFactory.cs
│   │   │   │   ├── ToString.cs
│   │   │   │   └── Utilities/
│   │   │   │       ├── TBase64Utils.cs
│   │   │   │       ├── TGuidExtensions.cs
│   │   │   │       ├── TJsonProtocolConstants.cs
│   │   │   │       ├── TJsonProtocolHelper.cs
│   │   │   │       └── TProtocolUtil.cs
│   │   │   ├── Server/
│   │   │   │   ├── TServer.cs
│   │   │   │   ├── TServerEventHandler.cs
│   │   │   │   ├── TSimpleAsyncServer.cs
│   │   │   │   └── TThreadPoolAsyncServer.cs
│   │   │   ├── TApplicationException.cs
│   │   │   ├── TBaseClient.cs
│   │   │   ├── TConfiguration.cs
│   │   │   ├── TException.cs
│   │   │   ├── Thrift.csproj
│   │   │   ├── Transport/
│   │   │   │   ├── Client/
│   │   │   │   │   ├── THttpTransport.cs
│   │   │   │   │   ├── TMemoryBufferTransport.cs
│   │   │   │   │   ├── TNamedPipeTransport.cs
│   │   │   │   │   ├── TSocketTransport.cs
│   │   │   │   │   ├── TStreamTransport.cs
│   │   │   │   │   └── TTlsSocketTransport.cs
│   │   │   │   ├── Layered/
│   │   │   │   │   ├── TBufferedTransport.cs
│   │   │   │   │   ├── TFramedTransport.cs
│   │   │   │   │   └── TLayeredTransport.cs
│   │   │   │   ├── Server/
│   │   │   │   │   ├── NullLogger.cs
│   │   │   │   │   ├── THttpServerTransport.cs
│   │   │   │   │   ├── TNamedPipeServerTransport.cs
│   │   │   │   │   ├── TServerSocketTransport.cs
│   │   │   │   │   ├── TServerTransport.cs
│   │   │   │   │   └── TTlsServerSocketTransport.cs
│   │   │   │   ├── TEndpointTransport.cs
│   │   │   │   ├── TTransport.cs
│   │   │   │   ├── TTransportException.cs
│   │   │   │   └── TTransportFactory.cs
│   │   │   └── thrift.snk
│   │   ├── Thrift.sln
│   │   ├── build.cmd
│   │   ├── build.sh
│   │   ├── runtests.cmd
│   │   └── runtests.sh
│   ├── nodejs/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── examples/
│   │   │   ├── README.md
│   │   │   ├── client.js
│   │   │   ├── client_multitransport.js
│   │   │   ├── hello.html
│   │   │   ├── hello.js
│   │   │   ├── hello.thrift
│   │   │   ├── httpClient.js
│   │   │   ├── httpServer.js
│   │   │   ├── httpServer.py
│   │   │   ├── parse.js
│   │   │   ├── server.js
│   │   │   ├── server_http.js
│   │   │   ├── server_multitransport.js
│   │   │   └── user.thrift
│   │   ├── lib/
│   │   │   └── thrift/
│   │   │       ├── binary.js
│   │   │       ├── binary_protocol.js
│   │   │       ├── browser.js
│   │   │       ├── buffered_transport.js
│   │   │       ├── compact_protocol.js
│   │   │       ├── connection.js
│   │   │       ├── create_client.js
│   │   │       ├── framed_transport.js
│   │   │       ├── header_protocol.js
│   │   │       ├── header_transport.js
│   │   │       ├── http_connection.js
│   │   │       ├── index.js
│   │   │       ├── input_buffer_underrun_error.js
│   │   │       ├── int64_util.js
│   │   │       ├── json_parse.js
│   │   │       ├── json_protocol.js
│   │   │       ├── log.js
│   │   │       ├── multiplexed_processor.js
│   │   │       ├── multiplexed_protocol.js
│   │   │       ├── ohos_connection.js
│   │   │       ├── protocol.js
│   │   │       ├── server.js
│   │   │       ├── thrift.js
│   │   │       ├── transport.js
│   │   │       ├── web_server.js
│   │   │       ├── ws_connection.js
│   │   │       ├── ws_transport.js
│   │   │       └── xhr_connection.js
│   │   └── test/
│   │       ├── binary.test.js
│   │       ├── client.mjs
│   │       ├── deep-constructor.test.js
│   │       ├── episodic-code-generation-test/
│   │       │   ├── client.js
│   │       │   ├── episodic_compilation.package.json
│   │       │   └── server.js
│   │       ├── exceptions.js
│   │       ├── fuzz/
│   │       │   ├── README.md
│   │       │   ├── fuzz_common.js
│   │       │   ├── fuzz_parse_TBinaryProtocol.js
│   │       │   ├── fuzz_parse_TCompactProtocol.js
│   │       │   ├── fuzz_parse_TJSONProtocol.js
│   │       │   ├── fuzz_roundtrip_TBinaryProtocol.js
│   │       │   ├── fuzz_roundtrip_TCompactProtocol.js
│   │       │   └── fuzz_roundtrip_TJSONProtocol.js
│   │       ├── header.test.js
│   │       ├── helpers.js
│   │       ├── include.test.mjs
│   │       ├── int64.test.js
│   │       ├── package.json
│   │       ├── server.mjs
│   │       ├── test-cases.mjs
│   │       ├── testAll.sh
│   │       ├── test_driver.mjs
│   │       ├── test_handler.mjs
│   │       └── test_header_payload
│   ├── nodets/
│   │   ├── Makefile.am
│   │   ├── coding_standards.md
│   │   └── test/
│   │       ├── client.ts
│   │       ├── int64.test.ts
│   │       ├── runClient.sh
│   │       ├── runServer.sh
│   │       ├── server.ts
│   │       ├── test-cases.ts
│   │       ├── testAll.sh
│   │       ├── test_driver.ts
│   │       ├── test_handler.ts
│   │       └── tsconfig.json
│   ├── ocaml/
│   │   ├── DEVELOPMENT
│   │   ├── README.md
│   │   ├── TODO
│   │   ├── _oasis
│   │   ├── coding_standards.md
│   │   ├── descr
│   │   ├── opam
│   │   ├── src/
│   │   │   ├── TBinaryProtocol.ml
│   │   │   ├── TChannelTransport.ml
│   │   │   ├── TFramedTransport.ml
│   │   │   ├── TServer.ml
│   │   │   ├── TServerSocket.ml
│   │   │   ├── TSimpleServer.ml
│   │   │   ├── TSocket.ml
│   │   │   ├── TThreadedServer.ml
│   │   │   └── Thrift.ml
│   │   └── url
│   ├── perl/
│   │   ├── MANIFEST.SKIP
│   │   ├── Makefile.PL
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── build-cpan-dist.sh
│   │   ├── coding_standards.md
│   │   ├── lib/
│   │   │   ├── Thrift/
│   │   │   │   ├── BinaryProtocol.pm
│   │   │   │   ├── BufferedTransport.pm
│   │   │   │   ├── Exception.pm
│   │   │   │   ├── FramedTransport.pm
│   │   │   │   ├── HttpClient.pm
│   │   │   │   ├── MemoryBuffer.pm
│   │   │   │   ├── MessageType.pm
│   │   │   │   ├── MultiplexedProcessor.pm
│   │   │   │   ├── MultiplexedProtocol.pm
│   │   │   │   ├── Protocol.pm
│   │   │   │   ├── ProtocolDecorator.pm
│   │   │   │   ├── SSLServerSocket.pm
│   │   │   │   ├── SSLSocket.pm
│   │   │   │   ├── Server.pm
│   │   │   │   ├── ServerSocket.pm
│   │   │   │   ├── Socket.pm
│   │   │   │   ├── Transport.pm
│   │   │   │   ├── Type.pm
│   │   │   │   ├── UnixServerSocket.pm
│   │   │   │   └── UnixSocket.pm
│   │   │   └── Thrift.pm
│   │   ├── t/
│   │   │   ├── Makefile.am
│   │   │   ├── memory_buffer.t
│   │   │   ├── multiplex.t
│   │   │   └── processor.t
│   │   ├── test.pl
│   │   └── tools/
│   │       └── FixupDist.pl
│   ├── php/
│   │   ├── Makefile.am
│   │   ├── README.apache.md
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── lib/
│   │   │   ├── Base/
│   │   │   │   └── TBase.php
│   │   │   ├── ClassLoader/
│   │   │   │   └── ThriftClassLoader.php
│   │   │   ├── Exception/
│   │   │   │   ├── TApplicationException.php
│   │   │   │   ├── TException.php
│   │   │   │   ├── TProtocolException.php
│   │   │   │   └── TTransportException.php
│   │   │   ├── Factory/
│   │   │   │   ├── TBinaryProtocolFactory.php
│   │   │   │   ├── TCompactProtocolFactory.php
│   │   │   │   ├── TFramedTransportFactory.php
│   │   │   │   ├── TJSONProtocolFactory.php
│   │   │   │   ├── TProtocolFactory.php
│   │   │   │   ├── TStringFuncFactory.php
│   │   │   │   ├── TTransportFactory.php
│   │   │   │   └── TTransportFactoryInterface.php
│   │   │   ├── Protocol/
│   │   │   │   ├── JSON/
│   │   │   │   │   ├── BaseContext.php
│   │   │   │   │   ├── ListContext.php
│   │   │   │   │   ├── LookaheadReader.php
│   │   │   │   │   └── PairContext.php
│   │   │   │   ├── SimpleJSON/
│   │   │   │   │   ├── CollectionMapKeyException.php
│   │   │   │   │   ├── Context.php
│   │   │   │   │   ├── ListContext.php
│   │   │   │   │   ├── MapContext.php
│   │   │   │   │   └── StructContext.php
│   │   │   │   ├── TBinaryProtocol.php
│   │   │   │   ├── TBinaryProtocolAccelerated.php
│   │   │   │   ├── TCompactProtocol.php
│   │   │   │   ├── TJSONProtocol.php
│   │   │   │   ├── TMultiplexedProtocol.php
│   │   │   │   ├── TProtocol.php
│   │   │   │   ├── TProtocolDecorator.php
│   │   │   │   └── TSimpleJSONProtocol.php
│   │   │   ├── Serializer/
│   │   │   │   └── TBinarySerializer.php
│   │   │   ├── Server/
│   │   │   │   ├── TForkingServer.php
│   │   │   │   ├── TSSLServerSocket.php
│   │   │   │   ├── TServer.php
│   │   │   │   ├── TServerSocket.php
│   │   │   │   ├── TServerTransport.php
│   │   │   │   └── TSimpleServer.php
│   │   │   ├── StoredMessageProtocol.php
│   │   │   ├── StringFunc/
│   │   │   │   ├── Core.php
│   │   │   │   ├── Mbstring.php
│   │   │   │   └── TStringFunc.php
│   │   │   ├── TMultiplexedProcessor.php
│   │   │   ├── Transport/
│   │   │   │   ├── TBufferedTransport.php
│   │   │   │   ├── TCurlClient.php
│   │   │   │   ├── TFramedTransport.php
│   │   │   │   ├── THttpClient.php
│   │   │   │   ├── TMemoryBuffer.php
│   │   │   │   ├── TNullTransport.php
│   │   │   │   ├── TPhpStream.php
│   │   │   │   ├── TSSLSocket.php
│   │   │   │   ├── TSocket.php
│   │   │   │   ├── TSocketPool.php
│   │   │   │   └── TTransport.php
│   │   │   └── Type/
│   │   │       ├── TConstant.php
│   │   │       ├── TMessageType.php
│   │   │       └── TType.php
│   │   ├── phpunit.xml
│   │   ├── src/
│   │   │   ├── TStringUtils.php
│   │   │   ├── Thrift.php
│   │   │   ├── autoload.php
│   │   │   └── ext/
│   │   │       └── thrift_protocol/
│   │   │           ├── php_thrift_protocol.cpp
│   │   │           ├── php_thrift_protocol.h
│   │   │           ├── php_thrift_protocol.stub.php
│   │   │           └── php_thrift_protocol_arginfo.h
│   │   ├── test/
│   │   │   ├── Integration/
│   │   │   │   ├── BaseValidatorTest.php
│   │   │   │   ├── Lib/
│   │   │   │   │   ├── ClassLoader/
│   │   │   │   │   │   └── ThriftClassLoaderTest.php
│   │   │   │   │   ├── Protocol/
│   │   │   │   │   │   ├── TJSONProtocolTest.php
│   │   │   │   │   │   └── TSimpleJSONProtocolTest.php
│   │   │   │   │   └── Serializer/
│   │   │   │   │       ├── BinarySerializerTest.php
│   │   │   │   │       └── JsonSerializeTest.php
│   │   │   │   ├── ValidatorOopTest.php
│   │   │   │   └── ValidatorTest.php
│   │   │   ├── Makefile.am
│   │   │   ├── Resources/
│   │   │   │   └── ThriftTest.thrift
│   │   │   ├── Unit/
│   │   │   │   └── Lib/
│   │   │   │       ├── ClassLoader/
│   │   │   │       │   ├── Fixtures/
│   │   │   │       │   │   ├── A/
│   │   │   │       │   │   │   └── TestClass.php
│   │   │   │       │   │   ├── B/
│   │   │   │       │   │   │   └── TestClass.php
│   │   │   │       │   │   ├── C/
│   │   │   │       │   │   │   └── TestClass.php
│   │   │   │       │   │   ├── D/
│   │   │   │       │   │   │   └── TestClass.php
│   │   │   │       │   │   └── E/
│   │   │   │       │   │       └── TestClass.php
│   │   │   │       │   └── ThriftClassLoaderTest.php
│   │   │   │       ├── Exception/
│   │   │   │       │   └── TExceptionTest.php
│   │   │   │       ├── Factory/
│   │   │   │       │   ├── TBinaryProtocolFactoryTest.php
│   │   │   │       │   ├── TCompactProtocolFactoryTest.php
│   │   │   │       │   ├── TFramedTransportFactoryTest.php
│   │   │   │       │   ├── TJSONProtocolFactoryTest.php
│   │   │   │       │   ├── TStringFuncFactoryTest.php
│   │   │   │       │   └── TTransportFactoryTest.php
│   │   │   │       ├── Protocol/
│   │   │   │       │   ├── TBinaryProtocolAcceleratedTest.php
│   │   │   │       │   ├── TBinaryProtocolTest.php
│   │   │   │       │   ├── TCompactProtocolTest.php
│   │   │   │       │   ├── TMultiplexedProtocolTest.php
│   │   │   │       │   ├── TProtocolDecoratorTest.php
│   │   │   │       │   └── TSimpleJSONProtocolTest.php
│   │   │   │       ├── Serializer/
│   │   │   │       │   └── TBinarySerializerTest.php
│   │   │   │       ├── Server/
│   │   │   │       │   ├── Fixture/
│   │   │   │       │   │   └── TestProcessor.php
│   │   │   │       │   ├── TForkingServerTest.php
│   │   │   │       │   ├── TSSLServerSocketTest.php
│   │   │   │       │   ├── TServerSocketTest.php
│   │   │   │       │   └── TSimpleServerTest.php
│   │   │   │       ├── StringFunc/
│   │   │   │       │   ├── CoreTest.php
│   │   │   │       │   └── MbStringTest.php
│   │   │   │       └── Transport/
│   │   │   │           ├── TBufferedTransportTest.php
│   │   │   │           ├── TCurlClientTest.php
│   │   │   │           ├── TFramedTransportTest.php
│   │   │   │           ├── THttpClientTest.php
│   │   │   │           ├── TMemoryBufferTest.php
│   │   │   │           ├── TNullTransportTest.php
│   │   │   │           ├── TPhpStreamTest.php
│   │   │   │           ├── TSSLSocketTest.php
│   │   │   │           ├── TSocketPoolTest.php
│   │   │   │           └── TSocketTest.php
│   │   │   └── bootstrap.php
│   │   └── thrift_protocol.ini
│   ├── py/
│   │   ├── CMakeLists.txt
│   │   ├── MANIFEST.in
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── compat/
│   │   │   └── win32/
│   │   │       └── stdint.h
│   │   ├── pyproject.toml
│   │   ├── setup.cfg
│   │   ├── setup.py
│   │   ├── src/
│   │   │   ├── TMultiplexedProcessor.py
│   │   │   ├── TRecursive.py
│   │   │   ├── TSCons.py
│   │   │   ├── TSerialization.py
│   │   │   ├── TTornado.py
│   │   │   ├── Thrift.py
│   │   │   ├── __init__.py
│   │   │   ├── ext/
│   │   │   │   ├── binary.cpp
│   │   │   │   ├── binary.h
│   │   │   │   ├── compact.cpp
│   │   │   │   ├── compact.h
│   │   │   │   ├── endian.h
│   │   │   │   ├── module.cpp
│   │   │   │   ├── protocol.h
│   │   │   │   ├── protocol.tcc
│   │   │   │   ├── types.cpp
│   │   │   │   └── types.h
│   │   │   ├── protocol/
│   │   │   │   ├── TBase.py
│   │   │   │   ├── TBinaryProtocol.py
│   │   │   │   ├── TCompactProtocol.py
│   │   │   │   ├── THeaderProtocol.py
│   │   │   │   ├── TJSONProtocol.py
│   │   │   │   ├── TMultiplexedProtocol.py
│   │   │   │   ├── TProtocol.py
│   │   │   │   ├── TProtocolDecorator.py
│   │   │   │   └── __init__.py
│   │   │   ├── server/
│   │   │   │   ├── THttpServer.py
│   │   │   │   ├── TNonblockingServer.py
│   │   │   │   ├── TProcessPoolServer.py
│   │   │   │   ├── TServer.py
│   │   │   │   └── __init__.py
│   │   │   └── transport/
│   │   │       ├── THeaderTransport.py
│   │   │       ├── THttpClient.py
│   │   │       ├── TSSLSocket.py
│   │   │       ├── TSocket.py
│   │   │       ├── TTransport.py
│   │   │       ├── TTwisted.py
│   │   │       ├── TZlibTransport.py
│   │   │       ├── __init__.py
│   │   │       └── sslcompat.py
│   │   └── test/
│   │       ├── _import_local_thrift.py
│   │       ├── fuzz/
│   │       │   ├── README.md
│   │       │   ├── fuzz_common.py
│   │       │   ├── fuzz_parse_TBinaryProtocol.py
│   │       │   ├── fuzz_parse_TBinaryProtocolAccelerated.py
│   │       │   ├── fuzz_parse_TCompactProtocol.py
│   │       │   ├── fuzz_parse_TCompactProtocolAccelerated.py
│   │       │   ├── fuzz_roundtrip_TBinaryProtocol.py
│   │       │   ├── fuzz_roundtrip_TBinaryProtocolAccelerated.py
│   │       │   ├── fuzz_roundtrip_TCompactProtocol.py
│   │       │   └── fuzz_roundtrip_TCompactProtocolAccelerated.py
│   │       ├── test_compiler/
│   │       │   ├── Thrift5927.thrift
│   │       │   └── test_keyword_escape.py
│   │       ├── test_socket.py
│   │       ├── test_sslsocket.py
│   │       ├── test_thrift_file/
│   │       │   └── TestServer.thrift
│   │       ├── thrift_TBinaryProtocol.py
│   │       ├── thrift_TCompactProtocol.py
│   │       ├── thrift_TNonblockingServer.py
│   │       ├── thrift_TSerializer.py
│   │       ├── thrift_TZlibTransport.py
│   │       ├── thrift_json.py
│   │       └── thrift_transport.py
│   ├── rb/
│   │   ├── .rubocop.yml
│   │   ├── Gemfile
│   │   ├── Gemfile.linters
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── Rakefile
│   │   ├── benchmark/
│   │   │   ├── Benchmark.thrift
│   │   │   ├── benchmark.rb
│   │   │   ├── client.rb
│   │   │   ├── server.rb
│   │   │   └── thin_server.rb
│   │   ├── coding_standards.md
│   │   ├── 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
│   │   ├── lib/
│   │   │   ├── thrift/
│   │   │   │   ├── bytes.rb
│   │   │   │   ├── client.rb
│   │   │   │   ├── exceptions.rb
│   │   │   │   ├── multiplexed_processor.rb
│   │   │   │   ├── processor.rb
│   │   │   │   ├── protocol/
│   │   │   │   │   ├── base_protocol.rb
│   │   │   │   │   ├── binary_protocol.rb
│   │   │   │   │   ├── binary_protocol_accelerated.rb
│   │   │   │   │   ├── compact_protocol.rb
│   │   │   │   │   ├── header_protocol.rb
│   │   │   │   │   ├── json_protocol.rb
│   │   │   │   │   ├── multiplexed_protocol.rb
│   │   │   │   │   └── protocol_decorator.rb
│   │   │   │   ├── serializer/
│   │   │   │   │   ├── deserializer.rb
│   │   │   │   │   └── serializer.rb
│   │   │   │   ├── server/
│   │   │   │   │   ├── base_server.rb
│   │   │   │   │   ├── mongrel_http_server.rb
│   │   │   │   │   ├── nonblocking_server.rb
│   │   │   │   │   ├── simple_server.rb
│   │   │   │   │   ├── thin_http_server.rb
│   │   │   │   │   ├── thread_pool_server.rb
│   │   │   │   │   └── threaded_server.rb
│   │   │   │   ├── struct.rb
│   │   │   │   ├── struct_union.rb
│   │   │   │   ├── thrift_native.rb
│   │   │   │   ├── transport/
│   │   │   │   │   ├── base_server_transport.rb
│   │   │   │   │   ├── base_transport.rb
│   │   │   │   │   ├── buffered_transport.rb
│   │   │   │   │   ├── framed_transport.rb
│   │   │   │   │   ├── header_transport.rb
│   │   │   │   │   ├── http_client_transport.rb
│   │   │   │   │   ├── io_stream_transport.rb
│   │   │   │   │   ├── memory_buffer_transport.rb
│   │   │   │   │   ├── server_socket.rb
│   │   │   │   │   ├── socket.rb
│   │   │   │   │   ├── ssl_server_socket.rb
│   │   │   │   │   ├── ssl_socket.rb
│   │   │   │   │   ├── unix_server_socket.rb
│   │   │   │   │   └── unix_socket.rb
│   │   │   │   ├── types.rb
│   │   │   │   ├── union.rb
│   │   │   │   └── uuid.rb
│   │   │   └── thrift.rb
│   │   ├── script/
│   │   │   ├── proto_benchmark.rb
│   │   │   ├── read_struct.rb
│   │   │   └── write_struct.rb
│   │   ├── spec/
│   │   │   ├── BaseService.thrift
│   │   │   ├── ExtendedService.thrift
│   │   │   ├── Referenced.thrift
│   │   │   ├── ThriftNamespacedSpec.thrift
│   │   │   ├── ThriftSpec.thrift
│   │   │   ├── 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
│   │   │   ├── constants_demo_spec.rb
│   │   │   ├── exception_spec.rb
│   │   │   ├── flat_spec.rb
│   │   │   ├── header_protocol_spec.rb
│   │   │   ├── header_transport_spec.rb
│   │   │   ├── http_client_spec.rb
│   │   │   ├── json_protocol_spec.rb
│   │   │   ├── namespaced_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
│   │   │   ├── ssl_server_socket_spec.rb
│   │   │   ├── ssl_socket_spec.rb
│   │   │   ├── struct_nested_containers_spec.rb
│   │   │   ├── struct_spec.rb
│   │   │   ├── support/
│   │   │   │   └── header_protocol_helper.rb
│   │   │   ├── thin_http_server_spec.rb
│   │   │   ├── types_spec.rb
│   │   │   ├── union_spec.rb
│   │   │   ├── unix_socket_spec.rb
│   │   │   └── uuid_validation_spec.rb
│   │   ├── test/
│   │   │   └── fuzz/
│   │   │       ├── .gitignore
│   │   │       ├── Makefile.am
│   │   │       ├── README.md
│   │   │       ├── fuzz_common.rb
│   │   │       ├── fuzz_parse_binary_protocol.rb
│   │   │       ├── fuzz_parse_binary_protocol_accelerated.rb
│   │   │       ├── fuzz_parse_binary_protocol_accelerated_harness.rb
│   │   │       ├── fuzz_parse_binary_protocol_harness.rb
│   │   │       ├── fuzz_parse_compact_protocol.rb
│   │   │       ├── fuzz_parse_compact_protocol_harness.rb
│   │   │       ├── fuzz_parse_json_protocol.rb
│   │   │       ├── fuzz_parse_json_protocol_harness.rb
│   │   │       ├── fuzz_roundtrip_binary_protocol.rb
│   │   │       ├── fuzz_roundtrip_binary_protocol_accelerated.rb
│   │   │       ├── fuzz_roundtrip_binary_protocol_accelerated_harness.rb
│   │   │       ├── fuzz_roundtrip_binary_protocol_harness.rb
│   │   │       ├── fuzz_roundtrip_compact_protocol.rb
│   │   │       ├── fuzz_roundtrip_compact_protocol_harness.rb
│   │   │       ├── fuzz_roundtrip_json_protocol.rb
│   │   │       ├── fuzz_roundtrip_json_protocol_harness.rb
│   │   │       └── fuzz_tracer.rb
│   │   └── thrift.gemspec
│   ├── rs/
│   │   ├── Cargo.toml
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── RELEASING.md
│   │   ├── release.sh
│   │   ├── src/
│   │   │   ├── autogen.rs
│   │   │   ├── configuration.rs
│   │   │   ├── errors.rs
│   │   │   ├── lib.rs
│   │   │   ├── protocol/
│   │   │   │   ├── binary.rs
│   │   │   │   ├── compact.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── multiplexed.rs
│   │   │   │   └── stored.rs
│   │   │   ├── server/
│   │   │   │   ├── mod.rs
│   │   │   │   ├── multiplexed.rs
│   │   │   │   └── threaded.rs
│   │   │   └── transport/
│   │   │       ├── buffered.rs
│   │   │       ├── framed.rs
│   │   │       ├── mem.rs
│   │   │       ├── mod.rs
│   │   │       └── socket.rs
│   │   ├── test/
│   │   │   ├── Cargo.toml
│   │   │   ├── Makefile.am
│   │   │   ├── fuzz/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── Cargo.toml
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── README.md
│   │   │   │   ├── bin/
│   │   │   │   │   └── corpus_generator.rs
│   │   │   │   ├── fuzz_targets/
│   │   │   │   │   ├── parse_binary.rs
│   │   │   │   │   ├── parse_compact.rs
│   │   │   │   │   ├── roundtrip_binary.rs
│   │   │   │   │   ├── roundtrip_compact.rs
│   │   │   │   │   ├── structured_roundtrip_binary.rs
│   │   │   │   │   └── structured_roundtrip_compact.rs
│   │   │   │   └── lib/
│   │   │   │       └── mod.rs
│   │   │   ├── src/
│   │   │   │   ├── bin/
│   │   │   │   │   ├── kitchen_sink_client.rs
│   │   │   │   │   └── kitchen_sink_server.rs
│   │   │   │   └── lib.rs
│   │   │   └── thrifts/
│   │   │       ├── Base_One.thrift
│   │   │       ├── Base_Two.thrift
│   │   │       ├── Midlayer.thrift
│   │   │       └── Ultimate.thrift
│   │   └── test_recursive/
│   │       ├── Cargo.toml
│   │       ├── Makefile.am
│   │       └── src/
│   │           ├── Makefile.am
│   │           ├── Vehicles.thrift
│   │           ├── lib.rs
│   │           ├── maintenance/
│   │           │   ├── MaintenanceFacility.thrift
│   │           │   ├── Makefile.am
│   │           │   └── mod.rs
│   │           └── transit/
│   │               ├── Buses.thrift
│   │               ├── Makefile.am
│   │               ├── Trains.thrift
│   │               ├── Transporters.thrift
│   │               ├── light/
│   │               │   ├── LightRail.thrift
│   │               │   ├── Makefile.am
│   │               │   ├── Streetcars.thrift
│   │               │   └── mod.rs
│   │               ├── mod.rs
│   │               └── services/
│   │                   ├── CityServices.thrift
│   │                   ├── Makefile.am
│   │                   └── mod.rs
│   ├── st/
│   │   ├── README.md
│   │   ├── coding_standards.md
│   │   ├── package.xml
│   │   └── thrift.st
│   ├── swift/
│   │   ├── FuzzTesting/
│   │   │   ├── Package.swift
│   │   │   ├── README.md
│   │   │   └── Sources/
│   │   │       ├── FuzzCommon/
│   │   │       │   └── FuzzUtils.swift
│   │   │       ├── FuzzParseBinary/
│   │   │       │   └── main.swift
│   │   │       ├── FuzzParseCompact/
│   │   │       │   └── main.swift
│   │   │       ├── FuzzParseJSON/
│   │   │       │   └── main.swift
│   │   │       ├── FuzzRoundtripBinary/
│   │   │       │   └── main.swift
│   │   │       ├── FuzzRoundtripCompact/
│   │   │       │   └── main.swift
│   │   │       └── FuzzRoundtripJSON/
│   │   │           └── main.swift
│   │   ├── Makefile.am
│   │   ├── Package.swift
│   │   ├── README.md
│   │   ├── Sources/
│   │   │   ├── LinuxHelper.swift
│   │   │   ├── TApplicationError.swift
│   │   │   ├── TBase64Utils.swift
│   │   │   ├── TBinary.swift
│   │   │   ├── TBinaryProtocol.swift
│   │   │   ├── TClient.swift
│   │   │   ├── TCompactProtocol.swift
│   │   │   ├── TEnum.swift
│   │   │   ├── TError.swift
│   │   │   ├── TFileHandleTransport.swift
│   │   │   ├── TFileTransport.swift
│   │   │   ├── TFramedTransport.swift
│   │   │   ├── THTTPSessionTransport.swift
│   │   │   ├── TJSONProtocol.swift
│   │   │   ├── TList.swift
│   │   │   ├── TMap.swift
│   │   │   ├── TMemoryBufferTransport.swift
│   │   │   ├── TMultiplexedProcessor.swift
│   │   │   ├── TMultiplexedProtocol.swift
│   │   │   ├── TProcessor.swift
│   │   │   ├── TProtocol.swift
│   │   │   ├── TProtocolDecorator.swift
│   │   │   ├── TProtocolError.swift
│   │   │   ├── TSSLSocketTransport.swift
│   │   │   ├── TSSLSocketTransportError.swift
│   │   │   ├── TSerializable.swift
│   │   │   ├── TSet.swift
│   │   │   ├── TSocketServer.swift
│   │   │   ├── TSocketTransport.swift
│   │   │   ├── TStreamTransport.swift
│   │   │   ├── TStruct.swift
│   │   │   ├── TTransport.swift
│   │   │   ├── TTransportError.swift
│   │   │   ├── TWrappedProtocol.swift
│   │   │   ├── Thrift.swift
│   │   │   └── UnixSocket.swift
│   │   └── Tests/
│   │       ├── LinuxMain.swift
│   │       └── ThriftTests/
│   │           ├── TBinaryProtocolTests.swift
│   │           ├── TCompactProtocolTests.swift
│   │           ├── TFramedTransportTests.swift
│   │           ├── TJSONProtocolTests.swift
│   │           ├── TMultiplexedProcessorTests.swift
│   │           ├── TSocketServerTests.swift
│   │           └── ThriftTests.swift
│   ├── ts/
│   │   ├── Gruntfile.js
│   │   ├── Makefile.am
│   │   ├── coding_standards.md
│   │   ├── dist/
│   │   │   └── thrift.js
│   │   ├── package.json
│   │   ├── test/
│   │   │   ├── build.xml
│   │   │   ├── phantom-client.ts
│   │   │   ├── server_http.js
│   │   │   ├── test-int64.html
│   │   │   ├── test-int64.ts
│   │   │   ├── test.html
│   │   │   ├── test.ts
│   │   │   └── test_handler.js
│   │   ├── thrift.d.ts
│   │   └── tsconfig.json
│   └── xml/
│       ├── Makefile.am
│       ├── test/
│       │   ├── Makefile.am
│       │   └── build.xml
│       └── thrift-idl.xsd
├── package.json
├── phpcs.xml.dist
├── rust-toolchain
├── sonar-project.properties
├── test/
│   ├── AnnotationTest.thrift
│   ├── BrokenConstants.thrift
│   ├── ConstantsDemo.thrift
│   ├── DebugProtoTest.thrift
│   ├── DenseLinkingTest.thrift
│   ├── DocTest.thrift
│   ├── DoubleConstantsTest.thrift
│   ├── EnumContainersTest.thrift
│   ├── EnumTest.thrift
│   ├── ExceptionStruct.thrift
│   ├── FullCamelTest.thrift
│   ├── FuzzTest.thrift
│   ├── Identifiers.thrift
│   ├── Include.thrift
│   ├── Int64Test.thrift
│   ├── JsDeepConstructorTest.thrift
│   ├── Makefile.am
│   ├── ManyOptionals.thrift
│   ├── ManyTypedefs.thrift
│   ├── NameConflictTest.thrift
│   ├── OptionalRequiredTest.thrift
│   ├── README.md
│   ├── Recursive.thrift
│   ├── ReuseObjects.thrift
│   ├── Service.thrift
│   ├── SmallTest.thrift
│   ├── SpecificNameTest.thrift
│   ├── StressTest.thrift
│   ├── ThriftTest.thrift
│   ├── TypedefTest.thrift
│   ├── Types.thrift
│   ├── UnsafeTypes.thrift
│   ├── VoidMethExceptionsTest.thrift
│   ├── audit/
│   │   ├── README.md
│   │   ├── break1.thrift
│   │   ├── break10.thrift
│   │   ├── break11.thrift
│   │   ├── break12.thrift
│   │   ├── break13.thrift
│   │   ├── break14.thrift
│   │   ├── break15.thrift
│   │   ├── break16.thrift
│   │   ├── break17.thrift
│   │   ├── break18.thrift
│   │   ├── break19.thrift
│   │   ├── break2.thrift
│   │   ├── break20.thrift
│   │   ├── break21.thrift
│   │   ├── break22.thrift
│   │   ├── break23.thrift
│   │   ├── break24.thrift
│   │   ├── break25.thrift
│   │   ├── break26.thrift
│   │   ├── break27.thrift
│   │   ├── break28.thrift
│   │   ├── break29.thrift
│   │   ├── break3.thrift
│   │   ├── break30.thrift
│   │   ├── break31.thrift
│   │   ├── break32.thrift
│   │   ├── break33.thrift
│   │   ├── break34.thrift
│   │   ├── break4.thrift
│   │   ├── break5.thrift
│   │   ├── break6.thrift
│   │   ├── break7.thrift
│   │   ├── break8.thrift
│   │   ├── break9.thrift
│   │   ├── test.thrift
│   │   ├── thrift_audit_test.pl
│   │   └── warning.thrift
│   ├── c_glib/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   └── src/
│   │       ├── test_client.c
│   │       ├── test_server.c
│   │       ├── thrift_second_service_handler.c
│   │       ├── thrift_second_service_handler.h
│   │       ├── thrift_test_handler.c
│   │       └── thrift_test_handler.h
│   ├── cl/
│   │   ├── Makefile.am
│   │   ├── implementation.lisp
│   │   ├── make-test-client.lisp
│   │   ├── make-test-server.lisp
│   │   └── tests.lisp
│   ├── cpp/
│   │   ├── CMakeLists.txt
│   │   ├── Makefile.am
│   │   └── src/
│   │       ├── EnumClassTest.cpp
│   │       ├── ForwardSetterTest.cpp
│   │       ├── PrivateOptionalTest.cpp
│   │       ├── SpecificNameTest.cpp
│   │       ├── StressTest.cpp
│   │       ├── StressTestNonBlocking.cpp
│   │       ├── TemplateStreamOpTest.cpp
│   │       ├── TestClient.cpp
│   │       ├── TestServer.cpp
│   │       └── ThriftTest_extras.cpp
│   ├── crossrunner/
│   │   ├── __init__.py
│   │   ├── collect.py
│   │   ├── report.py
│   │   ├── run.py
│   │   ├── setup.cfg
│   │   ├── test.py
│   │   └── util.py
│   ├── dart/
│   │   ├── Makefile.am
│   │   └── test_client/
│   │       ├── bin/
│   │       │   └── main.dart
│   │       └── pubspec.yaml
│   ├── erl/
│   │   ├── Makefile.am
│   │   ├── rebar.config
│   │   └── src/
│   │       ├── test_client.erl
│   │       ├── test_thrift_server.erl
│   │       └── thrift_test.app.src
│   ├── features/
│   │   ├── Makefile.am
│   │   ├── container_limit.py
│   │   ├── index.html
│   │   ├── known_failures_Linux.json
│   │   ├── local_thrift/
│   │   │   └── __init__.py
│   │   ├── nosslv3.sh
│   │   ├── setup.cfg
│   │   ├── string_limit.py
│   │   ├── tests.json
│   │   ├── theader_binary.py
│   │   ├── tls.sh
│   │   └── util.py
│   ├── go/
│   │   ├── Makefile.am
│   │   ├── genmock.sh
│   │   ├── go.mod
│   │   ├── go.sum
│   │   └── src/
│   │       ├── bin/
│   │       │   ├── stress/
│   │       │   │   └── main.go
│   │       │   ├── testclient/
│   │       │   │   └── main.go
│   │       │   └── testserver/
│   │       │       └── main.go
│   │       └── common/
│   │           ├── client.go
│   │           ├── clientserver_test.go
│   │           ├── context_test.go
│   │           ├── printing_handler.go
│   │           ├── server.go
│   │           └── simple_handler.go
│   ├── haxe/
│   │   ├── Makefile.am
│   │   ├── TestClientServer.hxproj
│   │   ├── cpp.hxml
│   │   ├── csharp.hxml
│   │   ├── flash.hxml
│   │   ├── java.hxml
│   │   ├── javascript.hxml
│   │   ├── make_all.bat
│   │   ├── make_all.sh
│   │   ├── neko.hxml
│   │   ├── php-web-server.hxml
│   │   ├── php.hxml
│   │   ├── project.hide
│   │   ├── python.hxml
│   │   ├── router.php
│   │   └── src/
│   │       ├── Arguments.hx
│   │       ├── Main.hx
│   │       ├── TestClient.hx
│   │       ├── TestMacro.hx
│   │       ├── TestServer.hx
│   │       ├── TestServerEventHandler.hx
│   │       └── TestServerHandler.hx
│   ├── index.html
│   ├── keys/
│   │   ├── CA.pem
│   │   ├── README.md
│   │   ├── client.crt
│   │   ├── client.key
│   │   ├── client.p12
│   │   ├── client.pem
│   │   ├── client_v3.crt
│   │   ├── client_v3.key
│   │   ├── keygen/
│   │   │   ├── .gitignore
│   │   │   └── make-serverkey.sh
│   │   ├── server.crt
│   │   ├── server.key
│   │   ├── server.p12
│   │   └── server.pem
│   ├── known_failures_Linux.json
│   ├── lua/
│   │   ├── Makefile.am
│   │   ├── test_basic_client.lua
│   │   └── test_basic_server.lua
│   ├── netstd/
│   │   ├── Client/
│   │   │   ├── Client.csproj
│   │   │   ├── Performance/
│   │   │   │   ├── PerformanceTests.cs
│   │   │   │   └── TestDataFactory.cs
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   └── TestClient.cs
│   │   ├── Makefile.am
│   │   ├── README.md
│   │   ├── Server/
│   │   │   ├── Program.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Server.csproj
│   │   │   └── TestServer.cs
│   │   ├── ThriftTest.sln
│   │   ├── build.cmd
│   │   └── build.sh
│   ├── ocaml/
│   │   ├── client/
│   │   │   └── TestClient.ml
│   │   └── server/
│   │       └── TestServer.ml
│   ├── partial/
│   │   └── thrift_test_schema.thrift
│   ├── perl/
│   │   ├── Makefile.am
│   │   ├── TestClient.pl
│   │   └── TestServer.pl
│   ├── php/
│   │   ├── Client.php
│   │   ├── Handler.php
│   │   ├── Makefile.am
│   │   ├── TestClassmap.php
│   │   ├── TestClient.php
│   │   ├── TestInline.php
│   │   ├── TestServer.php
│   │   └── test_php.ini
│   ├── py/
│   │   ├── CMakeLists.txt
│   │   ├── FastbinaryTest.py
│   │   ├── Makefile.am
│   │   ├── RunClientServer.py
│   │   ├── SerializationTest.py
│   │   ├── TSimpleJSONProtocolTest.py
│   │   ├── TestClient.py
│   │   ├── TestEof.py
│   │   ├── TestFrozen.py
│   │   ├── TestRenderedDoubleConstants.py
│   │   ├── TestServer.py
│   │   ├── TestSocket.py
│   │   ├── TestSyntax.py
│   │   ├── TestTypes.py
│   │   ├── explicit_module/
│   │   │   ├── EnumSerializationTest.py
│   │   │   ├── runtest.sh
│   │   │   ├── shared_types.thrift
│   │   │   ├── test1.thrift
│   │   │   ├── test2.thrift
│   │   │   ├── test3.thrift
│   │   │   ├── test4.thrift
│   │   │   └── test5.thrift
│   │   ├── generate.cmake
│   │   ├── setup.cfg
│   │   └── util.py
│   ├── py.tornado/
│   │   ├── Makefile.am
│   │   ├── setup.cfg
│   │   └── test_suite.py
│   ├── py.twisted/
│   │   ├── Makefile.am
│   │   ├── setup.cfg
│   │   └── test_suite.py
│   ├── rb/
│   │   ├── Gemfile
│   │   ├── Makefile.am
│   │   ├── benchmarks/
│   │   │   └── protocol_benchmark.rb
│   │   ├── core/
│   │   │   ├── protocol/
│   │   │   │   ├── test_binary_protocol.rb
│   │   │   │   ├── test_compact_protocol.rb
│   │   │   │   └── test_json_protocol.rb
│   │   │   ├── test_accelerated_binary_protocol.rb
│   │   │   ├── test_backwards_compatability.rb
│   │   │   ├── test_exceptions.rb
│   │   │   └── transport/
│   │   │       └── test_transport.rb
│   │   ├── fixtures/
│   │   │   └── structs.rb
│   │   ├── generation/
│   │   │   ├── test_enum.rb
│   │   │   ├── test_recursive.rb
│   │   │   └── test_struct.rb
│   │   ├── integration/
│   │   │   ├── TestClient.rb
│   │   │   └── TestServer.rb
│   │   ├── test_helper.rb
│   │   └── test_suite.rb
│   ├── rebuild_known_failures.sh
│   ├── result.js
│   ├── rs/
│   │   ├── Cargo.toml
│   │   ├── Makefile.am
│   │   └── src/
│   │       ├── bin/
│   │       │   ├── test_client.rs
│   │       │   └── test_server.rs
│   │       └── lib.rs
│   ├── swift/
│   │   ├── CrossTests/
│   │   │   ├── Makefile.am
│   │   │   ├── Package.swift
│   │   │   └── Sources/
│   │   │       ├── Common/
│   │   │       │   └── Parameters.swift
│   │   │       ├── TestClient/
│   │   │       │   └── main.swift
│   │   │       └── TestServer/
│   │   │           ├── ThriftTestService.swift
│   │   │           └── main.swift
│   │   └── Makefile.am
│   ├── test.py
│   ├── tests.json
│   ├── threads/
│   │   ├── ThreadsClient.cpp
│   │   ├── ThreadsServer.cpp
│   │   └── ThreadsTest.thrift
│   ├── v0.16/
│   │   ├── ConstantsDemo.thrift
│   │   ├── DebugProtoTest.thrift
│   │   ├── FuzzTestNoUuid.thrift
│   │   ├── NameConflictTest.thrift
│   │   └── ThriftTest.thrift
│   └── valgrind.suppress
└── tutorial/
    ├── Makefile.am
    ├── README.md
    ├── c_glib/
    │   ├── Makefile.am
    │   ├── c_glib_client.c
    │   └── c_glib_server.c
    ├── cl/
    │   ├── Makefile.am
    │   ├── load-locally.lisp
    │   ├── make-tutorial-client.lisp
    │   ├── make-tutorial-server.lisp
    │   ├── shared-implementation.lisp
    │   ├── thrift-tutorial.asd
    │   └── tutorial-implementation.lisp
    ├── cpp/
    │   ├── CMakeLists.txt
    │   ├── CppClient.cpp
    │   ├── CppServer.cpp
    │   └── Makefile.am
    ├── d/
    │   ├── Makefile.am
    │   ├── async_client.d
    │   ├── client.d
    │   └── server.d
    ├── dart/
    │   ├── Makefile.am
    │   ├── build.sh
    │   ├── client/
    │   │   ├── pubspec.yaml
    │   │   └── web/
    │   │       ├── client.dart
    │   │       ├── index.html
    │   │       └── styles.css
    │   ├── console_client/
    │   │   ├── bin/
    │   │   │   └── main.dart
    │   │   └── pubspec.yaml
    │   └── server/
    │       ├── bin/
    │       │   └── main.dart
    │       └── pubspec.yaml
    ├── delphi/
    │   ├── DelphiClient/
    │   │   ├── DelphiClient.dpr
    │   │   └── DelphiClient.dproj
    │   ├── DelphiServer/
    │   │   ├── DelphiServer.dpr
    │   │   └── DelphiServer.dproj
    │   └── Tutorial.groupproj
    ├── erl/
    │   ├── README.md
    │   ├── client.erl
    │   ├── client.sh
    │   ├── json_client.erl
    │   ├── server.erl
    │   └── server.sh
    ├── go/
    │   ├── Makefile.am
    │   ├── server.crt
    │   ├── server.key
    │   └── src/
    │       ├── client.go
    │       ├── handler.go
    │       ├── main.go
    │       └── server.go
    ├── haxe/
    │   ├── Makefile.am
    │   ├── Tutorial.hxproj
    │   ├── cpp.hxml
    │   ├── csharp.hxml
    │   ├── flash.hxml
    │   ├── java.hxml
    │   ├── javascript.hxml
    │   ├── make_all.bat
    │   ├── make_all.sh
    │   ├── neko.hxml
    │   ├── php-web-server.hxml
    │   ├── php.hxml
    │   ├── project.hide
    │   ├── python.hxml
    │   ├── router.php
    │   └── src/
    │       ├── CalculatorHandler.hx
    │       └── Main.hx
    ├── java/
    │   ├── Makefile.am
    │   ├── README.md
    │   ├── build.properties
    │   ├── build.xml
    │   └── src/
    │       ├── CalculatorHandler.java
    │       ├── JavaClient.java
    │       └── JavaServer.java
    ├── js/
    │   ├── Makefile.am
    │   ├── build.properties
    │   ├── build.xml
    │   ├── src/
    │   │   └── Httpd.java
    │   └── tutorial.html
    ├── netstd/
    │   ├── Client/
    │   │   ├── Client.csproj
    │   │   ├── Program.cs
    │   │   ├── Properties/
    │   │   │   └── AssemblyInfo.cs
    │   │   └── ThriftTest.pfx
    │   ├── Makefile.am
    │   ├── README.md
    │   ├── Server/
    │   │   ├── Program.cs
    │   │   ├── Properties/
    │   │   │   └── AssemblyInfo.cs
    │   │   ├── Server.csproj
    │   │   └── ThriftTest.pfx
    │   ├── Tutorial.sln
    │   ├── build.cmd
    │   └── build.sh
    ├── nodejs/
    │   ├── Makefile.am
    │   ├── NodeClient.js
    │   ├── NodeClientPromise.js
    │   ├── NodeServer.js
    │   └── NodeServerPromise.js
    ├── ocaml/
    │   ├── CalcClient.ml
    │   ├── CalcServer.ml
    │   ├── README.md
    │   └── _oasis
    ├── perl/
    │   ├── Makefile.am
    │   ├── PerlClient.pl
    │   └── PerlServer.pl
    ├── php/
    │   ├── Makefile.am
    │   ├── PhpClient.php
    │   ├── PhpServer.php
    │   └── runserver.py
    ├── py/
    │   ├── Makefile.am
    │   ├── PythonClient.py
    │   ├── PythonServer.py
    │   └── setup.cfg
    ├── py.tornado/
    │   ├── Makefile.am
    │   ├── PythonClient.py
    │   └── PythonServer.py
    ├── py.twisted/
    │   ├── Makefile.am
    │   ├── PythonClient.py
    │   ├── PythonServer.py
    │   └── PythonServer.tac
    ├── rb/
    │   ├── Makefile.am
    │   ├── RubyClient.rb
    │   └── RubyServer.rb
    ├── rs/
    │   ├── Cargo.toml
    │   ├── Makefile.am
    │   ├── README.md
    │   └── src/
    │       ├── bin/
    │       │   ├── tutorial_client.rs
    │       │   └── tutorial_server.rs
    │       └── lib.rs
    ├── shared.thrift
    ├── swift/
    │   ├── Makefile.am
    │   ├── Package.swift
    │   ├── README.md
    │   └── Sources/
    │       ├── TutorialClient/
    │       │   └── main.swift
    │       ├── TutorialRunner/
    │       │   └── main.swift
    │       └── TutorialServer/
    │           ├── CalculatorService.swift
    │           └── main.swift
    └── tutorial.thrift
Copy disabled (too large) Download .txt
Showing preview only (13,475K chars total). Download the full file to get everything.
SYMBOL INDEX (14969 symbols across 1354 files)

FILE: compiler/cpp/src/thrift/audit/t_audit.cpp
  function thrift_audit_warning (line 30) | void thrift_audit_warning(int level, const char* fmt, ...) {
  function thrift_audit_failure (line 42) | void thrift_audit_failure(const char* fmt, ...) {
  function compare_namespace (line 52) | void compare_namespace(t_program* newProgram, t_program* oldProgram)
  function compare_enum_values (line 71) | void compare_enum_values(t_enum* newEnum,t_enum* oldEnum)
  function compare_enums (line 94) | void compare_enums(const std::vector<t_enum*>& newEnumList, const std::v...
  function compare_type (line 121) | bool compare_type(t_type* newType, t_type* oldType)
  function compare_pair (line 166) | bool compare_pair(std::pair<t_const_value*, t_const_value*> newMapPair, ...
  function compare_defaults (line 172) | bool compare_defaults(t_const_value* newStructDefault, t_const_value* ol...
  function compare_struct_field (line 216) | void compare_struct_field(t_field* newField, t_field* oldField, std::str...
  function compare_single_struct (line 249) | void compare_single_struct(t_struct* newStruct, t_struct* oldStruct, con...
  function compare_structs (line 301) | void compare_structs(const std::vector<t_struct*>& newStructList, const ...
  function compare_single_function (line 327) | void compare_single_function(t_function* newFunction, t_function* oldFun...
  function compare_functions (line 347) | void compare_functions(const std::vector<t_function*>& newFunctionList, ...
  function compare_services (line 373) | void compare_services(const std::vector<t_service*>& newServices, const ...
  function compare_consts (line 425) | void compare_consts(const std::vector<t_const*>& newConst, const std::ve...

FILE: compiler/cpp/src/thrift/common.cc
  function initGlobals (line 34) | void initGlobals() {
  function clearGlobals (line 48) | void clearGlobals() {

FILE: compiler/cpp/src/thrift/generate/go_validator_generator.h
  function class (line 32) | class go_validator_generator {

FILE: compiler/cpp/src/thrift/generate/t_c_glib_generator.cc
  class t_c_glib_generator (line 51) | class t_c_glib_generator : public t_oop_generator {
    method t_c_glib_generator (line 54) | t_c_glib_generator(t_program* program,
  function string (line 562) | string t_c_glib_generator::type_name(t_type* ttype, bool in_typedef, boo...
  function string (line 633) | string t_c_glib_generator::property_type_name(t_type* ttype, bool in_typ...
  function string (line 661) | string t_c_glib_generator::base_type_name(t_type* type) {
  function string (line 701) | string t_c_glib_generator::type_to_enum(t_type* type) {
  function string (line 747) | string t_c_glib_generator::constant_literal(t_type* type, t_const_value*...
  function string (line 810) | string t_c_glib_generator::constant_value(string name, t_type* type, t_c...
  function string (line 858) | string t_c_glib_generator::function_signature(t_function* tfunction) {
  function string (line 879) | string t_c_glib_generator::argument_list(t_struct* tstruct) {
  function string (line 902) | string t_c_glib_generator::xception_list(t_struct* tstruct) {
  function string (line 922) | string t_c_glib_generator::declare_field(t_field* tfield,
  function string (line 977) | string t_c_glib_generator::constant_value_with_storage(string fname,
  function string (line 4353) | string t_c_glib_generator::generate_free_func_from_type(t_type* ttype) {
  function string (line 4419) | string t_c_glib_generator::generate_hash_func_from_type(t_type* ttype) {
  function string (line 4457) | string t_c_glib_generator::generate_cmp_func_from_type(t_type* ttype) {
  function string (line 4495) | string t_c_glib_generator::generate_new_hash_from_type(t_type* key, t_ty...
  function string (line 4505) | string t_c_glib_generator::generate_new_array_from_type(t_type* ttype) {
  function string (line 4523) | string to_upper_case(string name) {
  function string (line 4532) | string to_lower_case(string name) {
  function string (line 4545) | string initial_caps_to_underscores(string name) {
  function string (line 4573) | string underscores_to_initial_caps(string name) {

FILE: compiler/cpp/src/thrift/generate/t_cl_generator.cc
  class t_cl_generator (line 46) | class t_cl_generator : public t_oop_generator {
    method t_cl_generator (line 48) | t_cl_generator(
  function string (line 152) | string t_cl_generator::render_includes() {
  function string (line 163) | string t_cl_generator::package_of(t_program* program) {
  function string (line 168) | string t_cl_generator::package() {
  function string (line 172) | string t_cl_generator::prefix(string symbol) {
  function string (line 176) | string t_cl_generator::cl_autogen_comment() {
  function string (line 183) | string t_cl_generator::cl_docstring(string raw) {
  function string (line 195) | string t_cl_generator::generated_package() {
  function string (line 277) | string t_cl_generator::render_const_value(t_type* type, t_const_value* v...
  function string (line 489) | string t_cl_generator::typespec(t_type *t) {
  function string (line 513) | string t_cl_generator::function_signature(t_function* tfunction) {
  function string (line 517) | string t_cl_generator::argument_list(t_struct* tstruct) {
  function string (line 540) | string t_cl_generator::type_name(t_type* ttype) {

FILE: compiler/cpp/src/thrift/generate/t_cpp_generator.cc
  class t_cpp_generator (line 49) | class t_cpp_generator : public t_oop_generator {
    method t_cpp_generator (line 51) | t_cpp_generator(t_program* program,
    method generate_struct (line 139) | void generate_struct(t_struct* tstruct) override { generate_cpp_struct...
    method generate_xception (line 140) | void generate_xception(t_struct* txception) override { generate_cpp_st...
    method is_reference (line 290) | bool is_reference(t_field* tfield) { return tfield->get_reference(); }
    method is_complex_type (line 292) | bool is_complex_type(t_type* ttype) {
    method set_use_include_prefix (line 303) | void set_use_include_prefix(bool use_include_prefix) { use_include_pre...
    method has_custom_ostream (line 316) | bool has_custom_ostream(t_type* ttype) const {
  function string (line 986) | string t_cpp_generator::render_const_value(ostream* out,
  function maybeMove (line 1224) | std::string maybeMove(std::string const& other, bool move) {
  type struct_ostream_operator_generator (line 2127) | namespace struct_ostream_operator_generator {
    function generate_required_field_value (line 2128) | void generate_required_field_value(std::ostream& out, const t_field* f...
    function generate_optional_field_value (line 2139) | void generate_optional_field_value(std::ostream& out, const t_field* f...
    function generate_field_value (line 2151) | void generate_field_value(std::ostream& out, const t_field* field, boo...
    function generate_field_name (line 2158) | void generate_field_name(std::ostream& out, const t_field* field) {
    function generate_field (line 2162) | void generate_field(std::ostream& out, const t_field* field, bool use_...
    function generate_fields (line 2167) | void generate_fields(std::ostream& out,
  class ProcessorGenerator (line 3410) | class ProcessorGenerator {
    method run (line 3414) | void run() {
    method type_name (line 3435) | std::string type_name(t_type* ttype, bool in_typedef = false, bool arg...
    method indent (line 3439) | std::string indent() { return generator_->indent(); }
    method indent_up (line 3442) | void indent_up() { generator_->indent_up(); }
    method indent_down (line 3443) | void indent_down() { generator_->indent_down(); }
  function string (line 4721) | string t_cpp_generator::namespace_prefix(string ns) {
  function string (line 4751) | string t_cpp_generator::namespace_open(string ns) {
  function string (line 4778) | string t_cpp_generator::namespace_close(string ns) {
  function string (line 4798) | string t_cpp_generator::type_name(t_type* ttype, bool in_typedef, bool a...
  function string (line 4878) | string t_cpp_generator::base_type_name(t_base_type::t_base tbase) {
  function string (line 4909) | string t_cpp_generator::declare_field(t_field* tfield,
  function string (line 4975) | string t_cpp_generator::function_signature(t_function* tfunction,
  function string (line 5024) | string t_cpp_generator::argument_list(t_struct* tstruct, bool name_param...
  function string (line 5048) | string t_cpp_generator::type_to_enum(t_type* type) {
  function string (line 5131) | string t_cpp_generator::get_include_prefix(const t_program& program) con...
  function string (line 5147) | string t_cpp_generator::get_legal_program_name(std::string program_name)

FILE: compiler/cpp/src/thrift/generate/t_d_generator.cc
  class t_d_generator (line 54) | class t_d_generator : public t_oop_generator {
    method t_d_generator (line 56) | t_d_generator(t_program* program,
    method string (line 75) | static string suffix_if_reserved(const string& name) {
    method init_generator (line 81) | void init_generator() override {
    method close_generator (line 120) | void close_generator() override {
    method generate_consts (line 125) | void generate_consts(std::vector<t_const*> consts) override {
    method generate_typedef (line 169) | void generate_typedef(t_typedef* ttypedef) override {
    method generate_enum (line 175) | void generate_enum(t_enum* tenum) override {
    method generate_struct (line 198) | void generate_struct(t_struct* tstruct) override {
    method generate_xception (line 202) | void generate_xception(t_struct* txception) override {
    method generate_service (line 206) | void generate_service(t_service* tservice) override {
    method emit_doc (line 355) | void emit_doc(t_doc *doc, std::ostream& out) {
    method print_server_skeleton (line 374) | void print_server_skeleton(ostream& out, t_service* tservice) {
    method print_struct_definition (line 436) | void print_struct_definition(ostream& out, t_struct* tstruct, bool is_...
    method print_function_signature (line 500) | void print_function_signature(ostream& out, t_function* fn) {
    method string (line 523) | string render_const_value(t_type* type, t_const_value* value) {
    method string (line 632) | string render_package(const t_program& program) const {
    method string (line 645) | string render_type_name(const t_type* ttype, bool isArg = false) const {
    method string (line 707) | string render_req(t_field::e_req req) const {
    method print_default_imports (line 728) | void print_default_imports(ostream& out) {
    method is_immutable_type (line 738) | bool is_immutable_type(t_type* type) const {

FILE: compiler/cpp/src/thrift/generate/t_dart_generator.cc
  class t_dart_generator (line 59) | class t_dart_generator : public t_oop_generator {
    method t_dart_generator (line 61) | t_dart_generator(t_program* program,
    method scope_up (line 88) | void scope_up(std::ostream& out, std::string prefix=" ") {
    method scope_down (line 93) | void scope_down(std::ostream& out, std::string postfix="\n") {
    method string (line 98) | string replace_all(string contents, string search, string repl) {
    method type_can_be_null (line 248) | bool type_can_be_null(t_type* ttype) {
    method get_type_suffix (line 255) | std::string get_type_suffix(t_type* ttype) {
    method split (line 259) | vector<std::string> split(const string& s, char delim) {
  function string (line 312) | string t_dart_generator::find_library_name(t_program* program) {
  function string (line 327) | string t_dart_generator::dart_library(string file_name) {
  function string (line 344) | string t_dart_generator::service_imports() {
  function string (line 353) | string t_dart_generator::dart_thrift_imports() {
  function string (line 691) | string t_dart_generator::render_const_value(ostream& out,
  function string (line 2158) | string t_dart_generator::type_name(t_type* ttype) {
  function string (line 2186) | string t_dart_generator::type_name_instantiate(t_type* ttype) {
  function string (line 2213) | string t_dart_generator::base_type_name(t_base_type* type) {
  function string (line 2244) | string t_dart_generator::declare_field(t_field* tfield, bool init) {
  function string (line 2294) | string t_dart_generator::function_signature(t_function* tfunction) {
  function string (line 2312) | string t_dart_generator::argument_list(t_struct* tstruct) {
  function string (line 2333) | string t_dart_generator::type_to_enum(t_type* type) {
  function string (line 2490) | string t_dart_generator::constant_name(string name) {

FILE: compiler/cpp/src/thrift/generate/t_delphi_generator.cc
  class t_delphi_generator (line 56) | class t_delphi_generator : public t_oop_generator {
    method t_delphi_generator (line 58) | t_delphi_generator(t_program* program,
    method autogen_comment (line 332) | std::string autogen_comment() override {
    method type_can_be_null (line 347) | bool type_can_be_null(t_type* ttype) {
    method indent_up_impl (line 435) | void indent_up_impl() { ++indent_impl_; }
    method indent_down_impl (line 436) | void indent_down_impl() { --indent_impl_; }
    method indent_impl (line 437) | std::string indent_impl() {
  function string (line 448) | string t_delphi_generator::replace_all(string contents, string search, s...
  function string (line 467) | string t_delphi_generator::xml_encode(string contents) {
  function string (line 481) | string t_delphi_generator::xmlattrib_encode(string contents) {
  function string (line 491) | string t_delphi_generator::xmldoc_encode(string contents) {
  function string (line 1271) | string t_delphi_generator::render_const_value(ostream& vars,
  function string (line 3014) | string t_delphi_generator::normalize_clsnm(string clsnm, string prefix, ...
  function string (line 3025) | string t_delphi_generator::type_name(t_type* ttype,
  function string (line 3100) | string t_delphi_generator::input_arg_prefix(t_type* ttype) {
  function string (line 3146) | string t_delphi_generator::base_type_name(t_base_type* tbase) {
  function string (line 3181) | string t_delphi_generator::declare_field(t_field* tfield,
  function string (line 3192) | string t_delphi_generator::function_signature(t_function* tfunction,
  function string (line 3234) | string t_delphi_generator::argument_list(t_struct* tstruct) {
  function string (line 3256) | string t_delphi_generator::constructor_argument_list(t_struct* tstruct, ...
  function string (line 3306) | string t_delphi_generator::type_to_enum(t_type* type) {
  function string (line 3346) | string t_delphi_generator::empty_value(t_type* type) {

FILE: compiler/cpp/src/thrift/generate/t_erl_generator.cc
  type StringTo (line 45) | enum class StringTo {String, Binary, Both}
  type SetsTo (line 50) | enum class SetsTo {V1, V2}
  type TypeDeclaraion (line 55) | enum class TypeDeclaraion {Type, Nominal}
  class t_erl_generator (line 61) | class t_erl_generator : public t_generator {
    method t_erl_generator (line 63) | t_erl_generator(t_program* program,
    method make_safe_for_module_name (line 208) | std::string make_safe_for_module_name(std::string in) {
    method atomify (line 216) | std::string atomify(std::string in) {
    method constify (line 224) | std::string constify(std::string in) {
  function string (line 379) | string t_erl_generator::render_includes() {
  function string (line 395) | string t_erl_generator::erl_autogen_comment() {
  function string (line 405) | string t_erl_generator::comment(string in) {
  function string (line 417) | string t_erl_generator::erl_imports() {
  function emit_double_as_string (line 456) | const std::string emit_double_as_string(const double value) {
  function string (line 619) | string t_erl_generator::render_const_name(std::string name) {
  function string (line 623) | string t_erl_generator::render_const_name(std::string sname, std::string...
  function string (line 681) | string t_erl_generator::render_const_value(t_type* type, t_const_value* ...
  function string (line 786) | string t_erl_generator::render_const_list_values(t_type* type, t_const_v...
  function string (line 804) | string t_erl_generator::render_const_string_value(t_const_value* constva...
  function string (line 812) | string t_erl_generator::render_default_value(t_field* field) {
  function string (line 831) | string t_erl_generator::render_default_sets_value() {
  function string (line 842) | string t_erl_generator::render_member_type(t_field* field) {
  function string (line 847) | string t_erl_generator::render_type(t_type* type) {
  function string (line 869) | string t_erl_generator::render_base_type(t_type* type) {
  function string (line 888) | string t_erl_generator::render_string_type() {
  function string (line 901) | string t_erl_generator::render_type_declaration() {
  function string (line 912) | string t_erl_generator::render_member_requiredness(t_field* field) {
  function string (line 923) | string t_erl_generator::render_typedef_type(t_typedef* ttypedef) {
  function string (line 1022) | string t_erl_generator::render_member_value(t_field* field) {
  function string (line 1232) | string t_erl_generator::function_signature(t_function* tfunction, string...
  function string (line 1271) | string t_erl_generator::argument_list(t_struct* tstruct) {
  function string (line 1289) | string t_erl_generator::type_name(t_type* ttype) {
  function string (line 1310) | string t_erl_generator::type_to_enum(t_type* type) {

FILE: compiler/cpp/src/thrift/generate/t_generator.cc
  function string (line 150) | string t_generator::escape_string(const string& in) const {
  function t_generator (line 230) | t_generator* t_generator_registry::get_generator(t_program* program,
  function t_generator (line 248) | t_generator* t_generator_registry::get_generator(t_program* program, con...

FILE: compiler/cpp/src/thrift/generate/t_generator.h
  function class (line 43) | class t_generator {
  function virtual (line 204) | virtual std::string autogen_comment() {
  function virtual (line 210) | virtual std::string autogen_summary() {
  function indent_up (line 218) | void indent_up() { ++indent_; }
  function indent_down (line 220) | void indent_down() { --indent_; }
  function indent_count (line 225) | int indent_count() { return indent_; }
  function indent_validate (line 227) | void indent_validate( int expected, const char * func_name) {
  function std (line 261) | static std::string lowercase(std::string in) {
  function std (line 267) | static std::string uppercase(std::string in) {
  function std (line 319) | const std::string emit_double_as_string(const double value) {
  function t_type (line 348) | static t_type* get_true_type(t_type* type) { return type->get_true_type(...
  function open (line 408) | void open(std::string const& output_file_path_) {
  function close (line 414) | void close() {
  function clear_buf (line 455) | void clear_buf() {
  function is_readable (line 459) | static bool is_readable(std::string const& file_name) {
  type template_ofstream_with_content_based_conditional_update (line 467) | typedef template_ofstream_with_content_based_conditional_update<char> of...

FILE: compiler/cpp/src/thrift/generate/t_generator_registry.h
  function class (line 32) | class t_generator_factory {
  function t_generator (line 68) | t_generator* get_generator(t_program* program,
  function is_valid_namespace (line 74) | bool is_valid_namespace(const std::string& sub_namespace) override {
  function class (line 79) | class t_generator_registry {

FILE: compiler/cpp/src/thrift/generate/t_go_generator.cc
  function type_need_reference (line 113) | static bool type_need_reference(t_type* type) {
  function string (line 531) | string t_go_generator::render_included_programs(string& unused_prot) {
  function string (line 551) | string t_go_generator::render_program_import(const t_program* program, s...
  function string (line 621) | string t_go_generator::render_system_packages(std::vector<string>& syste...
  function string (line 653) | string t_go_generator::render_includes(bool consts) {
  function string (line 667) | string t_go_generator::render_import_protection() {
  function string (line 674) | string t_go_generator::render_fastbinary_includes() {
  function string (line 682) | string t_go_generator::go_autogen_comment() {
  function string (line 691) | string t_go_generator::go_package() {
  function string (line 699) | string t_go_generator::go_imports_begin(bool consts) {
  function string (line 727) | string t_go_generator::go_imports_end() {
  function string (line 950) | string t_go_generator::render_const_value(t_type* type, t_const_value* v...
  function string (line 4006) | string t_go_generator::declare_argument(t_field* tfield) {
  function string (line 4024) | string t_go_generator::render_field_initial_value(t_field* tfield,
  function string (line 4049) | string t_go_generator::function_signature(t_function* tfunction, string ...
  function string (line 4061) | string t_go_generator::function_signature_if(t_function* tfunction, stri...
  function string (line 4092) | string t_go_generator::argument_list(t_struct* tstruct) {
  function string (line 4112) | string t_go_generator::type_name(t_type* ttype) {
  function string (line 4121) | string t_go_generator::module_name(t_type* ttype) {
  function string (line 4139) | string t_go_generator::type_to_enum(t_type* type) {
  function string (line 4200) | string t_go_generator::type_to_go_key_type(t_type* type) {
  function string (line 4220) | string t_go_generator::type_to_go_type(t_type* type) {
  function string (line 4228) | string t_go_generator::type_to_go_type_with_opt(t_type* type,
  function string (line 4299) | string t_go_generator::type_to_spec_args(t_type* ttype) {
  function format_go_output (line 4392) | bool format_go_output(const string& file_path) {

FILE: compiler/cpp/src/thrift/generate/t_go_generator.h
  function class (line 53) | class t_go_generator : public t_generator {

FILE: compiler/cpp/src/thrift/generate/t_gv_generator.cc
  class t_gv_generator (line 44) | class t_gv_generator : public t_generator {
    method t_gv_generator (line 46) | t_gv_generator(t_program* program,

FILE: compiler/cpp/src/thrift/generate/t_haxe_generator.cc
  class t_haxe_generator (line 44) | class t_haxe_generator : public t_oop_generator {
    method t_haxe_generator (line 46) | t_haxe_generator(t_program* program,
    method type_can_be_null (line 214) | bool type_can_be_null(t_type* ttype) {
  function string (line 302) | string t_haxe_generator::haxe_package() {
  function string (line 314) | string t_haxe_generator::haxe_type_imports() {
  function string (line 334) | string t_haxe_generator::haxe_thrift_imports() {
  function string (line 347) | string t_haxe_generator::haxe_thrift_gen_imports(t_struct* tstruct, stri...
  function string (line 372) | string t_haxe_generator::haxe_thrift_gen_imports(t_service* tservice) {
  function string (line 1617) | string t_haxe_generator::generate_service_method_onsuccess(t_function* t...
  function string (line 1696) | string t_haxe_generator::make_haxe_string_literal( string const& value)
  function string (line 2612) | string t_haxe_generator::type_name(t_type* ttype, bool in_container, boo...
  function string (line 2707) | string t_haxe_generator::base_type_name(t_base_type* type, bool in_conta...
  function string (line 2742) | string t_haxe_generator::declare_field(t_field* tfield, bool init) {
  function string (line 2755) | string t_haxe_generator::render_default_value_for_type( t_type* type, bo...
  function string (line 2794) | string t_haxe_generator::function_signature_combined(t_function* tfuncti...
  function string (line 2823) | string t_haxe_generator::function_signature_normal(t_function* tfunction) {
  function string (line 2840) | string t_haxe_generator::argument_list(t_struct* tstruct) {
  function string (line 2860) | string t_haxe_generator::type_to_enum(t_type* type) {
  function string (line 2982) | string t_haxe_generator::constant_name(string name) {

FILE: compiler/cpp/src/thrift/generate/t_html_generator.cc
  type input_type (line 41) | enum input_type { INPUT_UNKNOWN, INPUT_UTF8, INPUT_PLAIN }
  class t_html_generator (line 48) | class t_html_generator : public t_generator {
    method t_html_generator (line 50) | t_html_generator(t_program* program,

FILE: compiler/cpp/src/thrift/generate/t_java_generator.cc
  class t_java_generator (line 55) | class t_java_generator : public t_oop_generator {
    method t_java_generator (line 57) | t_java_generator(t_program* program,
    type isset_type (line 335) | enum isset_type { ISSET_NONE, ISSET_PRIMITIVE, ISSET_BITSET }
    method type_can_be_null (line 376) | bool type_can_be_null(t_type* ttype) {
    method is_deprecated (line 383) | bool is_deprecated(const std::map<std::string, std::vector<std::string...
    method is_deprecated (line 387) | bool is_deprecated(const std::map<std::string, std::string>& annotatio...
    method is_enum_set (line 391) | bool is_enum_set(t_type* ttype) {
    method is_enum_map (line 403) | bool is_enum_map(t_type* ttype) {
    method inner_enum_type_name (line 415) | std::string inner_enum_type_name(t_type* ttype) {
  function string (line 504) | string t_java_generator::java_package() {
  function string (line 511) | string t_java_generator::java_suppressions() {
  function string (line 515) | string t_java_generator::java_nullable_annotation() {
  function string (line 519) | string t_java_generator::java_override_annotation() {
  function string (line 523) | string t_java_generator::normalize_name(string name)
  function string (line 793) | string t_java_generator::render_const_value(ostream& out, t_type* type, ...
  function string (line 4631) | string t_java_generator::type_name(t_type* ttype,
  function string (line 4701) | string t_java_generator::base_type_name(t_base_type* type, bool in_conta...
  function string (line 4738) | string t_java_generator::declare_field(t_field* tfield, bool init, bool ...
  function string (line 4801) | string t_java_generator::function_signature(t_function* tfunction, strin...
  function string (line 4822) | string t_java_generator::function_signature_async(t_function* tfunction,
  function string (line 4845) | string t_java_generator::function_signature_future(t_function* tfunction...
  function string (line 4852) | string t_java_generator::async_function_call_arglist(t_function* tfunc,
  function string (line 4873) | string t_java_generator::argument_list(t_struct* tstruct, bool include_t...
  function string (line 4893) | string t_java_generator::async_argument_list(t_function* tfunct,
  function string (line 4928) | string t_java_generator::type_to_enum(t_type* type) {
  function string (line 5062) | string t_java_generator::constant_name(string name) {
  type tm (line 5859) | struct tm

FILE: compiler/cpp/src/thrift/generate/t_javame_generator.cc
  class t_javame_generator (line 44) | class t_javame_generator : public t_oop_generator {
    method t_javame_generator (line 46) | t_javame_generator(t_program* program,
    method type_can_be_null (line 228) | bool type_can_be_null(t_type* ttype) {
  function string (line 279) | string t_javame_generator::java_package() {
  function string (line 291) | string t_javame_generator::java_type_imports() {
  function string (line 301) | string t_javame_generator::java_thrift_imports() {
  function string (line 537) | string t_javame_generator::render_const_value(ostream& out,
  function string (line 587) | string t_javame_generator::box_type(t_type* type, string value) {
  function string (line 2771) | string t_javame_generator::type_name(t_type* ttype,
  function string (line 2809) | string t_javame_generator::base_type_name(t_base_type* type, bool in_con...
  function string (line 2843) | string t_javame_generator::declare_field(t_field* tfield, bool init) {
  function string (line 2893) | string t_javame_generator::function_signature(t_function* tfunction, str...
  function string (line 2910) | string t_javame_generator::argument_list(t_struct* tstruct, bool include...
  function string (line 2933) | string t_javame_generator::type_to_enum(t_type* type) {
  function string (line 2981) | string t_javame_generator::constant_name(string name) {

FILE: compiler/cpp/src/thrift/generate/t_js_generator.cc
  class t_js_generator (line 58) | class t_js_generator : public t_oop_generator {
    method t_js_generator (line 60) | t_js_generator(t_program* program,
    method autogen_comment (line 246) | std::string autogen_comment() override {
    method js_namespace_pieces (line 254) | std::vector<std::string> js_namespace_pieces(t_program* p) {
    method js_type_namespace (line 278) | std::string js_type_namespace(t_program* p) {
    method has_js_namespace (line 288) | bool has_js_namespace(t_program* p) {
    method js_namespace (line 296) | std::string js_namespace(t_program* p) {
    method string (line 320) | string ts_indent() { return indent() + (!ts_module_.empty() ? "  " : "...
    method string (line 326) | string ts_declare() { return (ts_module_.empty() ? (gen_node_ ? "decla...
    method string (line 333) | string ts_get_req(t_field* field) {return (field->get_req() == t_field...
    method string (line 340) | string ts_print_doc(t_doc* tdoc) {
  function string (line 519) | string t_js_generator::js_includes() {
  function string (line 553) | string t_js_generator::ts_includes() {
  function string (line 572) | string t_js_generator::ts_service_includes() {
  function string (line 586) | string t_js_generator::render_includes() {
  function string (line 609) | string t_js_generator::render_ts_includes() {
  function string (line 628) | string t_js_generator::get_import_path(t_program* program) {
  function string (line 742) | string t_js_generator::render_const_value(t_type* type, t_const_value* v...
  function t_type (line 883) | t_type* t_js_generator::get_contained_type(t_type* t) {
  function string (line 2666) | string t_js_generator::declare_field(t_field* tfield, bool init, bool ob...
  function string (line 2718) | string t_js_generator::function_signature(t_function* tfunction,
  function string (line 2735) | string t_js_generator::argument_list(t_struct* tstruct, bool include_cal...
  function string (line 2763) | string t_js_generator::type_to_enum(t_type* type) {
  function string (line 2810) | string t_js_generator::ts_get_type(t_type* type) {

FILE: compiler/cpp/src/thrift/generate/t_json_generator.cc
  class t_json_generator (line 48) | class t_json_generator : public t_generator {
    method t_json_generator (line 50) | t_json_generator(t_program* program,
    method string (line 94) | string number_to_string(T t) {
    method write_number (line 103) | void write_number(T n) {
  function string (line 146) | string t_json_generator::escape_json_string(const string& input) {
  function string (line 537) | string t_json_generator::json_str(const string& str) {
  function string (line 769) | string t_json_generator::get_type_name(t_type* ttype) {
  function string (line 797) | string t_json_generator::get_qualified_name(t_type* ttype) {

FILE: compiler/cpp/src/thrift/generate/t_kotlin_generator.cc
  class t_kotlin_generator (line 66) | class t_kotlin_generator : public t_oop_generator {
    method t_kotlin_generator (line 68) | t_kotlin_generator(t_program* program,
  function string (line 327) | string t_kotlin_generator::base_type_name(t_base_type* type) {
  function string (line 358) | string t_kotlin_generator::type_name(t_type* ttype,
  function string (line 1185) | string t_kotlin_generator::base_type_write_expression(t_base_type* tbase...
  function string (line 1215) | string t_kotlin_generator::base_type_read_expression(t_base_type* tbase) {
  function string (line 1398) | string t_kotlin_generator::function_signature(t_function* tfunction, str...
  function string (line 1890) | string t_kotlin_generator::type_to_enum(t_type* type) {
  function string (line 1932) | string t_kotlin_generator::inner_enum_type_name(t_type* ttype) {
  function string (line 1971) | string t_kotlin_generator::kotlin_package() {
  function string (line 1978) | string t_kotlin_generator::warning_surpressions() {
  function string (line 1984) | string t_kotlin_generator::constant_name(string name) {
  function string (line 2004) | string t_kotlin_generator::kotlin_safe_name(const string& name) {

FILE: compiler/cpp/src/thrift/generate/t_lua_generator.cc
  class t_lua_generator (line 33) | class t_lua_generator : public t_oop_generator {
    method t_lua_generator (line 35) | t_lua_generator(t_program* program,
    method autogen_comment (line 157) | std::string autogen_comment() override {
  function string (line 248) | string t_lua_generator::render_const_value(t_type* type, t_const_value* ...
  function string (line 1107) | string t_lua_generator::lua_includes() {
  function string (line 1115) | string t_lua_generator::get_namespace(const t_program* program) {
  function string (line 1123) | string t_lua_generator::function_signature(t_function* tfunction, string...
  function string (line 1129) | string t_lua_generator::argument_list(t_struct* tstruct, string prefix) {
  function string (line 1143) | string t_lua_generator::type_to_enum(t_type* type) {

FILE: compiler/cpp/src/thrift/generate/t_markdown_generator.cc
  class t_markdown_generator (line 46) | class t_markdown_generator : public t_generator {
    type input_type (line 48) | enum input_type { INPUT_UNKNOWN, INPUT_UTF8, INPUT_PLAIN }
    method t_markdown_generator (line 51) | t_markdown_generator(t_program* program,

FILE: compiler/cpp/src/thrift/generate/t_netstd_generator.cc
  function field_has_default (line 105) | static bool field_has_default(t_field* tfield) { return tfield->get_valu...
  function field_is_required (line 107) | static bool field_is_required(t_field* tfield) { return tfield->get_req(...
  function t_type (line 109) | static t_type* resolve_typedef(t_type* ttype)
  function type_can_be_null (line 119) | static bool type_can_be_null(t_type* ttype)
  function string (line 171) | string t_netstd_generator::normalize_name(string name, bool is_arg_name)
  function string (line 371) | string t_netstd_generator::netstd_type_usings() const
  function string (line 398) | string t_netstd_generator::netstd_thrift_usings() const
  function string (line 663) | string t_netstd_generator::render_const_value(ostream& out, string name,...
  function string (line 3224) | string t_netstd_generator::make_csharp_string_literal( string const& value)
  function string (line 3248) | string t_netstd_generator::make_valid_csharp_identifier(string const& fr...
  function string (line 3295) | string t_netstd_generator::get_mapped_member_name(string name)
  function string (line 3410) | string t_netstd_generator::convert_to_pascal_case(const string& str) {
  function string (line 3433) | string t_netstd_generator::get_isset_name(const string& str) {
  function string (line 3438) | string t_netstd_generator::prop_name(t_field* tfield, bool suppress_mapp...
  function string (line 3451) | string t_netstd_generator::func_name(t_function* tfunc, bool suppress_ma...
  function string (line 3455) | string t_netstd_generator::func_name(std::string fname, bool suppress_ma...
  function string (line 3485) | string t_netstd_generator::nullable_suffix() {
  function string (line 3494) | string t_netstd_generator::nullable_field_suffix(t_field* tfield) {
  function string (line 3502) | string t_netstd_generator::nullable_field_suffix(t_type* ttype) {
  function string (line 3527) | string t_netstd_generator::nullable_value_access(t_type* ttype) {
  function string (line 3562) | string t_netstd_generator::type_name(t_type* ttype, bool with_namespace)
  function string (line 3607) | string t_netstd_generator::base_type_name(t_base_type* tbase)
  function string (line 3638) | string t_netstd_generator::get_deep_copy_method_call(t_type* ttype, bool...
  function string (line 3701) | string t_netstd_generator::declare_field(t_field* tfield, bool init, boo...
  function string (line 3716) | string t_netstd_generator::initialize_field(t_field* tfield)
  function string (line 3794) | string t_netstd_generator::function_signature(t_function* tfunction, str...
  function string (line 3800) | string t_netstd_generator::function_signature_async(t_function* tfunctio...
  function string (line 3823) | string t_netstd_generator::argument_list(t_struct* tstruct, bool with_ty...
  function string (line 3849) | string t_netstd_generator::type_to_enum(t_type* type)
  function string (line 3986) | string t_netstd_generator::get_enum_class_name(t_type* type)

FILE: compiler/cpp/src/thrift/generate/t_netstd_generator.h
  function class (line 50) | class t_netstd_generator : public t_oop_generator

FILE: compiler/cpp/src/thrift/generate/t_ocaml_generator.cc
  class t_ocaml_generator (line 45) | class t_ocaml_generator : public t_oop_generator {
    method t_ocaml_generator (line 47) | t_ocaml_generator(t_program* program,
  function string (line 251) | string t_ocaml_generator::ocaml_autogen_comment() {
  function string (line 259) | string t_ocaml_generator::ocaml_imports() {
  function string (line 348) | string t_ocaml_generator::render_const_value(t_type* type, t_const_value...
  function string (line 516) | string t_ocaml_generator::struct_member_copy_of(t_type* type, string wha...
  function string (line 1609) | string t_ocaml_generator::function_signature(t_function* tfunction, stri...
  function string (line 1614) | string t_ocaml_generator::function_type(t_function* tfunc, bool method, ...
  function string (line 1635) | string t_ocaml_generator::argument_list(t_struct* tstruct) {
  function string (line 1652) | string t_ocaml_generator::type_name(t_type* ttype) {
  function string (line 1670) | string t_ocaml_generator::exception_ctor(t_type* ttype) {
  function string (line 1685) | string t_ocaml_generator::type_to_enum(t_type* type) {
  function string (line 1728) | string t_ocaml_generator::render_ocaml_type(t_type* type) {

FILE: compiler/cpp/src/thrift/generate/t_oop_generator.h
  function class (line 36) | class t_oop_generator : public t_generator {

FILE: compiler/cpp/src/thrift/generate/t_perl_generator.cc
  class t_perl_generator (line 44) | class t_perl_generator : public t_oop_generator {
    method t_perl_generator (line 46) | t_perl_generator(t_program* program,
    method autogen_comment (line 154) | std::string autogen_comment() override {
    method perl_namespace_dirs (line 159) | void perl_namespace_dirs(t_program* p, std::list<std::string>& dirs) {
    method perl_namespace (line 175) | std::string perl_namespace(t_program* p) {
    method get_namespace_out_dir (line 195) | std::string get_namespace_out_dir() {
  function string (line 254) | string t_perl_generator::perl_includes() {
  function string (line 323) | string t_perl_generator::render_const_value(t_type* type, t_const_value*...
  function string (line 1556) | string t_perl_generator::declare_field(t_field* tfield, bool init, bool ...
  function string (line 1605) | string t_perl_generator::function_signature(t_function* tfunction, strin...
  function string (line 1626) | string t_perl_generator::argument_list(t_struct* tstruct) {
  function string (line 1646) | string t_perl_generator::type_to_enum(t_type* type) {

FILE: compiler/cpp/src/thrift/generate/t_php_generator.cc
  class t_php_generator (line 47) | class t_php_generator : public t_oop_generator {
    method t_php_generator (line 49) | t_php_generator(t_program* program,
    method indent_str (line 105) | std::string indent_str() const override {
    method php_is_scalar (line 235) | bool php_is_scalar(t_type *ttype) {
    method php_namespace_base (line 246) | std::string php_namespace_base(const t_program* p) {
    method string (line 258) | string php_namespace(const t_program* p) {
    method string (line 265) | string php_namespace_suffix(const t_program* p) {
    method string (line 274) | string php_namespace_directory(string directory, bool end = true) {
    method string (line 284) | string php_namespace_autoload(const t_program* p) {
    method string (line 290) | string php_namespace_declaration(t_type* t) { return t->get_name(); }
    method php_path (line 292) | std::string php_path(t_program* p) {
    method string (line 314) | string classify(string str) {
    method split (line 344) | vector<string> split(const string& s, char delim) {
    method string (line 355) | string capitalize(string str) {
  function string (line 473) | string t_php_generator::php_includes() {
  function string (line 649) | string t_php_generator::render_const_value(t_type* type, t_const_value* ...
  function string (line 2700) | string t_php_generator::declare_field(t_field* tfield, bool init, bool o...
  function string (line 2748) | string t_php_generator::function_signature(t_function* tfunction, string...
  function string (line 2755) | string t_php_generator::argument_list(t_struct* tstruct, bool addTypeHin...
  function string (line 2791) | string t_php_generator::type_to_cast(t_type* type) {
  function string (line 2820) | string t_php_generator::type_to_enum(t_type* type) {
  function string (line 2865) | string t_php_generator::type_to_phpdoc(t_type* type) {

FILE: compiler/cpp/src/thrift/generate/t_py_generator.cc
  class t_py_generator (line 47) | class t_py_generator : public t_generator {
    method t_py_generator (line 49) | t_py_generator(t_program* program,
    method indent_str (line 159) | std::string indent_str() const override {
    method is_valid_namespace (line 277) | static bool is_valid_namespace(const std::string& sub_namespace) {
    method get_real_py_module (line 281) | static std::string get_real_py_module(const t_program* program, bool g...
    method is_immutable (line 296) | static bool is_immutable(t_type* ttype) {
    method maybe_escape_identifier (line 381) | std::string maybe_escape_identifier(const std::string& identifier) {
    method lang_keywords_for_validation (line 388) | std::set<std::string> lang_keywords_for_validation() const override {
  function string (line 465) | string t_py_generator::render_includes() {
  function string (line 477) | string t_py_generator::py_autogen_comment() {
  function string (line 490) | string t_py_generator::py_imports() {
  function string (line 607) | string t_py_generator::render_const_value(t_type* type, t_const_value* v...
  function string (line 2762) | string t_py_generator::declare_argument(t_field* tfield) {
  function string (line 2781) | string t_py_generator::render_field_default_value(t_field* tfield) {
  function string (line 2796) | string t_py_generator::function_signature(t_function* tfunction, bool in...
  function string (line 2816) | string t_py_generator::argument_list(t_struct* tstruct, vector<string>* ...
  function string (line 2855) | string t_py_generator::type_name(t_type* ttype) {
  function string (line 2870) | string t_py_generator::arg_hint(t_type* type) {
  function string (line 2878) | string t_py_generator::member_hint(t_type* type, t_field::e_req req) {
  function string (line 2890) | string t_py_generator::func_hint(t_type* type) {
  function string (line 2901) | string t_py_generator::type_to_py_type(t_type* type) {
  function string (line 2943) | string t_py_generator::type_to_enum(t_type* type) {
  function string (line 2986) | string t_py_generator::type_to_spec_args(t_type* ttype) {

FILE: compiler/cpp/src/thrift/generate/t_rb_generator.cc
  class t_rb_ofstream (line 49) | class t_rb_ofstream : public std::ofstream {
    method t_rb_ofstream (line 54) | t_rb_ofstream() : std::ofstream(), indent_(0) {}
    method t_rb_ofstream (line 55) | explicit t_rb_ofstream(const char* filename,
    method t_rb_ofstream (line 60) | t_rb_ofstream& indent() {
    method indent_up (line 67) | void indent_up() { indent_++; }
    method indent_down (line 68) | void indent_down() { indent_--; }
  class t_rb_generator (line 75) | class t_rb_generator : public t_oop_generator {
    method t_rb_generator (line 77) | t_rb_generator(t_program* program,
    method ruby_modules (line 206) | std::vector<std::string> ruby_modules(const t_program* p) {
  function string (line 295) | string t_rb_generator::render_require_thrift() {
  function string (line 306) | string t_rb_generator::render_includes() {
  function string (line 329) | string t_rb_generator::rb_autogen_comment() {
  function t_rb_ofstream (line 423) | t_rb_ofstream& t_rb_generator::render_const_value(t_rb_ofstream& out,
    method t_rb_ofstream (line 54) | t_rb_ofstream() : std::ofstream(), indent_(0) {}
    method t_rb_ofstream (line 55) | explicit t_rb_ofstream(const char* filename,
    method t_rb_ofstream (line 60) | t_rb_ofstream& indent() {
    method indent_up (line 67) | void indent_up() { indent_++; }
    method indent_down (line 68) | void indent_down() { indent_--; }
  function string (line 1111) | string t_rb_generator::function_signature(t_function* tfunction, string ...
  function string (line 1119) | string t_rb_generator::argument_list(t_struct* tstruct) {
  function string (line 1136) | string t_rb_generator::type_name(const t_type* ttype) {
  function string (line 1147) | string t_rb_generator::full_type_name(const t_type* ttype) {
  function string (line 1159) | string t_rb_generator::type_to_enum(t_type* type) {
  function string (line 1201) | string t_rb_generator::rb_namespace_to_path_prefix(string rb_namespace) {

FILE: compiler/cpp/src/thrift/generate/t_rs_generator.cc
  class t_rs_generator (line 54) | class t_rs_generator : public t_generator {
    method t_rs_generator (line 56) | t_rs_generator(t_program* program, const std::map<std::string, std::st...
    type e_struct_type (line 89) | enum e_struct_type { T_REGULAR, T_ARGS, T_RESULT, T_EXCEPTION }
  function string (line 1623) | string t_rs_generator::string_container_write_variable(t_type* ttype, co...
  function string (line 2002) | string t_rs_generator::struct_field_read_temp_variable(t_field* tfield) {
  function string (line 2176) | string t_rs_generator::sync_client_marker_traits_for_extension(t_service...
  function string (line 2286) | string t_rs_generator::rust_sync_service_call_declaration(t_function* tf...
  function string (line 2304) | string t_rs_generator::rust_sync_service_call_invocation(t_function* tfunc,
  function string (line 2317) | string t_rs_generator::struct_to_declaration(t_struct* tstruct,
  function string (line 2342) | string t_rs_generator::struct_to_invocation(t_struct* tstruct, const str...
  function string (line 2786) | string t_rs_generator::handler_successful_return_struct(t_function* tfun...
  function string (line 2879) | string t_rs_generator::to_rust_type(t_type* ttype) {
  function string (line 2933) | string t_rs_generator::to_rust_const_type(t_type* ttype) {
  function string (line 2948) | string t_rs_generator::to_rust_field_type_enum(t_type* ttype) {
  function string (line 2989) | string t_rs_generator::opt_in_req_out_value(t_type* ttype) {
  function string (line 3078) | string t_rs_generator::visibility_qualifier(t_rs_generator::e_struct_typ...
  function string (line 3088) | string t_rs_generator::rust_namespace(t_service* tservice) {
  function string (line 3096) | string t_rs_generator::rust_namespace(t_type* ttype) {
  function string (line 3108) | string t_rs_generator::rust_struct_name(t_struct* tstruct) {
  function string (line 3113) | string t_rs_generator::rust_field_name(t_field* tfield) {
  function string (line 3118) | string t_rs_generator::rust_union_field_name(t_field* tfield) {
  function string (line 3123) | string t_rs_generator::rust_safe_name(const string& name) {
  function string (line 3131) | string t_rs_generator::service_call_client_function_name(t_function* tfu...
  function string (line 3135) | string t_rs_generator::service_call_handler_function_name(t_function* tf...
  function string (line 3139) | string t_rs_generator::service_call_args_struct_name(t_function* tfunc) {
  function string (line 3144) | string t_rs_generator::service_call_result_struct_name(t_function* tfunc) {
  function string (line 3148) | string t_rs_generator::rust_sync_client_marker_trait_name(t_service* tse...
  function string (line 3152) | string t_rs_generator::rust_sync_client_trait_name(t_service* tservice) {
  function string (line 3156) | string t_rs_generator::rust_sync_client_impl_name(t_service* tservice) {
  function string (line 3160) | string t_rs_generator::rust_sync_handler_trait_name(t_service* tservice) {
  function string (line 3164) | string t_rs_generator::rust_sync_processor_name(t_service* tservice) {
  function string (line 3168) | string t_rs_generator::rust_sync_processor_impl_name(t_service* tservice) {
  function string (line 3172) | string t_rs_generator::rust_enum_variant_name(const string& name) {
  function string (line 3191) | string t_rs_generator::rust_upper_case(const string& name) {
  function string (line 3210) | string t_rs_generator::rust_snake_case(const string& name) {
  function string (line 3216) | string t_rs_generator::rust_camel_case(const string& name) {
  function string (line 3222) | string t_rs_generator::rust_safe_field_id(int32_t id) {

FILE: compiler/cpp/src/thrift/generate/t_st_generator.cc
  class t_st_generator (line 50) | class t_st_generator : public t_oop_generator {
    method t_st_generator (line 52) | t_st_generator(t_program* program,
  function string (line 191) | string t_st_generator::class_name() {
  function string (line 199) | string t_st_generator::prefix(string class_name) {
  function string (line 206) | string t_st_generator::client_class_name() {
  function string (line 213) | string t_st_generator::st_autogen_comment() {
  function string (line 231) | string t_st_generator::generated_category() {
  type tm (line 275) | struct tm
  function string (line 368) | string t_st_generator::render_const_value(t_type* type, t_const_value* v...
  function string (line 533) | string t_st_generator::a_type(t_type* type) {
  function string (line 571) | string t_st_generator::temp_name() {
  function string (line 577) | string t_st_generator::map_writer(t_map* tmap, string fname) {
  function string (line 600) | string t_st_generator::map_reader(t_map* tmap) {
  function string (line 622) | string t_st_generator::list_writer(t_list* tlist, string fname) {
  function string (line 642) | string t_st_generator::list_reader(t_list* tlist) {
  function string (line 663) | string t_st_generator::set_writer(t_set* tset, string fname) {
  function string (line 683) | string t_st_generator::set_reader(t_set* tset) {
  function string (line 704) | string t_st_generator::struct_writer(t_struct* tstruct, string sname) {
  function string (line 744) | string t_st_generator::struct_reader(t_struct* tstruct, string clsName =...
  function string (line 788) | string t_st_generator::write_val(t_type* t, string fname) {
  function string (line 820) | string t_st_generator::read_val(t_type* t) {
  function string (line 906) | string t_st_generator::function_types_comment(t_function* fn) {
  function string (line 974) | string t_st_generator::function_signature(t_function* tfunction) {
  function string (line 981) | string t_st_generator::argument_list(t_struct* tstruct) {
  function string (line 999) | string t_st_generator::type_name(t_type* ttype) {
  function string (line 1017) | string t_st_generator::type_to_enum(t_type* type) {

FILE: compiler/cpp/src/thrift/generate/t_swift_generator.cc
  class t_swift_generator (line 45) | class t_swift_generator : public t_oop_generator {
    method t_swift_generator (line 47) | t_swift_generator(t_program* program,
    method get_real_swift_module (line 219) | static std::string get_real_swift_module(const t_program* program) {
    method block_open (line 228) | void block_open(ostream& out) {
    method block_close (line 233) | void block_close(ostream& out, bool end_line=true) {
    method field_is_optional (line 239) | bool field_is_optional(t_field* tfield) {
    method struct_has_required_fields (line 250) | bool struct_has_required_fields(t_struct* tstruct) {
    method struct_has_optional_fields (line 261) | bool struct_has_optional_fields(t_struct* tstruct) {
    method lang_keywords_for_validation (line 295) | std::set<std::string> lang_keywords_for_validation() const override {
  function string (line 343) | string t_swift_generator::swift_imports() {
  function string (line 371) | string t_swift_generator::swift_thrift_imports() {
  function string (line 556) | string t_swift_generator::enum_case_name(t_enum_value* tenum_case, bool ...
  function string (line 570) | string t_swift_generator::enum_const_name(string enum_identifier) {
  function string (line 1543) | string t_swift_generator::function_result_helper_struct_type(t_service *...
  function string (line 1551) | string t_swift_generator::function_args_helper_struct_type(t_service *ts...
  function string (line 2535) | string t_swift_generator::type_name(t_type* ttype, bool is_optional, boo...
  function string (line 2573) | string t_swift_generator::base_type_name(t_base_type* type) {
  function string (line 2753) | string t_swift_generator::declare_property(t_field* tfield, bool is_priv...
  function string (line 2782) | string t_swift_generator::function_signature(t_function* tfunction) {
  function string (line 2906) | string t_swift_generator::async_function_signature(t_function* tfunction) {
  function string (line 2935) | string t_swift_generator::promise_function_signature(t_function* tfuncti...
  function string (line 2943) | string t_swift_generator::function_name(t_function* tfunction) {
  function string (line 2958) | string t_swift_generator::argument_list(t_struct* tstruct, string protoc...
  function string (line 3113) | string t_swift_generator::maybe_escape_identifier(const string& identifi...
  function string (line 3123) | string t_swift_generator::type_to_enum(t_type* type, bool qualified) {

FILE: compiler/cpp/src/thrift/generate/t_xml_generator.cc
  class t_xml_generator (line 52) | class t_xml_generator : public t_generator {
    method t_xml_generator (line 54) | t_xml_generator( t_program* program,
    method string (line 124) | string number_to_string(T t) {
    method write_number (line 133) | void write_number(T n) {
    method write_element_number (line 138) | void write_element_number(string name, T n) {
    method xml_autogen_comment (line 149) | virtual std::string xml_autogen_comment() {
  function string (line 164) | string t_xml_generator::target_namespace(t_program* program) {
  function string (line 251) | string t_xml_generator::escape_xml_string(const string& input) {
  function string (line 668) | string t_xml_generator::get_type_name(t_type* ttype) {

FILE: compiler/cpp/src/thrift/generate/t_xsd_generator.cc
  class t_xsd_generator (line 43) | class t_xsd_generator : public t_generator {
    method t_xsd_generator (line 45) | t_xsd_generator(t_program* program,
    method generate_enum (line 75) | void generate_enum(t_enum* tenum) override { (void)tenum; }
    method ns (line 89) | std::string ns(std::string in, std::string ns) { return ns + ":" + in; }
    method xsd (line 91) | std::string xsd(std::string in) { return ns(in, "xsd"); }
    method xml_autogen_comment (line 96) | virtual std::string xml_autogen_comment() {
  function string (line 313) | string t_xsd_generator::type_name(t_type* ttype) {
  function string (line 339) | string t_xsd_generator::base_type_name(t_base_type::t_base tbase) {

FILE: compiler/cpp/src/thrift/generate/validator_parser.cc
  function t_field (line 510) | t_field* validation_parser::get_referenced_field(std::string annotation_...

FILE: compiler/cpp/src/thrift/generate/validator_parser.h
  function class (line 30) | class validation_value {
  function set_double (line 64) | void set_double(const double val) {
  function get_double (line 68) | double get_double() { return double_val; }
  function set_bool (line 70) | void set_bool(const bool val) {
  function set_enum (line 76) | void set_enum(t_enum_value* val) {
  function t_enum_value (line 80) | t_enum_value* get_enum() const { return enum_val; }
  function set_string (line 82) | void set_string(const std::string val) {
  function set_function (line 88) | void set_function(validation_function* val) {
  function validation_function (line 93) | validation_function* get_function() { return function_val; }
  function set_field_reference (line 95) | void set_field_reference(t_field* val) {
  function t_field (line 99) | t_field* get_field_reference() const { return field_reference_val; }
  function class (line 119) | class validation_rule {
  function class (line 136) | class validation_parser {

FILE: compiler/cpp/src/thrift/globals.h
  type PARSE_MODE (line 51) | enum PARSE_MODE { INCLUDES = 1, PROGRAM = 2 }
  type PROGDOCTEXT_STATUS (line 102) | enum PROGDOCTEXT_STATUS {

FILE: compiler/cpp/src/thrift/logging.cc
  function pdebug (line 30) | void pdebug(const char* fmt, ...) {
  function pverbose (line 42) | void pverbose(const char* fmt, ...) {
  function pwarning (line 52) | void pwarning(int level, const char* fmt, ...) {
  function failure (line 64) | void failure(const char* fmt, ...) {

FILE: compiler/cpp/src/thrift/main.cc
  function check_is_directory (line 192) | bool check_is_directory(const char* dir_name) {
  function yyerror (line 229) | void yyerror(const char* fmt, ...) {
  function pdebug (line 245) | void pdebug(const char* fmt, ...) {
  function pverbose (line 262) | void pverbose(const char* fmt, ...) {
  function pwarning (line 277) | void pwarning(int level, const char* fmt, ...) {
  function failure (line 294) | void failure(const char* fmt, ...) {
  function string (line 307) | string program_name(string filename) {
  function string (line 322) | string directory_name(string filename) {
  function string (line 334) | string include_file(string filename) {
  function clear_doctext (line 389) | void clear_doctext() {
  function reset_program_doctext_info (line 400) | void reset_program_doctext_info() {
  function declare_valid_program_doctext (line 413) | void declare_valid_program_doctext() {
  function dump_docstrings (line 565) | void dump_docstrings(t_program* program) {
  function check_for_list_of_bytes (line 623) | void check_for_list_of_bytes(t_type* list_elem_type) {
  function emit_byte_type_warning (line 637) | void emit_byte_type_warning() {
  function error_unsupported_namespace_decl (line 651) | void error_unsupported_namespace_decl(const char* old_form, const char* ...
  function version (line 663) | void version() {
  function usage (line 670) | void usage() {
  function help (line 679) | void help() {
  function validate_const_rec (line 733) | void validate_const_rec(std::string name, t_type* type, t_const_value* v...
  function validate_simple_identifier (line 864) | void validate_simple_identifier(const char* identifier) {
  function validate_const_type (line 875) | void validate_const_type(t_const* c) {
  function validate_field_value (line 882) | void validate_field_value(t_field* field, t_const_value* cv) {
  function validate_throws (line 889) | bool validate_throws(t_struct* throws) {
  function skip_utf8_bom (line 903) | bool skip_utf8_bom(FILE* f) {
  function parse (line 921) | void parse(t_program* program, t_program* parent_program, std::set<std::...
  function generate (line 1000) | void generate(t_program* program, const vector<string>& generator_string...
  function audit (line 1047) | void audit(t_program* new_program,
  function main (line 1079) | int main(int argc, char** argv) {

FILE: compiler/cpp/src/thrift/parse/parse.cc
  function t_type (line 25) | t_type* t_type::get_true_type() {
  function t_type (line 29) | const t_type* t_type::get_true_type() const {

FILE: compiler/cpp/src/thrift/parse/t_base_type.h
  function class (line 31) | class t_base_type : public t_type {
  function set_binary (line 61) | void set_binary(bool val) { binary_ = val; }
  function std (line 67) | static std::string t_base_name(t_base tbase) {

FILE: compiler/cpp/src/thrift/parse/t_const.h
  function class (line 33) | class t_const : public t_doc {

FILE: compiler/cpp/src/thrift/parse/t_const_value.h
  function class (line 34) | class t_const_value {
  function set_string (line 55) | void set_string(std::string val) {
  function set_integer (line 62) | void set_integer(int64_t val) {
  function set_uuid (line 88) | void set_uuid(std::string val) {
  function set_double (line 100) | void set_double(double val) {
  function set_map (line 107) | void set_map() { valType_ = CV_MAP; }
  function add_map (line 109) | void add_map(t_const_value* key, t_const_value* val) { mapVal_[key] = va...
  function set_list (line 113) | void set_list() { valType_ = CV_LIST; }
  function add_list (line 115) | void add_list(t_const_value* val) { listVal_.push_back(val); }
  function set_identifier (line 119) | void set_identifier(std::string val) {
  function set_enum (line 153) | void set_enum(t_enum* tenum) { enum_ = tenum; }
  function else (line 161) | struct map_entry_compare {
  function operator (line 178) | bool operator < (const t_const_value& that) const {
  function validate_uuid (line 215) | void validate_uuid(std::string & uuid) const {

FILE: compiler/cpp/src/thrift/parse/t_container.h
  function class (line 25) | class t_container : public t_type {

FILE: compiler/cpp/src/thrift/parse/t_doc.h
  function class (line 30) | class t_doc {

FILE: compiler/cpp/src/thrift/parse/t_enum.h
  function class (line 32) | class t_enum : public t_type {

FILE: compiler/cpp/src/thrift/parse/t_enum_value.h
  function class (line 33) | class t_enum_value : public t_doc {

FILE: compiler/cpp/src/thrift/parse/t_field.h
  function class (line 38) | class t_field : public t_doc {
  function set_reference (line 113) | void set_reference(bool reference) { reference_ = reference; }
  type t_field_id (line 132) | struct t_field_id {

FILE: compiler/cpp/src/thrift/parse/t_function.h
  function class (line 34) | class t_function : public t_doc {
  function t_type (line 74) | t_type* get_returntype() const { return returntype_; }
  function t_struct (line 78) | t_struct* get_arglist() const { return arglist_; }
  function t_struct (line 80) | t_struct* get_xceptions() const { return xceptions_; }

FILE: compiler/cpp/src/thrift/parse/t_list.h
  function class (line 29) | class t_list : public t_container {

FILE: compiler/cpp/src/thrift/parse/t_map.h
  function class (line 30) | class t_map : public t_container {

FILE: compiler/cpp/src/thrift/parse/t_program.h
  function class (line 58) | class t_program : public t_doc {
  function add_typedef (line 104) | void add_typedef(t_typedef* td) { typedefs_.push_back(td); }
  function add_enum (line 105) | void add_enum(t_enum* te) { enums_.push_back(te); }
  function add_const (line 106) | void add_const(t_const* tc) { consts_.push_back(tc); }
  function add_struct (line 107) | void add_struct(t_struct* ts) {
  function add_xception (line 111) | void add_xception(t_struct* tx) {
  function add_service (line 115) | void add_service(t_service* ts) {
  function set_out_path (line 125) | void set_out_path(std::string out_path, bool out_path_is_absolute) {
  function is_unique_typename (line 141) | bool is_unique_typename(const t_type* t) const {
  function program_typename_count (line 155) | int program_typename_count(const t_program* prog, const t_type* t) const {
  function is_common_namespace (line 192) | bool is_common_namespace(const t_program* prog, const t_type* t) const {
  function set_namespace (line 249) | void set_namespace(std::string name) { namespace_ = name; }
  function t_scope (line 252) | t_scope* scope() { return scope_; }
  function t_scope (line 254) | const t_scope* scope() const { return scope_; }
  function add_include (line 258) | void add_include(t_program* program) {
  function add_include (line 262) | void add_include(std::string path, std::string include_site) {
  function set_include_prefix (line 277) | void set_include_prefix(std::string include_prefix) {
  function set_namespace (line 288) | void set_namespace(std::string language, std::string name_space) {
  function set_namespace_annotations (line 334) | void set_namespace_annotations(std::string language, std::map<std::strin...
  function add_cpp_include (line 353) | void add_cpp_include(std::string path) { cpp_includes_.push_back(path); }
  function add_c_include (line 357) | void add_c_include(std::string path) { c_includes_.push_back(path); }
  function set_recursive (line 361) | void set_recursive(const bool recursive) { recursive_ = recursive; }

FILE: compiler/cpp/src/thrift/parse/t_scope.h
  function class (line 44) | class t_scope {

FILE: compiler/cpp/src/thrift/parse/t_service.h
  function class (line 32) | class t_service : public t_type {

FILE: compiler/cpp/src/thrift/parse/t_set.h
  function class (line 29) | class t_set : public t_container {

FILE: compiler/cpp/src/thrift/parse/t_struct.h
  function class (line 39) | class t_struct : public t_type {

FILE: compiler/cpp/src/thrift/parse/t_type.h
  function class (line 41) | class t_type : public t_doc {
  type t_annotation (line 108) | struct t_annotation {

FILE: compiler/cpp/src/thrift/parse/t_typedef.cc
  function t_type (line 24) | t_type* t_typedef::get_type() {
  function t_type (line 28) | const t_type* t_typedef::get_type() const {

FILE: compiler/cpp/src/thrift/parse/t_typedef.h
  function class (line 33) | class t_typedef : public t_type {

FILE: compiler/cpp/test/compiler/staleness_check.py
  class TestStalenessCheck (line 29) | class TestStalenessCheck(unittest.TestCase):
    method test_staleness_check_of_single_thrift_file_without_changed_output (line 37) | def test_staleness_check_of_single_thrift_file_without_changed_output(...
    method test_staleness_check_of_single_thrift_file_with_changed_output (line 58) | def test_staleness_check_of_single_thrift_file_with_changed_output(self):
    method test_staleness_check_of_included_file (line 90) | def test_staleness_check_of_included_file(self):
  function suite (line 129) | def suite():

FILE: compiler/cpp/tests/catch/catch.hpp
  type Catch (line 380) | namespace Catch {
    type IConfig (line 382) | struct IConfig
    type CaseSensitive (line 384) | struct CaseSensitive { enum Choice {
      type Choice (line 384) | enum Choice {
    class NonCopyable (line 389) | class NonCopyable {
      method NonCopyable (line 391) | NonCopyable( NonCopyable const& )              = delete;
      method NonCopyable (line 392) | NonCopyable( NonCopyable && )                  = delete;
      method NonCopyable (line 393) | NonCopyable& operator = ( NonCopyable const& ) = delete;
      method NonCopyable (line 394) | NonCopyable& operator = ( NonCopyable && )     = delete;
      method NonCopyable (line 401) | NonCopyable() {}
    class SafeBool (line 405) | class SafeBool {
      method type (line 409) | static type makeSafe( bool value ) {
      method trueValue (line 413) | void trueValue() const {}
    function deleteAll (line 417) | inline void deleteAll( ContainerT& container ) {
    function deleteAllValues (line 424) | inline void deleteAllValues( AssociativeContainerT& container ) {
    type pluralise (line 441) | struct pluralise {
    type SourceLineInfo (line 450) | struct SourceLineInfo {
      method SourceLineInfo (line 455) | SourceLineInfo(SourceLineInfo const& other)          = default;
      method SourceLineInfo (line 456) | SourceLineInfo( SourceLineInfo && )                  = default;
      method SourceLineInfo (line 457) | SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
      method SourceLineInfo (line 458) | SourceLineInfo& operator = ( SourceLineInfo && )     = default;
    function isTrue (line 471) | inline bool isTrue( bool value ){ return value; }
    function alwaysTrue (line 472) | inline bool alwaysTrue() { return true; }
    function alwaysFalse (line 473) | inline bool alwaysFalse() { return false; }
    type StreamEndStop (line 484) | struct StreamEndStop {
    function T (line 490) | T const& operator + ( T const& value, StreamEndStop ) {
    class NotImplementedException (line 500) | class NotImplementedException : public std::exception
      method NotImplementedException (line 504) | NotImplementedException( NotImplementedException const& ) {}
    type IGeneratorInfo (line 530) | struct IGeneratorInfo {
    type IGeneratorsForTest (line 536) | struct IGeneratorsForTest {
    class Ptr (line 561) | class Ptr {
      method Ptr (line 563) | Ptr() : m_p( CATCH_NULL ){}
      method Ptr (line 564) | Ptr( T* p ) : m_p( p ){
      method Ptr (line 568) | Ptr( Ptr const& other ) : m_p( other.m_p ){
      method reset (line 576) | void reset() {
      method Ptr (line 581) | Ptr& operator = ( T* p ){
      method Ptr (line 586) | Ptr& operator = ( Ptr const& other ){
      method swap (line 591) | void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
      method T (line 592) | T* get() const{ return m_p; }
      method T (line 593) | T& operator*() const { return *m_p; }
      method T (line 594) | T* operator->() const { return m_p; }
    type IShared (line 602) | struct IShared : NonCopyable {
    type SharedImpl (line 609) | struct SharedImpl : T {
      method SharedImpl (line 611) | SharedImpl() : m_rc( 0 ){}
      method addRef (line 613) | virtual void addRef() const {
      method release (line 616) | virtual void release() const {
    class TestCase (line 632) | class TestCase
    class Stream (line 633) | class Stream
    type IResultCapture (line 634) | struct IResultCapture
    type IRunner (line 635) | struct IRunner
    type IGeneratorsForTest (line 636) | struct IGeneratorsForTest
    type IConfig (line 637) | struct IConfig
    type IContext (line 639) | struct IContext
    type IMutableContext (line 650) | struct IMutableContext : IContext
    class TestSpec (line 675) | class TestSpec
      type Pattern (line 3615) | struct Pattern : SharedImpl<> {
      class NamePattern (line 3619) | class NamePattern : public Pattern {
        method NamePattern (line 3621) | NamePattern( std::string const& name )
        method matches (line 3625) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class TagPattern (line 3632) | class TagPattern : public Pattern {
        method TagPattern (line 3634) | TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
        method matches (line 3636) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class ExcludedPattern (line 3643) | class ExcludedPattern : public Pattern {
        method ExcludedPattern (line 3645) | ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_under...
        method matches (line 3647) | virtual bool matches( TestCaseInfo const& testCase ) const { retur...
      type Filter (line 3652) | struct Filter {
        method matches (line 3655) | bool matches( TestCaseInfo const& testCase ) const {
      method hasFilters (line 3666) | bool hasFilters() const {
      method matches (line 3669) | bool matches( TestCaseInfo const& testCase ) const {
    type ITestCase (line 677) | struct ITestCase : IShared {
    class TestCase (line 683) | class TestCase
    type IConfig (line 684) | struct IConfig
    type ITestCaseRegistry (line 686) | struct ITestCaseRegistry {
    class MethodTestCase (line 701) | class MethodTestCase : public SharedImpl<ITestCase> {
      method MethodTestCase (line 704) | MethodTestCase( void (C::*method)() ) : m_method( method ) {}
      method invoke (line 706) | virtual void invoke() const {
    type NameAndDesc (line 719) | struct NameAndDesc {
      method NameAndDesc (line 720) | NameAndDesc( const char* _name = "", const char* _description= "" )
    type AutoReg (line 734) | struct AutoReg {
      method AutoReg (line 742) | AutoReg
    type ResultWas (line 857) | struct ResultWas { enum OfType {
      type OfType (line 857) | enum OfType {
    function isOk (line 877) | inline bool isOk( ResultWas::OfType resultType ) {
    function isJustInfo (line 880) | inline bool isJustInfo( int flags ) {
    type ResultDisposition (line 885) | struct ResultDisposition { enum Flags {
      type Flags (line 885) | enum Flags {
    function shouldContinueOnFailure (line 897) | inline bool shouldContinueOnFailure( int flags )    { return ( flags &...
    function isFalseTest (line 898) | inline bool isFalseTest( int flags )                { return ( flags &...
    function shouldSuppressFailure (line 899) | inline bool shouldSuppressFailure( int flags )      { return ( flags &...
    type STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison (line 910) | struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_C...
    type DecomposedExpression (line 912) | struct DecomposedExpression
      method isBinaryExpression (line 915) | virtual bool isBinaryExpression() const {
    type AssertionInfo (line 934) | struct AssertionInfo
      method AssertionInfo (line 936) | AssertionInfo() {}
    type AssertionResultData (line 948) | struct AssertionResultData
      method AssertionResultData (line 950) | AssertionResultData() : decomposedExpression( CATCH_NULL )
      method negate (line 955) | void negate( bool parenthesize ) {
    class AssertionResult (line 987) | class AssertionResult {
      method AssertionResult (line 993) | AssertionResult( AssertionResult const& )              = default;
      method AssertionResult (line 994) | AssertionResult( AssertionResult && )                  = default;
      method AssertionResult (line 995) | AssertionResult& operator = ( AssertionResult const& ) = default;
      method AssertionResult (line 996) | AssertionResult& operator = ( AssertionResult && )     = default;
    type Matchers (line 1025) | namespace Matchers {
      type Impl (line 1026) | namespace Impl {
        type MatchAllOf (line 1028) | struct MatchAllOf
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1029) | struct MatchAnyOf
          method match (line 1097) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1104) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchNotOf (line 1030) | struct MatchNotOf
          method MatchNotOf (line 1128) | MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_und...
          method match (line 1130) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1134) | virtual std::string describe() const CATCH_OVERRIDE {
        class MatcherUntypedBase (line 1032) | class MatcherUntypedBase {
          method toString (line 1034) | std::string toString() const {
        type MatcherMethod (line 1049) | struct MatcherMethod {
        type MatcherMethod<PtrT*> (line 1053) | struct MatcherMethod<PtrT*> {
        type MatcherBase (line 1058) | struct MatcherBase : MatcherUntypedBase, MatcherMethod<ObjectT> {
        type MatchAllOf (line 1066) | struct MatchAllOf : MatcherBase<ArgT> {
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1095) | struct MatchAnyOf : MatcherBase<ArgT> {
          method match (line 1097) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1104) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchNotOf (line 1126) | struct MatchNotOf : MatcherBase<ArgT> {
          method MatchNotOf (line 1128) | MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_und...
          method match (line 1130) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1134) | virtual std::string describe() const CATCH_OVERRIDE {
      function Not (line 1159) | inline Impl::MatchNotOf<T> Not( Impl::MatcherBase<T> const& underlyi...
      function AllOf (line 1163) | inline Impl::MatchAllOf<T> AllOf( Impl::MatcherBase<T> const& m1, Im...
      function AllOf (line 1167) | inline Impl::MatchAllOf<T> AllOf( Impl::MatcherBase<T> const& m1, Im...
      function AnyOf (line 1171) | inline Impl::MatchAnyOf<T> AnyOf( Impl::MatcherBase<T> const& m1, Im...
      function AnyOf (line 1175) | inline Impl::MatchAnyOf<T> AnyOf( Impl::MatcherBase<T> const& m1, Im...
      type StdString (line 2952) | namespace StdString {
        type CasedString (line 2954) | struct CasedString
        type StringMatcherBase (line 2964) | struct StringMatcherBase : MatcherBase<std::string> {
        type EqualsMatcher (line 2972) | struct EqualsMatcher : StringMatcherBase {
        type ContainsMatcher (line 2976) | struct ContainsMatcher : StringMatcherBase {
        type StartsWithMatcher (line 2980) | struct StartsWithMatcher : StringMatcherBase {
        type EndsWithMatcher (line 2984) | struct EndsWithMatcher : StringMatcherBase {
      type Vector (line 3008) | namespace Vector {
        type ContainsElementMatcher (line 3011) | struct ContainsElementMatcher : MatcherBase<std::vector<T>, T> {
          method ContainsElementMatcher (line 3013) | ContainsElementMatcher(T const &comparator) : m_comparator( comp...
          method match (line 3015) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3019) | virtual std::string describe() const CATCH_OVERRIDE {
        type ContainsMatcher (line 3027) | struct ContainsMatcher : MatcherBase<std::vector<T>, std::vector<T...
          method ContainsMatcher (line 3029) | ContainsMatcher(std::vector<T> const &comparator) : m_comparator...
          method match (line 3031) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3040) | virtual std::string describe() const CATCH_OVERRIDE {
        type EqualsMatcher (line 3048) | struct EqualsMatcher : MatcherBase<std::vector<T>, std::vector<T> > {
          method EqualsMatcher (line 3050) | EqualsMatcher(std::vector<T> const &comparator) : m_comparator( ...
          method match (line 3052) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3064) | virtual std::string describe() const CATCH_OVERRIDE {
      function Contains (line 3076) | Vector::ContainsMatcher<T> Contains( std::vector<T> const& comparato...
      function VectorContains (line 3081) | Vector::ContainsElementMatcher<T> VectorContains( T const& comparato...
      function Equals (line 3086) | Vector::EqualsMatcher<T> Equals( std::vector<T> const& comparator ) {
      type StdString (line 9221) | namespace StdString {
        type CasedString (line 2954) | struct CasedString
        type StringMatcherBase (line 2964) | struct StringMatcherBase : MatcherBase<std::string> {
        type EqualsMatcher (line 2972) | struct EqualsMatcher : StringMatcherBase {
        type ContainsMatcher (line 2976) | struct ContainsMatcher : StringMatcherBase {
        type StartsWithMatcher (line 2980) | struct StartsWithMatcher : StringMatcherBase {
        type EndsWithMatcher (line 2984) | struct EndsWithMatcher : StringMatcherBase {
      function Equals (line 9281) | StdString::EqualsMatcher Equals( std::string const& str, CaseSensiti...
      function Contains (line 9284) | StdString::ContainsMatcher Contains( std::string const& str, CaseSen...
      function EndsWith (line 9287) | StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSen...
      function StartsWith (line 9290) | StdString::StartsWithMatcher StartsWith( std::string const& str, Cas...
    type TestFailureException (line 1188) | struct TestFailureException{}
    class ExpressionLhs (line 1190) | class ExpressionLhs
      method ExpressionLhs (line 1802) | ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs )...
      method endExpression (line 1850) | void endExpression() {
      method reconstructExpression (line 1857) | virtual void reconstructExpression( std::string& dest ) const CATCH_...
      method captureExpression (line 1863) | BinaryExpression<T, Op, RhsT&> captureExpression( RhsT& rhs ) const {
      method captureExpression (line 1868) | BinaryExpression<T, Op, bool> captureExpression( bool rhs ) const {
    type CopyableStream (line 1192) | struct CopyableStream {
      method CopyableStream (line 1193) | CopyableStream() {}
      method CopyableStream (line 1194) | CopyableStream( CopyableStream const& other ) {
      method CopyableStream (line 1197) | CopyableStream& operator=( CopyableStream const& other ) {
    class ResultBuilder (line 1205) | class ResultBuilder : public DecomposedExpression {
      method ResultBuilder (line 1219) | ResultBuilder& operator << ( T const& value ) {
    type Internal (line 1278) | namespace Internal {
      type Operator (line 1280) | enum Operator {
      type OperatorTraits (line 1289) | struct OperatorTraits             { static const char* getName(){ re...
      type OperatorTraits<IsEqualTo> (line 1290) | struct OperatorTraits<IsEqualTo>             { static const char* ge...
      type OperatorTraits<IsNotEqualTo> (line 1291) | struct OperatorTraits<IsNotEqualTo>          { static const char* ge...
      type OperatorTraits<IsLessThan> (line 1292) | struct OperatorTraits<IsLessThan>            { static const char* ge...
      type OperatorTraits<IsGreaterThan> (line 1293) | struct OperatorTraits<IsGreaterThan>         { static const char* ge...
      type OperatorTraits<IsLessThanOrEqualTo> (line 1294) | struct OperatorTraits<IsLessThanOrEqualTo>   { static const char* ge...
      type OperatorTraits<IsGreaterThanOrEqualTo> (line 1295) | struct OperatorTraits<IsGreaterThanOrEqualTo>{ static const char* ge...
      function T (line 1298) | inline T& opCast(T const& t) { return const_cast<T&>(t); }
      function opCast (line 1302) | inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; }
      class Evaluator (line 1308) | class Evaluator{}
      type Evaluator<T1, T2, IsEqualTo> (line 1311) | struct Evaluator<T1, T2, IsEqualTo> {
        method evaluate (line 1312) | static bool evaluate( T1 const& lhs, T2 const& rhs) {
      type Evaluator<T1, T2, IsNotEqualTo> (line 1317) | struct Evaluator<T1, T2, IsNotEqualTo> {
        method evaluate (line 1318) | static bool evaluate( T1 const& lhs, T2 const& rhs ) {
      type Evaluator<T1, T2, IsLessThan> (line 1323) | struct Evaluator<T1, T2, IsLessThan> {
        method evaluate (line 1324) | static bool evaluate( T1 const& lhs, T2 const& rhs ) {
      type Evaluator<T1, T2, IsGreaterThan> (line 1329) | struct Evaluator<T1, T2, IsGreaterThan> {
        method evaluate (line 1330) | static bool evaluate( T1 const& lhs, T2 const& rhs ) {
      type Evaluator<T1, T2, IsGreaterThanOrEqualTo> (line 1335) | struct Evaluator<T1, T2, IsGreaterThanOrEqualTo> {
        method evaluate (line 1336) | static bool evaluate( T1 const& lhs, T2 const& rhs ) {
      type Evaluator<T1, T2, IsLessThanOrEqualTo> (line 1341) | struct Evaluator<T1, T2, IsLessThanOrEqualTo> {
        method evaluate (line 1342) | static bool evaluate( T1 const& lhs, T2 const& rhs ) {
      function applyEvaluator (line 1348) | bool applyEvaluator( T1 const& lhs, T2 const& rhs ) {
      function compare (line 1357) | bool compare( T1 const& lhs, T2 const& rhs ) {
      function compare (line 1362) | bool compare( unsigned int lhs, int rhs ) {
      function compare (line 1365) | bool compare( unsigned long lhs, int rhs ) {
      function compare (line 1368) | bool compare( unsigned char lhs, int rhs ) {
      function compare (line 1373) | bool compare( unsigned int lhs, long rhs ) {
      function compare (line 1376) | bool compare( unsigned long lhs, long rhs ) {
      function compare (line 1379) | bool compare( unsigned char lhs, long rhs ) {
      function compare (line 1384) | bool compare( int lhs, unsigned int rhs ) {
      function compare (line 1387) | bool compare( int lhs, unsigned long rhs ) {
      function compare (line 1390) | bool compare( int lhs, unsigned char rhs ) {
      function compare (line 1395) | bool compare( long lhs, unsigned int rhs ) {
      function compare (line 1398) | bool compare( long lhs, unsigned long rhs ) {
      function compare (line 1401) | bool compare( long lhs, unsigned char rhs ) {
      function compare (line 1406) | bool compare( long lhs, T* rhs ) {
      function compare (line 1409) | bool compare( T* lhs, long rhs ) {
      function compare (line 1414) | bool compare( int lhs, T* rhs ) {
      function compare (line 1417) | bool compare( T* lhs, int rhs ) {
      function compare (line 1423) | bool compare( long long lhs, unsigned int rhs ) {
      function compare (line 1426) | bool compare( long long lhs, unsigned long rhs ) {
      function compare (line 1429) | bool compare( long long lhs, unsigned long long rhs ) {
      function compare (line 1432) | bool compare( long long lhs, unsigned char rhs ) {
      function compare (line 1437) | bool compare( unsigned long long lhs, int rhs ) {
      function compare (line 1440) | bool compare( unsigned long long lhs, long rhs ) {
      function compare (line 1443) | bool compare( unsigned long long lhs, long long rhs ) {
      function compare (line 1446) | bool compare( unsigned long long lhs, char rhs ) {
      function compare (line 1451) | bool compare( long long lhs, T* rhs ) {
      function compare (line 1454) | bool compare( T* lhs, long long rhs ) {
      function compare (line 1461) | bool compare( std::nullptr_t, T* rhs ) {
      function compare (line 1464) | bool compare( T* lhs, std::nullptr_t ) {
    type Detail (line 1578) | namespace Detail {
      type BorgType (line 1583) | struct BorgType {
      type TrueType (line 1587) | struct TrueType { char sizer[1]; }
      type FalseType (line 1588) | struct FalseType { char sizer[2]; }
      type IsStreamInsertable (line 1596) | struct IsStreamInsertable {
      class IsStreamInsertable (line 1603) | class IsStreamInsertable {
      type EnumStringMaker (line 1620) | struct EnumStringMaker
        method convert (line 1622) | static std::string convert( T const& ) { return unprintableString; }
      type EnumStringMaker<T,true> (line 1626) | struct EnumStringMaker<T,true>
        method convert (line 1628) | static std::string convert( T const& v )
      type StringMakerBase (line 1637) | struct StringMakerBase {
        method convert (line 1640) | static std::string convert( T const& v )
        method convert (line 1646) | static std::string convert( T const& ) { return unprintableString; }
      type StringMakerBase<true> (line 1651) | struct StringMakerBase<true> {
        method convert (line 1653) | static std::string convert( T const& _value ) {
      function rawMemoryToString (line 1663) | inline std::string rawMemoryToString( const T& object ) {
      function makeString (line 1755) | std::string makeString( T const& value ) {
      function rangeToString (line 1774) | std::string rangeToString( InputIterator first, InputIterator last ) {
      class Approx (line 2763) | class Approx {
        method Approx (line 2765) | explicit Approx ( double value )
        method Approx (line 2772) | Approx( Approx const& other )
        method Approx (line 2779) | static Approx custom() {
        method Approx (line 2786) | Approx operator()( T value ) {
        method Approx (line 2795) | explicit Approx( T value ): Approx(static_cast<double>(value))
        method Approx (line 2845) | Approx& epsilon( T newEpsilon ) {
        method Approx (line 2851) | Approx& margin( T newMargin ) {
        method Approx (line 2857) | Approx& scale( T newScale ) {
        method Approx (line 2864) | Approx operator()( double value ) {
        method Approx (line 2909) | Approx& epsilon( double newEpsilon ) {
        method Approx (line 2914) | Approx& margin( double newMargin ) {
        method Approx (line 2919) | Approx& scale( double newScale ) {
        method toString (line 2925) | std::string toString() const {
      type Endianness (line 8810) | struct Endianness {
        type Arch (line 8811) | enum Arch { Big, Little }
        method Arch (line 8813) | static Arch which() {
      function rawMemoryToString (line 8825) | std::string rawMemoryToString( const void *object, std::size_t size )
    type StringMaker (line 1670) | struct StringMaker :
    type StringMaker<T*> (line 1674) | struct StringMaker<T*> {
      method convert (line 1676) | static std::string convert( U* p ) {
    type StringMaker<R C::*> (line 1685) | struct StringMaker<R C::*> {
      method convert (line 1686) | static std::string convert( R C::* p ) {
    type Detail (line 1694) | namespace Detail {
      type BorgType (line 1583) | struct BorgType {
      type TrueType (line 1587) | struct TrueType { char sizer[1]; }
      type FalseType (line 1588) | struct FalseType { char sizer[2]; }
      type IsStreamInsertable (line 1596) | struct IsStreamInsertable {
      class IsStreamInsertable (line 1603) | class IsStreamInsertable {
      type EnumStringMaker (line 1620) | struct EnumStringMaker
        method convert (line 1622) | static std::string convert( T const& ) { return unprintableString; }
      type EnumStringMaker<T,true> (line 1626) | struct EnumStringMaker<T,true>
        method convert (line 1628) | static std::string convert( T const& v )
      type StringMakerBase (line 1637) | struct StringMakerBase {
        method convert (line 1640) | static std::string convert( T const& v )
        method convert (line 1646) | static std::string convert( T const& ) { return unprintableString; }
      type StringMakerBase<true> (line 1651) | struct StringMakerBase<true> {
        method convert (line 1653) | static std::string convert( T const& _value ) {
      function rawMemoryToString (line 1663) | inline std::string rawMemoryToString( const T& object ) {
      function makeString (line 1755) | std::string makeString( T const& value ) {
      function rangeToString (line 1774) | std::string rangeToString( InputIterator first, InputIterator last ) {
      class Approx (line 2763) | class Approx {
        method Approx (line 2765) | explicit Approx ( double value )
        method Approx (line 2772) | Approx( Approx const& other )
        method Approx (line 2779) | static Approx custom() {
        method Approx (line 2786) | Approx operator()( T value ) {
        method Approx (line 2795) | explicit Approx( T value ): Approx(static_cast<double>(value))
        method Approx (line 2845) | Approx& epsilon( T newEpsilon ) {
        method Approx (line 2851) | Approx& margin( T newMargin ) {
        method Approx (line 2857) | Approx& scale( T newScale ) {
        method Approx (line 2864) | Approx operator()( double value ) {
        method Approx (line 2909) | Approx& epsilon( double newEpsilon ) {
        method Approx (line 2914) | Approx& margin( double newMargin ) {
        method Approx (line 2919) | Approx& scale( double newScale ) {
        method toString (line 2925) | std::string toString() const {
      type Endianness (line 8810) | struct Endianness {
        type Arch (line 8811) | enum Arch { Big, Little }
        method Arch (line 8813) | static Arch which() {
      function rawMemoryToString (line 8825) | std::string rawMemoryToString( const void *object, std::size_t size )
    function toString (line 1707) | std::string toString( std::vector<T,Allocator> const& v ) {
    type TupleDetail (line 1714) | namespace TupleDetail {
      type ElementPrinter (line 1720) | struct ElementPrinter {
        method print (line 1721) | static void print( const Tuple& tuple, std::ostream& os )
      type ElementPrinter<Tuple,N,false> (line 1733) | struct ElementPrinter<Tuple,N,false> {
        method print (line 1734) | static void print( const Tuple&, std::ostream& ) {}
    type Detail (line 1753) | namespace Detail {
      type BorgType (line 1583) | struct BorgType {
      type TrueType (line 1587) | struct TrueType { char sizer[1]; }
      type FalseType (line 1588) | struct FalseType { char sizer[2]; }
      type IsStreamInsertable (line 1596) | struct IsStreamInsertable {
      class IsStreamInsertable (line 1603) | class IsStreamInsertable {
      type EnumStringMaker (line 1620) | struct EnumStringMaker
        method convert (line 1622) | static std::string convert( T const& ) { return unprintableString; }
      type EnumStringMaker<T,true> (line 1626) | struct EnumStringMaker<T,true>
        method convert (line 1628) | static std::string convert( T const& v )
      type StringMakerBase (line 1637) | struct StringMakerBase {
        method convert (line 1640) | static std::string convert( T const& v )
        method convert (line 1646) | static std::string convert( T const& ) { return unprintableString; }
      type StringMakerBase<true> (line 1651) | struct StringMakerBase<true> {
        method convert (line 1653) | static std::string convert( T const& _value ) {
      function rawMemoryToString (line 1663) | inline std::string rawMemoryToString( const T& object ) {
      function makeString (line 1755) | std::string makeString( T const& value ) {
      function rangeToString (line 1774) | std::string rangeToString( InputIterator first, InputIterator last ) {
      class Approx (line 2763) | class Approx {
        method Approx (line 2765) | explicit Approx ( double value )
        method Approx (line 2772) | Approx( Approx const& other )
        method Approx (line 2779) | static Approx custom() {
        method Approx (line 2786) | Approx operator()( T value ) {
        method Approx (line 2795) | explicit Approx( T value ): Approx(static_cast<double>(value))
        method Approx (line 2845) | Approx& epsilon( T newEpsilon ) {
        method Approx (line 2851) | Approx& margin( T newMargin ) {
        method Approx (line 2857) | Approx& scale( T newScale ) {
        method Approx (line 2864) | Approx operator()( double value ) {
        method Approx (line 2909) | Approx& epsilon( double newEpsilon ) {
        method Approx (line 2914) | Approx& margin( double newMargin ) {
        method Approx (line 2919) | Approx& scale( double newScale ) {
        method toString (line 2925) | std::string toString() const {
      type Endianness (line 8810) | struct Endianness {
        type Arch (line 8811) | enum Arch { Big, Little }
        method Arch (line 8813) | static Arch which() {
      function rawMemoryToString (line 8825) | std::string rawMemoryToString( const void *object, std::size_t size )
    function toString (line 1768) | std::string toString( T const& value ) {
    type Detail (line 1772) | namespace Detail {
      type BorgType (line 1583) | struct BorgType {
      type TrueType (line 1587) | struct TrueType { char sizer[1]; }
      type FalseType (line 1588) | struct FalseType { char sizer[2]; }
      type IsStreamInsertable (line 1596) | struct IsStreamInsertable {
      class IsStreamInsertable (line 1603) | class IsStreamInsertable {
      type EnumStringMaker (line 1620) | struct EnumStringMaker
        method convert (line 1622) | static std::string convert( T const& ) { return unprintableString; }
      type EnumStringMaker<T,true> (line 1626) | struct EnumStringMaker<T,true>
        method convert (line 1628) | static std::string convert( T const& v )
      type StringMakerBase (line 1637) | struct StringMakerBase {
        method convert (line 1640) | static std::string convert( T const& v )
        method convert (line 1646) | static std::string convert( T const& ) { return unprintableString; }
      type StringMakerBase<true> (line 1651) | struct StringMakerBase<true> {
        method convert (line 1653) | static std::string convert( T const& _value ) {
      function rawMemoryToString (line 1663) | inline std::string rawMemoryToString( const T& object ) {
      function makeString (line 1755) | std::string makeString( T const& value ) {
      function rangeToString (line 1774) | std::string rangeToString( InputIterator first, InputIterator last ) {
      class Approx (line 2763) | class Approx {
        method Approx (line 2765) | explicit Approx ( double value )
        method Approx (line 2772) | Approx( Approx const& other )
        method Approx (line 2779) | static Approx custom() {
        method Approx (line 2786) | Approx operator()( T value ) {
        method Approx (line 2795) | explicit Approx( T value ): Approx(static_cast<double>(value))
        method Approx (line 2845) | Approx& epsilon( T newEpsilon ) {
        method Approx (line 2851) | Approx& margin( T newMargin ) {
        method Approx (line 2857) | Approx& scale( T newScale ) {
        method Approx (line 2864) | Approx operator()( double value ) {
        method Approx (line 2909) | Approx& epsilon( double newEpsilon ) {
        method Approx (line 2914) | Approx& margin( double newMargin ) {
        method Approx (line 2919) | Approx& scale( double newScale ) {
        method toString (line 2925) | std::string toString() const {
      type Endianness (line 8810) | struct Endianness {
        type Arch (line 8811) | enum Arch { Big, Little }
        method Arch (line 8813) | static Arch which() {
      function rawMemoryToString (line 8825) | std::string rawMemoryToString( const void *object, std::size_t size )
    class BinaryExpression (line 1792) | class BinaryExpression
      method BinaryExpression (line 1881) | BinaryExpression( ResultBuilder& rb, LhsT lhs, RhsT rhs )
      method endExpression (line 1886) | void endExpression() const {
      method isBinaryExpression (line 1892) | virtual bool isBinaryExpression() const CATCH_OVERRIDE {
      method reconstructExpression (line 1896) | virtual void reconstructExpression( std::string& dest ) const CATCH_...
    class MatchExpression (line 1795) | class MatchExpression
      method MatchExpression (line 1923) | MatchExpression( ArgT arg, MatcherT matcher, char const* matcherStri...
      method isBinaryExpression (line 1926) | virtual bool isBinaryExpression() const CATCH_OVERRIDE {
      method reconstructExpression (line 1930) | virtual void reconstructExpression( std::string& dest ) const CATCH_...
    class ExpressionLhs (line 1800) | class ExpressionLhs : public DecomposedExpression {
      method ExpressionLhs (line 1802) | ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs )...
      method endExpression (line 1850) | void endExpression() {
      method reconstructExpression (line 1857) | virtual void reconstructExpression( std::string& dest ) const CATCH_...
      method captureExpression (line 1863) | BinaryExpression<T, Op, RhsT&> captureExpression( RhsT& rhs ) const {
      method captureExpression (line 1868) | BinaryExpression<T, Op, bool> captureExpression( bool rhs ) const {
    class BinaryExpression (line 1879) | class BinaryExpression : public DecomposedExpression {
      method BinaryExpression (line 1881) | BinaryExpression( ResultBuilder& rb, LhsT lhs, RhsT rhs )
      method endExpression (line 1886) | void endExpression() const {
      method isBinaryExpression (line 1892) | virtual bool isBinaryExpression() const CATCH_OVERRIDE {
      method reconstructExpression (line 1896) | virtual void reconstructExpression( std::string& dest ) const CATCH_...
    class MatchExpression (line 1921) | class MatchExpression : public DecomposedExpression {
      method MatchExpression (line 1923) | MatchExpression( ArgT arg, MatcherT matcher, char const* matcherStri...
      method isBinaryExpression (line 1926) | virtual bool isBinaryExpression() const CATCH_OVERRIDE {
      method reconstructExpression (line 1930) | virtual void reconstructExpression( std::string& dest ) const CATCH_...
    type MessageInfo (line 1977) | struct MessageInfo {
    type MessageBuilder (line 1998) | struct MessageBuilder {
      method MessageBuilder (line 1999) | MessageBuilder( std::string const& macroName,
      method MessageBuilder (line 2006) | MessageBuilder& operator << ( T const& value ) {
    class ScopedMessage (line 2015) | class ScopedMessage {
    class TestCase (line 2033) | class TestCase
    class AssertionResult (line 2034) | class AssertionResult
      method AssertionResult (line 993) | AssertionResult( AssertionResult const& )              = default;
      method AssertionResult (line 994) | AssertionResult( AssertionResult && )                  = default;
      method AssertionResult (line 995) | AssertionResult& operator = ( AssertionResult const& ) = default;
      method AssertionResult (line 996) | AssertionResult& operator = ( AssertionResult && )     = default;
    type AssertionInfo (line 2035) | struct AssertionInfo
      method AssertionInfo (line 936) | AssertionInfo() {}
    type SectionInfo (line 2036) | struct SectionInfo
    type SectionEndInfo (line 2037) | struct SectionEndInfo
      method SectionEndInfo (line 2392) | SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prev...
    type MessageInfo (line 2038) | struct MessageInfo
    class ScopedMessageBuilder (line 2039) | class ScopedMessageBuilder
    type Counts (line 2040) | struct Counts
      method Counts (line 2314) | Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {}
      method Counts (line 2316) | Counts operator - ( Counts const& other ) const {
      method Counts (line 2323) | Counts& operator += ( Counts const& other ) {
      method total (line 2330) | std::size_t total() const {
      method allPassed (line 2333) | bool allPassed() const {
      method allOk (line 2336) | bool allOk() const {
    type IResultCapture (line 2042) | struct IResultCapture {
    class TestCase (line 2135) | class TestCase
    type IRunner (line 2137) | struct IRunner {
    type Counts (line 2313) | struct Counts {
      method Counts (line 2314) | Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {}
      method Counts (line 2316) | Counts operator - ( Counts const& other ) const {
      method Counts (line 2323) | Counts& operator += ( Counts const& other ) {
      method total (line 2330) | std::size_t total() const {
      method allPassed (line 2333) | bool allPassed() const {
      method allOk (line 2336) | bool allOk() const {
    type Totals (line 2345) | struct Totals {
      method Totals (line 2347) | Totals operator - ( Totals const& other ) const {
      method Totals (line 2354) | Totals delta( Totals const& prevTotals ) const {
      method Totals (line 2365) | Totals& operator += ( Totals const& other ) {
    type SectionInfo (line 2380) | struct SectionInfo {
    type SectionEndInfo (line 2391) | struct SectionEndInfo {
      method SectionEndInfo (line 2392) | SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prev...
    class Timer (line 2419) | class Timer {
      method Timer (line 2421) | Timer() : m_ticks( 0 ) {}
    class Section (line 2437) | class Section : NonCopyable {
    type IGenerator (line 2474) | struct IGenerator {
    class BetweenGenerator (line 2481) | class BetweenGenerator : public IGenerator<T> {
      method BetweenGenerator (line 2483) | BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){}
      method T (line 2485) | virtual T getValue( std::size_t index ) const {
      method size (line 2489) | virtual std::size_t size() const {
    class ValuesGenerator (line 2500) | class ValuesGenerator : public IGenerator<T> {
      method ValuesGenerator (line 2502) | ValuesGenerator(){}
      method add (line 2504) | void add( T value ) {
      method T (line 2508) | virtual T getValue( std::size_t index ) const {
      method size (line 2512) | virtual std::size_t size() const {
    class CompositeGenerator (line 2521) | class CompositeGenerator {
      method CompositeGenerator (line 2523) | CompositeGenerator() : m_totalSize( 0 ) {}
      method CompositeGenerator (line 2526) | CompositeGenerator( CompositeGenerator& other )
      method CompositeGenerator (line 2533) | CompositeGenerator& setFileInfo( const char* fileInfo ) {
      method add (line 2560) | void add( const IGenerator<T>* generator ) {
      method CompositeGenerator (line 2565) | CompositeGenerator& then( CompositeGenerator& other ) {
      method CompositeGenerator (line 2570) | CompositeGenerator& then( T value ) {
      method move (line 2579) | void move( CompositeGenerator& other ) {
    type Generators (line 2590) | namespace Generators
      function between (line 2593) | CompositeGenerator<T> between( T from, T to ) {
      function values (line 2600) | CompositeGenerator<T> values( T val1, T val2 ) {
      function values (line 2610) | CompositeGenerator<T> values( T val1, T val2, T val3 ){
      function values (line 2621) | CompositeGenerator<T> values( T val1, T val2, T val3, T val4 ) {
    class TestCase (line 2656) | class TestCase
    type ITestCaseRegistry (line 2657) | struct ITestCaseRegistry
    type IExceptionTranslatorRegistry (line 2658) | struct IExceptionTranslatorRegistry
    type IExceptionTranslator (line 2659) | struct IExceptionTranslator
    type IReporterRegistry (line 2660) | struct IReporterRegistry
    type IReporterFactory (line 2661) | struct IReporterFactory
    type ITagAliasRegistry (line 2662) | struct ITagAliasRegistry
    type IRegistryHub (line 2664) | struct IRegistryHub {
    type IMutableRegistryHub (line 2674) | struct IMutableRegistryHub {
    type IExceptionTranslator (line 2694) | struct IExceptionTranslator
    type IExceptionTranslator (line 2697) | struct IExceptionTranslator {
    type IExceptionTranslatorRegistry (line 2702) | struct IExceptionTranslatorRegistry {
    class ExceptionTranslatorRegistrar (line 2708) | class ExceptionTranslatorRegistrar {
      class ExceptionTranslator (line 2710) | class ExceptionTranslator : public IExceptionTranslator {
        method ExceptionTranslator (line 2713) | ExceptionTranslator( std::string(*translateFunction)( T& ) )
        method translate (line 2717) | virtual std::string translate( ExceptionTranslators::const_iterato...
      method ExceptionTranslatorRegistrar (line 2735) | ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
    type Detail (line 2761) | namespace Detail {
      type BorgType (line 1583) | struct BorgType {
      type TrueType (line 1587) | struct TrueType { char sizer[1]; }
      type FalseType (line 1588) | struct FalseType { char sizer[2]; }
      type IsStreamInsertable (line 1596) | struct IsStreamInsertable {
      class IsStreamInsertable (line 1603) | class IsStreamInsertable {
      type EnumStringMaker (line 1620) | struct EnumStringMaker
        method convert (line 1622) | static std::string convert( T const& ) { return unprintableString; }
      type EnumStringMaker<T,true> (line 1626) | struct EnumStringMaker<T,true>
        method convert (line 1628) | static std::string convert( T const& v )
      type StringMakerBase (line 1637) | struct StringMakerBase {
        method convert (line 1640) | static std::string convert( T const& v )
        method convert (line 1646) | static std::string convert( T const& ) { return unprintableString; }
      type StringMakerBase<true> (line 1651) | struct StringMakerBase<true> {
        method convert (line 1653) | static std::string convert( T const& _value ) {
      function rawMemoryToString (line 1663) | inline std::string rawMemoryToString( const T& object ) {
      function makeString (line 1755) | std::string makeString( T const& value ) {
      function rangeToString (line 1774) | std::string rangeToString( InputIterator first, InputIterator last ) {
      class Approx (line 2763) | class Approx {
        method Approx (line 2765) | explicit Approx ( double value )
        method Approx (line 2772) | Approx( Approx const& other )
        method Approx (line 2779) | static Approx custom() {
        method Approx (line 2786) | Approx operator()( T value ) {
        method Approx (line 2795) | explicit Approx( T value ): Approx(static_cast<double>(value))
        method Approx (line 2845) | Approx& epsilon( T newEpsilon ) {
        method Approx (line 2851) | Approx& margin( T newMargin ) {
        method Approx (line 2857) | Approx& scale( T newScale ) {
        method Approx (line 2864) | Approx operator()( double value ) {
        method Approx (line 2909) | Approx& epsilon( double newEpsilon ) {
        method Approx (line 2914) | Approx& margin( double newMargin ) {
        method Approx (line 2919) | Approx& scale( double newScale ) {
        method toString (line 2925) | std::string toString() const {
      type Endianness (line 8810) | struct Endianness {
        type Arch (line 8811) | enum Arch { Big, Little }
        method Arch (line 8813) | static Arch which() {
      function rawMemoryToString (line 8825) | std::string rawMemoryToString( const void *object, std::size_t size )
    type Matchers (line 2950) | namespace Matchers {
      type Impl (line 1026) | namespace Impl {
        type MatchAllOf (line 1028) | struct MatchAllOf
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1029) | struct MatchAnyOf
          method match (line 1097) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1104) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchNotOf (line 1030) | struct MatchNotOf
          method MatchNotOf (line 1128) | MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_und...
          method match (line 1130) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1134) | virtual std::string describe() const CATCH_OVERRIDE {
        class MatcherUntypedBase (line 1032) | class MatcherUntypedBase {
          method toString (line 1034) | std::string toString() const {
        type MatcherMethod (line 1049) | struct MatcherMethod {
        type MatcherMethod<PtrT*> (line 1053) | struct MatcherMethod<PtrT*> {
        type MatcherBase (line 1058) | struct MatcherBase : MatcherUntypedBase, MatcherMethod<ObjectT> {
        type MatchAllOf (line 1066) | struct MatchAllOf : MatcherBase<ArgT> {
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1095) | struct MatchAnyOf : MatcherBase<ArgT> {
          method match (line 1097) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1104) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchNotOf (line 1126) | struct MatchNotOf : MatcherBase<ArgT> {
          method MatchNotOf (line 1128) | MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_und...
          method match (line 1130) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1134) | virtual std::string describe() const CATCH_OVERRIDE {
      function Not (line 1159) | inline Impl::MatchNotOf<T> Not( Impl::MatcherBase<T> const& underlyi...
      function AllOf (line 1163) | inline Impl::MatchAllOf<T> AllOf( Impl::MatcherBase<T> const& m1, Im...
      function AllOf (line 1167) | inline Impl::MatchAllOf<T> AllOf( Impl::MatcherBase<T> const& m1, Im...
      function AnyOf (line 1171) | inline Impl::MatchAnyOf<T> AnyOf( Impl::MatcherBase<T> const& m1, Im...
      function AnyOf (line 1175) | inline Impl::MatchAnyOf<T> AnyOf( Impl::MatcherBase<T> const& m1, Im...
      type StdString (line 2952) | namespace StdString {
        type CasedString (line 2954) | struct CasedString
        type StringMatcherBase (line 2964) | struct StringMatcherBase : MatcherBase<std::string> {
        type EqualsMatcher (line 2972) | struct EqualsMatcher : StringMatcherBase {
        type ContainsMatcher (line 2976) | struct ContainsMatcher : StringMatcherBase {
        type StartsWithMatcher (line 2980) | struct StartsWithMatcher : StringMatcherBase {
        type EndsWithMatcher (line 2984) | struct EndsWithMatcher : StringMatcherBase {
      type Vector (line 3008) | namespace Vector {
        type ContainsElementMatcher (line 3011) | struct ContainsElementMatcher : MatcherBase<std::vector<T>, T> {
          method ContainsElementMatcher (line 3013) | ContainsElementMatcher(T const &comparator) : m_comparator( comp...
          method match (line 3015) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3019) | virtual std::string describe() const CATCH_OVERRIDE {
        type ContainsMatcher (line 3027) | struct ContainsMatcher : MatcherBase<std::vector<T>, std::vector<T...
          method ContainsMatcher (line 3029) | ContainsMatcher(std::vector<T> const &comparator) : m_comparator...
          method match (line 3031) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3040) | virtual std::string describe() const CATCH_OVERRIDE {
        type EqualsMatcher (line 3048) | struct EqualsMatcher : MatcherBase<std::vector<T>, std::vector<T> > {
          method EqualsMatcher (line 3050) | EqualsMatcher(std::vector<T> const &comparator) : m_comparator( ...
          method match (line 3052) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3064) | virtual std::string describe() const CATCH_OVERRIDE {
      function Contains (line 3076) | Vector::ContainsMatcher<T> Contains( std::vector<T> const& comparato...
      function VectorContains (line 3081) | Vector::ContainsElementMatcher<T> VectorContains( T const& comparato...
      function Equals (line 3086) | Vector::EqualsMatcher<T> Equals( std::vector<T> const& comparator ) {
      type StdString (line 9221) | namespace StdString {
        type CasedString (line 2954) | struct CasedString
        type StringMatcherBase (line 2964) | struct StringMatcherBase : MatcherBase<std::string> {
        type EqualsMatcher (line 2972) | struct EqualsMatcher : StringMatcherBase {
        type ContainsMatcher (line 2976) | struct ContainsMatcher : StringMatcherBase {
        type StartsWithMatcher (line 2980) | struct StartsWithMatcher : StringMatcherBase {
        type EndsWithMatcher (line 2984) | struct EndsWithMatcher : StringMatcherBase {
      function Equals (line 9281) | StdString::EqualsMatcher Equals( std::string const& str, CaseSensiti...
      function Contains (line 9284) | StdString::ContainsMatcher Contains( std::string const& str, CaseSen...
      function EndsWith (line 9287) | StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSen...
      function StartsWith (line 9290) | StdString::StartsWithMatcher StartsWith( std::string const& str, Cas...
    type Matchers (line 3006) | namespace Matchers {
      type Impl (line 1026) | namespace Impl {
        type MatchAllOf (line 1028) | struct MatchAllOf
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1029) | struct MatchAnyOf
          method match (line 1097) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1104) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchNotOf (line 1030) | struct MatchNotOf
          method MatchNotOf (line 1128) | MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_und...
          method match (line 1130) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1134) | virtual std::string describe() const CATCH_OVERRIDE {
        class MatcherUntypedBase (line 1032) | class MatcherUntypedBase {
          method toString (line 1034) | std::string toString() const {
        type MatcherMethod (line 1049) | struct MatcherMethod {
        type MatcherMethod<PtrT*> (line 1053) | struct MatcherMethod<PtrT*> {
        type MatcherBase (line 1058) | struct MatcherBase : MatcherUntypedBase, MatcherMethod<ObjectT> {
        type MatchAllOf (line 1066) | struct MatchAllOf : MatcherBase<ArgT> {
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1095) | struct MatchAnyOf : MatcherBase<ArgT> {
          method match (line 1097) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1104) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchNotOf (line 1126) | struct MatchNotOf : MatcherBase<ArgT> {
          method MatchNotOf (line 1128) | MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_und...
          method match (line 1130) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1134) | virtual std::string describe() const CATCH_OVERRIDE {
      function Not (line 1159) | inline Impl::MatchNotOf<T> Not( Impl::MatcherBase<T> const& underlyi...
      function AllOf (line 1163) | inline Impl::MatchAllOf<T> AllOf( Impl::MatcherBase<T> const& m1, Im...
      function AllOf (line 1167) | inline Impl::MatchAllOf<T> AllOf( Impl::MatcherBase<T> const& m1, Im...
      function AnyOf (line 1171) | inline Impl::MatchAnyOf<T> AnyOf( Impl::MatcherBase<T> const& m1, Im...
      function AnyOf (line 1175) | inline Impl::MatchAnyOf<T> AnyOf( Impl::MatcherBase<T> const& m1, Im...
      type StdString (line 2952) | namespace StdString {
        type CasedString (line 2954) | struct CasedString
        type StringMatcherBase (line 2964) | struct StringMatcherBase : MatcherBase<std::string> {
        type EqualsMatcher (line 2972) | struct EqualsMatcher : StringMatcherBase {
        type ContainsMatcher (line 2976) | struct ContainsMatcher : StringMatcherBase {
        type StartsWithMatcher (line 2980) | struct StartsWithMatcher : StringMatcherBase {
        type EndsWithMatcher (line 2984) | struct EndsWithMatcher : StringMatcherBase {
      type Vector (line 3008) | namespace Vector {
        type ContainsElementMatcher (line 3011) | struct ContainsElementMatcher : MatcherBase<std::vector<T>, T> {
          method ContainsElementMatcher (line 3013) | ContainsElementMatcher(T const &comparator) : m_comparator( comp...
          method match (line 3015) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3019) | virtual std::string describe() const CATCH_OVERRIDE {
        type ContainsMatcher (line 3027) | struct ContainsMatcher : MatcherBase<std::vector<T>, std::vector<T...
          method ContainsMatcher (line 3029) | ContainsMatcher(std::vector<T> const &comparator) : m_comparator...
          method match (line 3031) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3040) | virtual std::string describe() const CATCH_OVERRIDE {
        type EqualsMatcher (line 3048) | struct EqualsMatcher : MatcherBase<std::vector<T>, std::vector<T> > {
          method EqualsMatcher (line 3050) | EqualsMatcher(std::vector<T> const &comparator) : m_comparator( ...
          method match (line 3052) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3064) | virtual std::string describe() const CATCH_OVERRIDE {
      function Contains (line 3076) | Vector::ContainsMatcher<T> Contains( std::vector<T> const& comparato...
      function VectorContains (line 3081) | Vector::ContainsElementMatcher<T> VectorContains( T const& comparato...
      function Equals (line 3086) | Vector::EqualsMatcher<T> Equals( std::vector<T> const& comparator ) {
      type StdString (line 9221) | namespace StdString {
        type CasedString (line 2954) | struct CasedString
        type StringMatcherBase (line 2964) | struct StringMatcherBase : MatcherBase<std::string> {
        type EqualsMatcher (line 2972) | struct EqualsMatcher : StringMatcherBase {
        type ContainsMatcher (line 2976) | struct ContainsMatcher : StringMatcherBase {
        type StartsWithMatcher (line 2980) | struct StartsWithMatcher : StringMatcherBase {
        type EndsWithMatcher (line 2984) | struct EndsWithMatcher : StringMatcherBase {
      function Equals (line 9281) | StdString::EqualsMatcher Equals( std::string const& str, CaseSensiti...
      function Contains (line 9284) | StdString::ContainsMatcher Contains( std::string const& str, CaseSen...
      function EndsWith (line 9287) | StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSen...
      function StartsWith (line 9290) | StdString::StartsWithMatcher StartsWith( std::string const& str, Cas...
    type TagAlias (line 3103) | struct TagAlias {
      method TagAlias (line 3104) | TagAlias( std::string const& _tag, SourceLineInfo _lineInfo ) : tag(...
    type RegistrarForTagAliases (line 3110) | struct RegistrarForTagAliases {
    class Option (line 3124) | class Option {
      method Option (line 3126) | Option() : nullableValue( CATCH_NULL ) {}
      method Option (line 3127) | Option( T const& _value )
      method Option (line 3130) | Option( Option const& _other )
      method Option (line 3138) | Option& operator= ( Option const& _other ) {
      method Option (line 3146) | Option& operator = ( T const& _value ) {
      method reset (line 3152) | void reset() {
      method T (line 3158) | T& operator*() { return *nullableValue; }
      method T (line 3159) | T const& operator*() const { return *nullableValue; }
      method T (line 3160) | T* operator->() { return nullableValue; }
      method T (line 3161) | const T* operator->() const { return nullableValue; }
      method T (line 3163) | T valueOr( T const& defaultValue ) const {
      method some (line 3167) | bool some() const { return nullableValue != CATCH_NULL; }
      method none (line 3168) | bool none() const { return nullableValue == CATCH_NULL; }
    type ITagAliasRegistry (line 3194) | struct ITagAliasRegistry {
    type ITestCase (line 3219) | struct ITestCase
    type TestCaseInfo (line 3221) | struct TestCaseInfo {
      type SpecialProperties (line 3222) | enum SpecialProperties{
    class TestCase (line 3256) | class TestCase : public TestCaseInfo {
    class WildcardPattern (line 3553) | class WildcardPattern {
      type WildcardPosition (line 3554) | enum WildcardPosition {
      method WildcardPattern (line 3563) | WildcardPattern( std::string const& pattern, CaseSensitive::Choice c...
      method matches (line 3578) | virtual bool matches( std::string const& str ) const {
      method adjustCase (line 3600) | std::string adjustCase( std::string const& str ) const {
    class TestSpec (line 3614) | class TestSpec {
      type Pattern (line 3615) | struct Pattern : SharedImpl<> {
      class NamePattern (line 3619) | class NamePattern : public Pattern {
        method NamePattern (line 3621) | NamePattern( std::string const& name )
        method matches (line 3625) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class TagPattern (line 3632) | class TagPattern : public Pattern {
        method TagPattern (line 3634) | TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
        method matches (line 3636) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class ExcludedPattern (line 3643) | class ExcludedPattern : public Pattern {
        method ExcludedPattern (line 3645) | ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_under...
        method matches (line 3647) | virtual bool matches( TestCaseInfo const& testCase ) const { retur...
      type Filter (line 3652) | struct Filter {
        method matches (line 3655) | bool matches( TestCaseInfo const& testCase ) const {
      method hasFilters (line 3666) | bool hasFilters() const {
      method matches (line 3669) | bool matches( TestCaseInfo const& testCase ) const {
    class TestSpecParser (line 3690) | class TestSpecParser {
      type Mode (line 3691) | enum Mode{ None, Name, QuotedName, Tag, EscapedName }
      method TestSpecParser (line 3702) | TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases...
      method TestSpecParser (line 3704) | TestSpecParser& parse( std::string const& arg ) {
      method TestSpec (line 3716) | TestSpec testSpec() {
      method visitChar (line 3721) | void visitChar( char c ) {
      method startNewMode (line 3754) | void startNewMode( Mode mode, std::size_t start ) {
      method escape (line 3758) | void escape() {
      method subString (line 3764) | std::string subString() const { return m_arg.substr( m_start, m_pos ...
      method addPattern (line 3766) | void addPattern() {
      method addFilter (line 3784) | void addFilter() {
    function TestSpec (line 3791) | inline TestSpec parseTestSpec( std::string const& arg ) {
      type Pattern (line 3615) | struct Pattern : SharedImpl<> {
      class NamePattern (line 3619) | class NamePattern : public Pattern {
        method NamePattern (line 3621) | NamePattern( std::string const& name )
        method matches (line 3625) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class TagPattern (line 3632) | class TagPattern : public Pattern {
        method TagPattern (line 3634) | TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
        method matches (line 3636) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class ExcludedPattern (line 3643) | class ExcludedPattern : public Pattern {
        method ExcludedPattern (line 3645) | ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_under...
        method matches (line 3647) | virtual bool matches( TestCaseInfo const& testCase ) const { retur...
      type Filter (line 3652) | struct Filter {
        method matches (line 3655) | bool matches( TestCaseInfo const& testCase ) const {
      method hasFilters (line 3666) | bool hasFilters() const {
      method matches (line 3669) | bool matches( TestCaseInfo const& testCase ) const {
    type Verbosity (line 3810) | struct Verbosity { enum Level {
      type Level (line 3810) | enum Level {
    type WarnAbout (line 3816) | struct WarnAbout { enum What {
      type What (line 3816) | enum What {
    type ShowDurations (line 3821) | struct ShowDurations { enum OrNot {
      type OrNot (line 3821) | enum OrNot {
    type RunTests (line 3826) | struct RunTests { enum InWhatOrder {
      type InWhatOrder (line 3826) | enum InWhatOrder {
    type UseColour (line 3831) | struct UseColour { enum YesOrNo {
      type YesOrNo (line 3831) | enum YesOrNo {
    class TestSpec (line 3837) | class TestSpec
      type Pattern (line 3615) | struct Pattern : SharedImpl<> {
      class NamePattern (line 3619) | class NamePattern : public Pattern {
        method NamePattern (line 3621) | NamePattern( std::string const& name )
        method matches (line 3625) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class TagPattern (line 3632) | class TagPattern : public Pattern {
        method TagPattern (line 3634) | TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
        method matches (line 3636) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class ExcludedPattern (line 3643) | class ExcludedPattern : public Pattern {
        method ExcludedPattern (line 3645) | ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_under...
        method matches (line 3647) | virtual bool matches( TestCaseInfo const& testCase ) const { retur...
      type Filter (line 3652) | struct Filter {
        method matches (line 3655) | bool matches( TestCaseInfo const& testCase ) const {
      method hasFilters (line 3666) | bool hasFilters() const {
      method matches (line 3669) | bool matches( TestCaseInfo const& testCase ) const {
    type IConfig (line 3839) | struct IConfig : IShared {
    class StreamBufBase (line 3871) | class StreamBufBase : public std::streambuf {
    type IStream (line 3887) | struct IStream {
    class FileStream (line 3892) | class FileStream : public IStream {
    class CoutStream (line 3901) | class CoutStream : public IStream {
    class DebugOutStream (line 3911) | class DebugOutStream : public IStream {
    type ConfigData (line 3934) | struct ConfigData {
      method ConfigData (line 3936) | ConfigData()
    class Config (line 3986) | class Config : public SharedImpl<IConfig> {
      method Config (line 3993) | Config()
      method Config (line 3996) | Config( ConfigData const& data )
      method listTests (line 4014) | bool listTests() const { return m_data.listTests; }
      method listTestNamesOnly (line 4015) | bool listTestNamesOnly() const { return m_data.listTestNamesOnly; }
      method listTags (line 4016) | bool listTags() const { return m_data.listTags; }
      method listReporters (line 4017) | bool listReporters() const { return m_data.listReporters; }
      method getProcessName (line 4019) | std::string getProcessName() const { return m_data.processName; }
      method TestSpec (line 4024) | virtual TestSpec const& testSpec() const CATCH_OVERRIDE { return m_t...
      method showHelp (line 4026) | bool showHelp() const { return m_data.showHelp; }
      method allowThrows (line 4029) | virtual bool allowThrows() const CATCH_OVERRIDE                 { re...
      method includeSuccessfulResults (line 4032) | virtual bool includeSuccessfulResults() const CATCH_OVERRIDE    { re...
      method warnAboutMissingAssertions (line 4033) | virtual bool warnAboutMissingAssertions() const CATCH_OVERRIDE  { re...
      method showDurations (line 4034) | virtual ShowDurations::OrNot showDurations() const CATCH_OVERRIDE { ...
      method runOrder (line 4035) | virtual RunTests::InWhatOrder runOrder() const CATCH_OVERRIDE   { re...
      method rngSeed (line 4036) | virtual unsigned int rngSeed() const CATCH_OVERRIDE             { re...
      method useColour (line 4037) | virtual UseColour::YesOrNo useColour() const CATCH_OVERRIDE     { re...
      method shouldDebugBreak (line 4038) | virtual bool shouldDebugBreak() const CATCH_OVERRIDE { return m_data...
      method abortAfter (line 4039) | virtual int abortAfter() const CATCH_OVERRIDE { return m_data.abortA...
      method showInvisibles (line 4040) | virtual bool showInvisibles() const CATCH_OVERRIDE { return m_data.s...
      method IStream (line 4044) | IStream const* openStream() {
    function abortAfterFirst (line 5109) | inline void abortAfterFirst( ConfigData& config ) { config.abortAfter ...
    function abortAfterX (line 5110) | inline void abortAfterX( ConfigData& config, int x ) {
    function addTestOrTags (line 5115) | inline void addTestOrTags( ConfigData& config, std::string const& _tes...
    function addSectionToRun (line 5116) | inline void addSectionToRun( ConfigData& config, std::string const& se...
    function addReporterName (line 5117) | inline void addReporterName( ConfigData& config, std::string const& _r...
    function addWarning (line 5119) | inline void addWarning( ConfigData& config, std::string const& _warnin...
    function setOrder (line 5125) | inline void setOrder( ConfigData& config, std::string const& order ) {
    function setRngSeed (line 5135) | inline void setRngSeed( ConfigData& config, std::string const& seed ) {
    function setVerbosity (line 5147) | inline void setVerbosity( ConfigData& config, int level ) {
    function setShowDurations (line 5151) | inline void setShowDurations( ConfigData& config, bool _showDurations ) {
    function setUseColour (line 5156) | inline void setUseColour( ConfigData& config, std::string const& value...
    function forceColour (line 5168) | inline void forceColour( ConfigData& config ) {
    function loadTestNamesFromFile (line 5171) | inline void loadTestNamesFromFile( ConfigData& config, std::string con...
    function makeCommandLineParser (line 5187) | inline Clara::CommandLine<ConfigData> makeCommandLineParser() {
    type Colour (line 5483) | struct Colour {
      type Code (line 5484) | enum Code {
    type ReporterConfig (line 5544) | struct ReporterConfig {
      method ReporterConfig (line 5545) | explicit ReporterConfig( Ptr<IConfig const> const& _fullConfig )
      method ReporterConfig (line 5548) | ReporterConfig( Ptr<IConfig const> const& _fullConfig, std::ostream&...
      method fullConfig (line 5552) | Ptr<IConfig const> fullConfig() const { return m_fullConfig; }
    type ReporterPreferences (line 5559) | struct ReporterPreferences {
      method ReporterPreferences (line 5560) | ReporterPreferences()
    type LazyStat (line 5568) | struct LazyStat : Option<T> {
      method LazyStat (line 5569) | LazyStat() : used( false ) {}
      method LazyStat (line 5570) | LazyStat& operator=( T const& _value ) {
      method reset (line 5575) | void reset() {
    type TestRunInfo (line 5582) | struct TestRunInfo {
      method TestRunInfo (line 5583) | TestRunInfo( std::string const& _name ) : name( _name ) {}
    type GroupInfo (line 5586) | struct GroupInfo {
      method GroupInfo (line 5587) | GroupInfo(  std::string const& _name,
    type AssertionStats (line 5600) | struct AssertionStats {
      method AssertionStats (line 5601) | AssertionStats( AssertionResult const& _assertionResult,
      method AssertionStats (line 5621) | AssertionStats( AssertionStats const& )              = default;
      method AssertionStats (line 5622) | AssertionStats( AssertionStats && )                  = default;
      method AssertionStats (line 5623) | AssertionStats& operator = ( AssertionStats const& ) = default;
      method AssertionStats (line 5624) | AssertionStats& operator = ( AssertionStats && )     = default;
    type SectionStats (line 5632) | struct SectionStats {
      method SectionStats (line 5633) | SectionStats(   SectionInfo const& _sectionInfo,
      method SectionStats (line 5644) | SectionStats( SectionStats const& )              = default;
      method SectionStats (line 5645) | SectionStats( SectionStats && )                  = default;
      method SectionStats (line 5646) | SectionStats& operator = ( SectionStats const& ) = default;
      method SectionStats (line 5647) | SectionStats& operator = ( SectionStats && )     = default;
    type TestCaseStats (line 5656) | struct TestCaseStats {
      method TestCaseStats (line 5657) | TestCaseStats(  TestCaseInfo const& _testInfo,
      method TestCaseStats (line 5671) | TestCaseStats( TestCaseStats const& )              = default;
      method TestCaseStats (line 5672) | TestCaseStats( TestCaseStats && )                  = default;
      method TestCaseStats (line 5673) | TestCaseStats& operator = ( TestCaseStats const& ) = default;
      method TestCaseStats (line 5674) | TestCaseStats& operator = ( TestCaseStats && )     = default;
    type TestGroupStats (line 5684) | struct TestGroupStats {
      method TestGroupStats (line 5685) | TestGroupStats( GroupInfo const& _groupInfo,
      method TestGroupStats (line 5692) | TestGroupStats( GroupInfo const& _groupInfo )
      method TestGroupStats (line 5699) | TestGroupStats( TestGroupStats const& )              = default;
      method TestGroupStats (line 5700) | TestGroupStats( TestGroupStats && )                  = default;
      method TestGroupStats (line 5701) | TestGroupStats& operator = ( TestGroupStats const& ) = default;
      method TestGroupStats (line 5702) | TestGroupStats& operator = ( TestGroupStats && )     = default;
    type TestRunStats (line 5710) | struct TestRunStats {
      method TestRunStats (line 5711) | TestRunStats(   TestRunInfo const& _runInfo,
      method TestRunStats (line 5721) | TestRunStats( TestRunStats const& _other )
      method TestRunStats (line 5727) | TestRunStats( TestRunStats const& )              = default;
      method TestRunStats (line 5728) | TestRunStats( TestRunStats && )                  = default;
      method TestRunStats (line 5729) | TestRunStats& operator = ( TestRunStats const& ) = default;
      method TestRunStats (line 5730) | TestRunStats& operator = ( TestRunStats && )     = default;
    class MultipleReporters (line 5738) | class MultipleReporters
      method add (line 9306) | void add( Ptr<IStreamingReporter> const& reporter ) {
      method ReporterPreferences (line 9312) | virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
      method noMatchingTestCases (line 9316) | virtual void noMatchingTestCases( std::string const& spec ) CATCH_OV...
      method testRunStarting (line 9323) | virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH...
      method testGroupStarting (line 9330) | virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_O...
      method testCaseStarting (line 9337) | virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_...
      method sectionStarting (line 9344) | virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH...
      method assertionStarting (line 9351) | virtual void assertionStarting( AssertionInfo const& assertionInfo )...
      method assertionEnded (line 9359) | virtual bool assertionEnded( AssertionStats const& assertionStats ) ...
      method sectionEnded (line 9368) | virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_...
      method testCaseEnded (line 9375) | virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CAT...
      method testGroupEnded (line 9382) | virtual void testGroupEnded( TestGroupStats const& testGroupStats ) ...
      method testRunEnded (line 9389) | virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_...
      method skipTest (line 9396) | virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
      method MultipleReporters (line 9403) | virtual MultipleReporters* tryAsMulti() CATCH_OVERRIDE {
    type IStreamingReporter (line 5740) | struct IStreamingReporter : IShared {
      method MultipleReporters (line 5768) | virtual MultipleReporters* tryAsMulti() { return CATCH_NULL; }
    type IReporterFactory (line 5771) | struct IReporterFactory : IShared {
    type IReporterRegistry (line 5777) | struct IReporterRegistry {
    function listTests (line 5796) | inline std::size_t listTests( Config const& config ) {
    function listTestsNamesOnly (line 5834) | inline std::size_t listTestsNamesOnly( Config const& config ) {
    type TagInfo (line 5853) | struct TagInfo {
      method TagInfo (line 5854) | TagInfo() : count ( 0 ) {}
      method add (line 5855) | void add( std::string const& spelling ) {
      method all (line 5859) | std::string all() const {
    function listTags (line 5871) | inline std::size_t listTags( Config const& config ) {
    function listReporters (line 5915) | inline std::size_t listReporters( Config const& /*config*/ ) {
    function list (line 5938) | inline Option<std::size_t> list( Config const& config ) {
    function reportFatal (line 6320) | inline void reportFatal( std::string const& message ) {
    type FatalConditionHandler (line 6357) | struct FatalConditionHandler {
      method reset (line 6358) | void reset() {}
      method LONG (line 6380) | static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS Exc...
      method FatalConditionHandler (line 6391) | FatalConditionHandler() {
      method reset (line 6403) | static void reset() {
      method reset (line 6436) | void reset() {}
      type sigaction (line 6463) | struct sigaction
      method handleSignal (line 6467) | static void handleSignal( int sig ) {
      method FatalConditionHandler (line 6481) | FatalConditionHandler() {
      method reset (line 6500) | static void reset() {
    type SignalDefs (line 6366) | struct SignalDefs { DWORD id; const char* name; }
    type FatalConditionHandler (line 6378) | struct FatalConditionHandler {
      method reset (line 6358) | void reset() {}
      method LONG (line 6380) | static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS Exc...
      method FatalConditionHandler (line 6391) | FatalConditionHandler() {
      method reset (line 6403) | static void reset() {
      method reset (line 6436) | void reset() {}
      type sigaction (line 6463) | struct sigaction
      method handleSignal (line 6467) | static void handleSignal( int sig ) {
      method FatalConditionHandler (line 6481) | FatalConditionHandler() {
      method reset (line 6500) | static void reset() {
    type FatalConditionHandler (line 6435) | struct FatalConditionHandler {
      method reset (line 6358) | void reset() {}
      method LONG (line 6380) | static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS Exc...
      method FatalConditionHandler (line 6391) | FatalConditionHandler() {
      method reset (line 6403) | static void reset() {
      method reset (line 6436) | void reset() {}
      type sigaction (line 6463) | struct sigaction
      method handleSignal (line 6467) | static void handleSignal( int sig ) {
      method FatalConditionHandler (line 6481) | FatalConditionHandler() {
      method reset (line 6500) | static void reset() {
    type SignalDefs (line 6446) | struct SignalDefs {
    type FatalConditionHandler (line 6460) | struct FatalConditionHandler {
      method reset (line 6358) | void reset() {}
      method LONG (line 6380) | static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS Exc...
      method FatalConditionHandler (line 6391) | FatalConditionHandler() {
      method reset (line 6403) | static void reset() {
      method reset (line 6436) | void reset() {}
      type sigaction (line 6463) | struct sigaction
      method handleSignal (line 6467) | static void handleSignal( int sig ) {
      method FatalConditionHandler (line 6481) | FatalConditionHandler() {
      method reset (line 6500) | static void reset() {
    type sigaction (line 6514) | struct sigaction
    class StreamRedirect (line 6529) | class StreamRedirect {
      method StreamRedirect (line 6532) | StreamRedirect( std::ostream& stream, std::string& targetString )
    class RunContext (line 6554) | class RunContext : public IResultCapture, public IRunner {
      method RunContext (line 6561) | explicit RunContext( Ptr<IConfig const> const& _config, Ptr<IStreami...
      method testGroupStarting (line 6579) | void testGroupStarting( std::string const& testSpec, std::size_t gro...
      method testGroupEnded (line 6582) | void testGroupEnded( std::string const& testSpec, Totals const& tota...
      method Totals (line 6586) | Totals runTest( TestCase const& testCase ) {
      method config (line 6631) | Ptr<IConfig const> config() const {
      method assertionEnded (line 6637) | virtual void assertionEnded( AssertionResult const& result ) {
      method sectionStarted (line 6654) | virtual bool sectionStarted (
      method testForMissingAssertions (line 6672) | bool testForMissingAssertions( Counts& assertions ) {
      method sectionEnded (line 6684) | virtual void sectionEnded( SectionEndInfo const& endInfo ) {
      method sectionEndedEarly (line 6697) | virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) {
      method pushScopedMessage (line 6707) | virtual void pushScopedMessage( MessageInfo const& message ) {
      method popScopedMessage (line 6711) | virtual void popScopedMessage( MessageInfo const& message ) {
      method getCurrentTestName (line 6715) | virtual std::string getCurrentTestName() const {
      method AssertionResult (line 6721) | virtual const AssertionResult* getLastResult() const {
      method exceptionEarlyReported (line 6725) | virtual void exceptionEarlyReported() {
      method handleFatalErrorCondition (line 6729) | virtual void handleFatalErrorCondition( std::string const& message ) {
      method aborting (line 6766) | bool aborting() const {
      method runCurrentTest (line 6772) | void runCurrentTest( std::string& redirectedCout, std::string& redir...
      method invokeActiveTestCase (line 6823) | void invokeActiveTestCase() {
      method ResultBuilder (line 6831) | ResultBuilder makeUnexpectedResultBuilder() const {
      method handleUnfinishedSections (line 6838) | void handleUnfinishedSections() {
    function IResultCapture (line 6867) | IResultCapture& getResultCapture() {
    type Version (line 6882) | struct Version {
    function createReporter (line 6912) | Ptr<IStreamingReporter> createReporter( std::string const& reporterNam...
    function makeReporter (line 6922) | Ptr<IStreamingReporter> makeReporter( Ptr<Config> const& config ) {
    function addListeners (line 6934) | Ptr<IStreamingReporter> addListeners( Ptr<IConfig const> const& config...
    function Totals (line 6943) | Totals runTests( Ptr<Config> const& config ) {
      method Totals (line 2347) | Totals operator - ( Totals const& other ) const {
      method Totals (line 2354) | Totals delta( Totals const& prevTotals ) const {
      method Totals (line 2365) | Totals& operator += ( Totals const& other ) {
    function applyFilenamesAsTags (line 6974) | void applyFilenamesAsTags( IConfig const& config ) {
    class Session (line 6994) | class Session : NonCopyable {
      type OnUnusedOptions (line 6999) | struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; }
        type DoWhat (line 6999) | enum DoWhat { Ignore, Fail }
      method Session (line 7001) | Session()
      method showHelp (line 7014) | void showHelp( std::string const& processName ) {
      method applyCommandLine (line 7021) | int applyCommandLine( int argc, char const* const* const argv, OnUnu...
      method useConfigData (line 7043) | void useConfigData( ConfigData const& _configData ) {
      method run (line 7048) | int run( int argc, char const* const* const argv ) {
      method run (line 7057) | int run( int argc, wchar_t const* const* const argv ) {
      method run (line 7082) | int run() {
      method ConfigData (line 7113) | ConfigData& configData() {
      method Config (line 7116) | Config& config() {
    type RandomNumberGenerator (line 7145) | struct RandomNumberGenerator {
      method result_type (line 7148) | result_type operator()( result_type n ) const { return std::rand() %...
      method result_type (line 7151) | static constexpr result_type min() { return 0; }
      method result_type (line 7152) | static constexpr result_type max() { return 1000000; }
      method result_type (line 7153) | result_type operator()() const { return std::rand() % max(); }
      method shuffle (line 7156) | static void shuffle( V& vector ) {
    function sortTests (line 7166) | inline std::vector<TestCase> sortTests( IConfig const& config, std::ve...
    function matchTest (line 7186) | bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IC...
    function enforceNoDuplicateTestCases (line 7190) | void enforceNoDuplicateTestCases( std::vector<TestCase> const& functio...
    function filterTests (line 7209) | std::vector<TestCase> filterTests( std::vector<TestCase> const& testCa...
    class TestRegistry (line 7223) | class TestRegistry : public ITestCaseRegistry {
      method TestRegistry (line 7225) | TestRegistry()
      method registerTest (line 7231) | virtual void registerTest( TestCase const& testCase ) {
    class FreeFunctionTestCase (line 7265) | class FreeFunctionTestCase : public SharedImpl<ITestCase> {
      method FreeFunctionTestCase (line 7268) | FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {}
      method invoke (line 7270) | virtual void invoke() const {
    function extractClassName (line 7280) | inline std::string extractClassName( std::string const& classOrQualifi...
    function registerTestCase (line 7293) | void registerTestCase
    function registerTestCaseFunction (line 7307) | void registerTestCaseFunction
    class ReporterRegistry (line 7334) | class ReporterRegistry : public IReporterRegistry {
      method IStreamingReporter (line 7340) | virtual IStreamingReporter* create( std::string const& name, Ptr<ICo...
      method registerReporter (line 7347) | void registerReporter( std::string const& name, Ptr<IReporterFactory...
      method registerListener (line 7350) | void registerListener( Ptr<IReporterFactory> const& factory ) {
      method FactoryMap (line 7354) | virtual FactoryMap const& getFactories() const CATCH_OVERRIDE {
      method Listeners (line 7357) | virtual Listeners const& getListeners() const CATCH_OVERRIDE {
    class ExceptionTranslatorRegistry (line 7376) | class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
      method registerTranslator (line 7382) | virtual void registerTranslator( const IExceptionTranslator* transla...
      method translateActiveException (line 7386) | virtual std::string translateActiveException() const {
      method tryTranslators (line 7417) | std::string tryTranslators() const {
    class TagAliasRegistry (line 7436) | class TagAliasRegistry : public ITagAliasRegistry {
    class RegistryHub (line 7453) | class RegistryHub : public IRegistryHub, public IMutableRegistryHub {
      method RegistryHub (line 7459) | RegistryHub() {
      method IReporterRegistry (line 7461) | virtual IReporterRegistry const& getReporterRegistry() const CATCH_O...
      method ITestCaseRegistry (line 7464) | virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_O...
      method IExceptionTranslatorRegistry (line 7467) | virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry...
      method ITagAliasRegistry (line 7470) | virtual ITagAliasRegistry const& getTagAliasRegistry() const CATCH_O...
      method registerReporter (line 7475) | virtual void registerReporter( std::string const& name, Ptr<IReporte...
      method registerListener (line 7478) | virtual void registerListener( Ptr<IReporterFactory> const& factory ...
      method registerTest (line 7481) | virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE {
      method registerTranslator (line 7484) | virtual void registerTranslator( const IExceptionTranslator* transla...
      method registerTagAlias (line 7487) | virtual void registerTagAlias( std::string const& alias, std::string...
    function RegistryHub (line 7499) | inline RegistryHub*& getTheRegistryHub() {
      method RegistryHub (line 7459) | RegistryHub() {
      method IReporterRegistry (line 7461) | virtual IReporterRegistry const& getReporterRegistry() const CATCH_O...
      method ITestCaseRegistry (line 7464) | virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_O...
      method IExceptionTranslatorRegistry (line 7467) | virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry...
      method ITagAliasRegistry (line 7470) | virtual ITagAliasRegistry const& getTagAliasRegistry() const CATCH_O...
      method registerReporter (line 7475) | virtual void registerReporter( std::string const& name, Ptr<IReporte...
      method registerListener (line 7478) | virtual void registerListener( Ptr<IReporterFactory> const& factory ...
      method registerTest (line 7481) | virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE {
      method registerTranslator (line 7484) | virtual void registerTranslator( const IExceptionTranslator* transla...
      method registerTagAlias (line 7487) | virtual void registerTagAlias( std::string const& alias, std::string...
    function IRegistryHub (line 7507) | IRegistryHub& getRegistryHub() {
    function IMutableRegistryHub (line 7510) | IMutableRegistryHub& getMutableRegistryHub() {
    function cleanUp (line 7513) | void cleanUp() {
    function translateActiveException (line 7518) | std::string translateActiveException() {
    class StreamBufImpl (line 7558) | class StreamBufImpl : public StreamBufBase {
      method StreamBufImpl (line 7563) | StreamBufImpl() {
      method overflow (line 7572) | int overflow( int c ) {
      method sync (line 7584) | int sync() {
    type OutputDebugWriter (line 7608) | struct OutputDebugWriter {
    class Context (line 7646) | class Context : public IMutableContext {
      method Context (line 7648) | Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_result...
      method IResultCapture (line 7658) | virtual IResultCapture* getResultCapture() {
      method IRunner (line 7661) | virtual IRunner* getRunner() {
      method getGeneratorIndex (line 7664) | virtual size_t getGeneratorIndex( std::string const& fileInfo, size_...
      method advanceGeneratorsForCurrentTest (line 7669) | virtual bool advanceGeneratorsForCurrentTest() {
      method getConfig (line 7674) | virtual Ptr<IConfig const> getConfig() const {
      method setResultCapture (line 7679) | virtual void setResultCapture( IResultCapture* resultCapture ) {
      method setRunner (line 7682) | virtual void setRunner( IRunner* runner ) {
      method setConfig (line 7685) | virtual void setConfig( Ptr<IConfig const> const& config ) {
      method IGeneratorsForTest (line 7692) | IGeneratorsForTest* findGeneratorsForCurrentTest() {
      method IGeneratorsForTest (line 7702) | IGeneratorsForTest& getGeneratorsForCurrentTest() {
    function IMutableContext (line 7722) | IMutableContext& getCurrentMutableContext() {
    function IContext (line 7727) | IContext& getCurrentContext() {
    function cleanUpContext (line 7731) | void cleanUpContext() {
    class ErrnoGuard (line 7747) | class ErrnoGuard {
      method ErrnoGuard (line 7749) | ErrnoGuard():m_oldErrno(errno){}
    type IColourImpl (line 7760) | struct IColourImpl {
    type NoColourImpl (line 7765) | struct NoColourImpl : IColourImpl {
      method use (line 7766) | void use( Colour::Code ) {}
      method IColourImpl (line 7768) | static IColourImpl* instance() {
    class Win32ColourImpl (line 7790) | class Win32ColourImpl : public IColourImpl {
      method Win32ColourImpl (line 7792) | Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) )
      method use (line 7800) | virtual void use( Colour::Code _colourCode ) {
      method setTextAttribute (line 7821) | void setTextAttribute( WORD _textAttribute ) {
    function IColourImpl (line 7829) | IColourImpl* platformColourInstance() {
    class PosixColourImpl (line 7859) | class PosixColourImpl : public IColourImpl {
      method use (line 7861) | virtual void use( Colour::Code _colourCode ) {
      method IColourImpl (line 7880) | static IColourImpl* instance() {
      method setColour (line 7886) | void setColour( const char* _escapeCode ) {
    function IColourImpl (line 7891) | IColourImpl* platformColourInstance() {
    function IColourImpl (line 7913) | static IColourImpl* platformColourInstance() { return NoColourImpl::in...
    type GeneratorInfo (line 7941) | struct GeneratorInfo : IGeneratorInfo {
      method GeneratorInfo (line 7943) | GeneratorInfo( std::size_t size )
      method moveNext (line 7948) | bool moveNext() {
      method getCurrentIndex (line 7956) | std::size_t getCurrentIndex() const {
    class GeneratorsForTest (line 7966) | class GeneratorsForTest : public IGeneratorsForTest {
      method IGeneratorInfo (line 7973) | IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::...
      method moveNext (line 7984) | bool moveNext() {
    function IGeneratorsForTest (line 7999) | IGeneratorsForTest* createGeneratorsForTest()
    function SourceLineInfo (line 8076) | SourceLineInfo AssertionResult::getSourceInfo() const {
      method SourceLineInfo (line 455) | SourceLineInfo(SourceLineInfo const& other)          = default;
      method SourceLineInfo (line 456) | SourceLineInfo( SourceLineInfo && )                  = default;
      method SourceLineInfo (line 457) | SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
      method SourceLineInfo (line 458) | SourceLineInfo& operator = ( SourceLineInfo && )     = default;
    function parseSpecialTag (line 8101) | inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string co...
    function isReservedTag (line 8117) | inline bool isReservedTag( std::string const& tag ) {
    function enforceNotReservedTag (line 8120) | inline void enforceNotReservedTag( std::string const& tag, SourceLineI...
    function TestCase (line 8132) | TestCase makeTestCase(  ITestCase* _testCase,
    function setTags (line 8177) | void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const&...
    function TestCase (line 8237) | TestCase TestCase::withName( std::string const& _newName ) const {
    function TestCase (line 8268) | TestCase& TestCase::operator = ( TestCase const& other ) {
    function TestCaseInfo (line 8274) | TestCaseInfo const& TestCase::getTestCaseInfo() const
      type SpecialProperties (line 3222) | enum SpecialProperties{
    function Version (line 8311) | inline Version libraryVersion() {
    type IReporter (line 8364) | struct IReporter : IShared {
    class LegacyReporterAdapter (line 8383) | class LegacyReporterAdapter : public SharedImpl<IStreamingReporter>
    function ReporterPreferences (line 8415) | ReporterPreferences LegacyReporterAdapter::getPreferences() const {
      method ReporterPreferences (line 5560) | ReporterPreferences()
    function UInt64 (line 8498) | UInt64 getCurrentTicks() {
    function UInt64 (line 8509) | UInt64 getCurrentTicks() {
    function startsWith (line 8543) | bool startsWith( std::string const& s, std::string const& prefix ) {
    function startsWith (line 8546) | bool startsWith( std::string const& s, char prefix ) {
    function endsWith (line 8549) | bool endsWith( std::string const& s, std::string const& suffix ) {
    function endsWith (line 8552) | bool endsWith( std::string const& s, char suffix ) {
    function contains (line 8555) | bool contains( std::string const& s, std::string const& infix ) {
    function toLowerCh (line 8558) | char toLowerCh(char c) {
    function toLowerInPlace (line 8561) | void toLowerInPlace( std::string& s ) {
    function toLower (line 8564) | std::string toLower( std::string const& s ) {
    function trim (line 8569) | std::string trim( std::string const& str ) {
    function replaceInPlace (line 8577) | bool replaceInPlace( std::string& str, std::string const& replaceThis,...
    function seedRng (line 8618) | void seedRng( IConfig const& config ) {
    function rngSeed (line 8622) | unsigned int rngSeed() {
    function throwLogicError (line 8635) | void throwLogicError( std::string const& message, SourceLineInfo const...
    function isDebuggerActive (line 8699) | bool isDebuggerActive(){
    function isDebuggerActive (line 8744) | bool isDebuggerActive(){
    function isDebuggerActive (line 8765) | bool isDebuggerActive() {
    function isDebuggerActive (line 8772) | bool isDebuggerActive() {
    function isDebuggerActive (line 8778) | inline bool isDebuggerActive() { return false; }
    function writeToDebugConsole (line 8785) | void writeToDebugConsole( std::string const& text ) {
    function writeToDebugConsole (line 8791) | void writeToDebugConsole( std::string const& text ) {
    type Detail (line 8803) | namespace Detail {
      type BorgType (line 1583) | struct BorgType {
      type TrueType (line 1587) | struct TrueType { char sizer[1]; }
      type FalseType (line 1588) | struct FalseType { char sizer[2]; }
      type IsStreamInsertable (line 1596) | struct IsStreamInsertable {
      class IsStreamInsertable (line 1603) | class IsStreamInsertable {
      type EnumStringMaker (line 1620) | struct EnumStringMaker
        method convert (line 1622) | static std::string convert( T const& ) { return unprintableString; }
      type EnumStringMaker<T,true> (line 1626) | struct EnumStringMaker<T,true>
        method convert (line 1628) | static std::string convert( T const& v )
      type StringMakerBase (line 1637) | struct StringMakerBase {
        method convert (line 1640) | static std::string convert( T const& v )
        method convert (line 1646) | static std::string convert( T const& ) { return unprintableString; }
      type StringMakerBase<true> (line 1651) | struct StringMakerBase<true> {
        method convert (line 1653) | static std::string convert( T const& _value ) {
      function rawMemoryToString (line 1663) | inline std::string rawMemoryToString( const T& object ) {
      function makeString (line 1755) | std::string makeString( T const& value ) {
      function rangeToString (line 1774) | std::string rangeToString( InputIterator first, InputIterator last ) {
      class Approx (line 2763) | class Approx {
        method Approx (line 2765) | explicit Approx ( double value )
        method Approx (line 2772) | Approx( Approx const& other )
        method Approx (line 2779) | static Approx custom() {
        method Approx (line 2786) | Approx operator()( T value ) {
        method Approx (line 2795) | explicit Approx( T value ): Approx(static_cast<double>(value))
        method Approx (line 2845) | Approx& epsilon( T newEpsilon ) {
        method Approx (line 2851) | Approx& margin( T newMargin ) {
        method Approx (line 2857) | Approx& scale( T newScale ) {
        method Approx (line 2864) | Approx operator()( double value ) {
        method Approx (line 2909) | Approx& epsilon( double newEpsilon ) {
        method Approx (line 2914) | Approx& margin( double newMargin ) {
        method Approx (line 2919) | Approx& scale( double newScale ) {
        method toString (line 2925) | std::string toString() const {
      type Endianness (line 8810) | struct Endianness {
        type Arch (line 8811) | enum Arch { Big, Little }
        method Arch (line 8813) | static Arch which() {
      function rawMemoryToString (line 8825) | std::string rawMemoryToString( const void *object, std::size_t size )
    function toString (line 8843) | std::string toString( std::string const& value ) {
    function toString (line 8861) | std::string toString( std::wstring const& value ) {
    function toString (line 8870) | std::string toString( const char* const value ) {
    function toString (line 8874) | std::string toString( char* const value ) {
    function toString (line 8878) | std::string toString( const wchar_t* const value )
    function toString (line 8883) | std::string toString( wchar_t* const value )
    function toString (line 8888) | std::string toString( int value ) {
    function toString (line 8896) | std::string toString( unsigned long value ) {
    function toString (line 8904) | std::string toString( unsigned int value ) {
    function fpToString (line 8909) | std::string fpToString( T value, int precision ) {
    function toString (line 8924) | std::string toString( const double value ) {
    function toString (line 8927) | std::string toString( const float value ) {
    function toString (line 8931) | std::string toString( bool value ) {
    function toString (line 8935) | std::string toString( char value ) {
    function toString (line 8951) | std::string toString( signed char value ) {
    function toString (line 8955) | std::string toString( unsigned char value ) {
    function toString (line 8960) | std::string toString( long long value ) {
    function toString (line 8967) | std::string toString( unsigned long long value ) {
    function toString (line 8977) | std::string toString( std::nullptr_t ) {
    function toString (line 8983) | std::string toString( NSString const * const& nsstring ) {
    function toString (line 8993) | std::string toString( NSObject* const& nsObject ) {
    function capturedExpressionWithSecondArgument (line 9005) | std::string capturedExpressionWithSecondArgument( std::string const& c...
    function ResultBuilder (line 9031) | ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) {
      method ResultBuilder (line 1219) | ResultBuilder& operator << ( T const& value ) {
    function ResultBuilder (line 9035) | ResultBuilder& ResultBuilder::setResultType( bool result ) {
      method ResultBuilder (line 1219) | ResultBuilder& operator << ( T const& value ) {
    function AssertionResult (line 9113) | AssertionResult ResultBuilder::build() const
      method AssertionResult (line 993) | AssertionResult( AssertionResult const& )              = default;
      method AssertionResult (line 994) | AssertionResult( AssertionResult && )                  = default;
      method AssertionResult (line 995) | AssertionResult& operator = ( AssertionResult const& ) = default;
      method AssertionResult (line 996) | AssertionResult& operator = ( AssertionResult && )     = default;
    function AssertionResult (line 9124) | AssertionResult ResultBuilder::build( DecomposedExpression const& expr...
      method AssertionResult (line 993) | AssertionResult( AssertionResult const& )              = default;
      method AssertionResult (line 994) | AssertionResult( AssertionResult && )                  = default;
      method AssertionResult (line 995) | AssertionResult& operator = ( AssertionResult const& ) = default;
      method AssertionResult (line 996) | AssertionResult& operator = ( AssertionResult && )     = default;
    function ITagAliasRegistry (line 9206) | ITagAliasRegistry const& ITagAliasRegistry::get() {
    type Matchers (line 9219) | namespace Matchers {
      type Impl (line 1026) | namespace Impl {
        type MatchAllOf (line 1028) | struct MatchAllOf
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1029) | struct MatchAnyOf
          method match (line 1097) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1104) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchNotOf (line 1030) | struct MatchNotOf
          method MatchNotOf (line 1128) | MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_und...
          method match (line 1130) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1134) | virtual std::string describe() const CATCH_OVERRIDE {
        class MatcherUntypedBase (line 1032) | class MatcherUntypedBase {
          method toString (line 1034) | std::string toString() const {
        type MatcherMethod (line 1049) | struct MatcherMethod {
        type MatcherMethod<PtrT*> (line 1053) | struct MatcherMethod<PtrT*> {
        type MatcherBase (line 1058) | struct MatcherBase : MatcherUntypedBase, MatcherMethod<ObjectT> {
        type MatchAllOf (line 1066) | struct MatchAllOf : MatcherBase<ArgT> {
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1095) | struct MatchAnyOf : MatcherBase<ArgT> {
          method match (line 1097) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1104) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchNotOf (line 1126) | struct MatchNotOf : MatcherBase<ArgT> {
          method MatchNotOf (line 1128) | MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_und...
          method match (line 1130) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1134) | virtual std::string describe() const CATCH_OVERRIDE {
      function Not (line 1159) | inline Impl::MatchNotOf<T> Not( Impl::MatcherBase<T> const& underlyi...
      function AllOf (line 1163) | inline Impl::MatchAllOf<T> AllOf( Impl::MatcherBase<T> const& m1, Im...
      function AllOf (line 1167) | inline Impl::MatchAllOf<T> AllOf( Impl::MatcherBase<T> const& m1, Im...
      function AnyOf (line 1171) | inline Impl::MatchAnyOf<T> AnyOf( Impl::MatcherBase<T> const& m1, Im...
      function AnyOf (line 1175) | inline Impl::MatchAnyOf<T> AnyOf( Impl::MatcherBase<T> const& m1, Im...
      type StdString (line 2952) | namespace StdString {
        type CasedString (line 2954) | struct CasedString
        type StringMatcherBase (line 2964) | struct StringMatcherBase : MatcherBase<std::string> {
        type EqualsMatcher (line 2972) | struct EqualsMatcher : StringMatcherBase {
        type ContainsMatcher (line 2976) | struct ContainsMatcher : StringMatcherBase {
        type StartsWithMatcher (line 2980) | struct StartsWithMatcher : StringMatcherBase {
        type EndsWithMatcher (line 2984) | struct EndsWithMatcher : StringMatcherBase {
      type Vector (line 3008) | namespace Vector {
        type ContainsElementMatcher (line 3011) | struct ContainsElementMatcher : MatcherBase<std::vector<T>, T> {
          method ContainsElementMatcher (line 3013) | ContainsElementMatcher(T const &comparator) : m_comparator( comp...
          method match (line 3015) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3019) | virtual std::string describe() const CATCH_OVERRIDE {
        type ContainsMatcher (line 3027) | struct ContainsMatcher : MatcherBase<std::vector<T>, std::vector<T...
          method ContainsMatcher (line 3029) | ContainsMatcher(std::vector<T> const &comparator) : m_comparator...
          method match (line 3031) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3040) | virtual std::string describe() const CATCH_OVERRIDE {
        type EqualsMatcher (line 3048) | struct EqualsMatcher : MatcherBase<std::vector<T>, std::vector<T> > {
          method EqualsMatcher (line 3050) | EqualsMatcher(std::vector<T> const &comparator) : m_comparator( ...
          method match (line 3052) | bool match(std::vector<T> const &v) const CATCH_OVERRIDE {
          method describe (line 3064) | virtual std::string describe() const CATCH_OVERRIDE {
      function Contains (line 3076) | Vector::ContainsMatcher<T> Contains( std::vector<T> const& comparato...
      function VectorContains (line 3081) | Vector::ContainsElementMatcher<T> VectorContains( T const& comparato...
      function Equals (line 3086) | Vector::EqualsMatcher<T> Equals( std::vector<T> const& comparator ) {
      type StdString (line 9221) | namespace StdString {
        type CasedString (line 2954) | struct CasedString
        type StringMatcherBase (line 2964) | struct StringMatcherBase : MatcherBase<std::string> {
        type EqualsMatcher (line 2972) | struct EqualsMatcher : StringMatcherBase {
        type ContainsMatcher (line 2976) | struct ContainsMatcher : StringMatcherBase {
        type StartsWithMatcher (line 2980) | struct StartsWithMatcher : StringMatcherBase {
        type EndsWithMatcher (line 2984) | struct EndsWithMatcher : StringMatcherBase {
      function Equals (line 9281) | StdString::EqualsMatcher Equals( std::string const& str, CaseSensiti...
      function Contains (line 9284) | StdString::ContainsMatcher Contains( std::string const& str, CaseSen...
      function EndsWith (line 9287) | StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSen...
      function StartsWith (line 9290) | StdString::StartsWithMatcher StartsWith( std::string const& str, Cas...
    class MultipleReporters (line 9301) | class MultipleReporters : public SharedImpl<IStreamingReporter> {
      method add (line 9306) | void add( Ptr<IStreamingReporter> const& reporter ) {
      method ReporterPreferences (line 9312) | virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
      method noMatchingTestCases (line 9316) | virtual void noMatchingTestCases( std::string const& spec ) CATCH_OV...
      method testRunStarting (line 9323) | virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH...
      method testGroupStarting (line 9330) | virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_O...
      method testCaseStarting (line 9337) | virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_...
      method sectionStarting (line 9344) | virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH...
      method assertionStarting (line 9351) | virtual void assertionStarting( AssertionInfo const& assertionInfo )...
      method assertionEnded (line 9359) | virtual bool assertionEnded( AssertionStats const& assertionStats ) ...
      method sectionEnded (line 9368) | virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_...
      method testCaseEnded (line 9375) | virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CAT...
      method testGroupEnded (line 9382) | virtual void testGroupEnded( TestGroupStats const& testGroupStats ) ...
      method testRunEnded (line 9389) | virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_...
      method skipTest (line 9396) | virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
      method MultipleReporters (line 9403) | virtual MultipleReporters* tryAsMulti() CATCH_OVERRIDE {
    function addReporter (line 9409) | Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& ex...
    function getFormattedDuration (line 9448) | std::string getFormattedDuration( double duration ) {
    type StreamingReporterBase (line 9467) | struct StreamingReporterBase : SharedImpl<IStreamingReporter> {
      method StreamingReporterBase (line 9469) | StreamingReporterBase( ReporterConfig const& _config )
      method ReporterPreferences (line 9476) | virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
      method noMatchingTestCases (line 9482) | virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRID...
      method testRunStarting (line 9484) | virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATC...
      method testGroupStarting (line 9487) | virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_...
      method testCaseStarting (line 9491) | virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH...
      method sectionStarting (line 9494) | virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATC...
      method sectionEnded (line 9498) | virtual void sectionEnded( SectionStats const& /* _sectionStats */ )...
      method testCaseEnded (line 9501) | virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats *...
      method testGroupEnded (line 9504) | virtual void testGroupEnded( TestGroupStats const& /* _testGroupStat...
      method testRunEnded (line 9507) | virtual void testRunEnded( TestRunStats const& /* _testRunStats */ )...
      method skipTest (line 9513) | virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {
    type CumulativeReporterBase (line 9529) | struct CumulativeReporterBase : SharedImpl<IStreamingReporter> {
      type Node (line 9531) | struct Node : SharedImpl<> {
        method Node (line 9532) | explicit Node( T const& _value ) : value( _value ) {}
      type SectionNode (line 9539) | struct SectionNode : SharedImpl<> {
        method SectionNode (line 9540) | explicit SectionNode( SectionStats const& _stats ) : stats( _stats...
      type BySectionInfo (line 9559) | struct BySectionInfo {
        method BySectionInfo (line 9560) | BySectionInfo( SectionInfo const& other ) : m_other( other ) {}
        method BySectionInfo (line 9561) | BySectionInfo( BySectionInfo const& other ) : m_other( other.m_oth...
      method CumulativeReporterBase (line 9574) | CumulativeReporterBase( ReporterConfig const& _config )
      method ReporterPreferences (line 9582) | virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
      method testRunStarting (line 9586) | virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {}
      method testGroupStarting (line 9587) | virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {}
      method testCaseStarting (line 9589) | virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {}
      method sectionStarting (line 9591) | virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH...
      method assertionStarting (line 9616) | virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRID...
      method assertionEnded (line 9618) | virtual bool assertionEnded( AssertionStats const& assertionStats ) ...
      method sectionEnded (line 9630) | virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_...
      method testCaseEnded (line 9636) | virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CAT...
      method testGroupEnded (line 9647) | virtual void testGroupEnded( TestGroupStats const& testGroupStats ) ...
      method testRunEnded (line 9652) | virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_...
      method skipTest (line 9660) | virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {}
      method prepareExpandedExpression (line 9662) | virtual void prepareExpandedExpression( AssertionResult& result ) co...
    type TestEventListenerBase (line 9695) | struct TestEventListenerBase : StreamingReporterBase {
      method TestEventListenerBase (line 9696) | TestEventListenerBase( ReporterConfig const& _config )
      method assertionStarting (line 9700) | virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRID...
      method assertionEnded (line 9701) | virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE {
    class LegacyReporterRegistrar (line 9714) | class LegacyReporterRegistrar {
      class ReporterFactory (line 9716) | class ReporterFactory : public IReporterFactory {
        method IStreamingReporter (line 9717) | virtual IStreamingReporter* create( ReporterConfig const& config )...
        method getDescription (line 9721) | virtual std::string getDescription() const {
      method LegacyReporterRegistrar (line 9728) | LegacyReporterRegistrar( std::string const& name ) {
    class ReporterRegistrar (line 9734) | class ReporterRegistrar {
      class ReporterFactory (line 9736) | class ReporterFactory : public SharedImpl<IReporterFactory> {
        method IStreamingReporter (line 9749) | virtual IStreamingReporter* create( ReporterConfig const& config )...
        method getDescription (line 9753) | virtual std::string getDescription() const {
      method ReporterRegistrar (line 9760) | ReporterRegistrar( std::string const& name ) {
    class ListenerRegistrar (line 9766) | class ListenerRegistrar {
      class ListenerFactory (line 9768) | class ListenerFactory : public SharedImpl<IReporterFactory> {
        method IStreamingReporter (line 9770) | virtual IStreamingReporter* create( ReporterConfig const& config )...
        method getDescription (line 9773) | virtual std::string getDescription() const {
      method ListenerRegistrar (line 9780) | ListenerRegistrar() {
    class XmlEncode (line 9809) | class XmlEncode {
      type ForWhat (line 9811) | enum ForWhat { ForTextNodes, ForAttributes }
      method XmlEncode (line 9813) | XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes )
      method encodeTo (line 9818) | void encodeTo( std::ostream& os ) const {
    class XmlWriter (line 9868) | class XmlWriter {
      class ScopedElement (line 9871) | class ScopedElement {
        method ScopedElement (line 9873) | ScopedElement( XmlWriter* writer )
        method ScopedElement (line 9877) | ScopedElement( ScopedElement const& other )
        method ScopedElement (line 9887) | ScopedElement& writeText( std::string const& text, bool indent = t...
        method ScopedElement (line 9893) | ScopedElement& writeAttribute( std::string const& name, T const& a...
      method XmlWriter (line 9902) | XmlWriter()
      method XmlWriter (line 9910) | XmlWriter( std::ostream& os )
      method XmlWriter (line 9923) | XmlWriter& startElement( std::string const& name ) {
      method ScopedElement (line 9933) | ScopedElement scopedElement( std::string const& name ) {
        method ScopedElement (line 9873) | ScopedElement( XmlWriter* writer )
        method ScopedElement (line 9877) | ScopedElement( ScopedElement const& other )
        method ScopedElement (line 9887) | ScopedElement& writeText( std::string const& text, bool indent = t...
        method ScopedElement (line 9893) | ScopedElement& writeAttribute( std::string const& name, T const& a...
      method XmlWriter (line 9939) | XmlWriter& endElement() {
      method XmlWriter (line 9954) | XmlWriter& writeAttribute( std::string const& name, std::string cons...
      method XmlWriter (line 9960) | XmlWriter& writeAttribute( std::string const& name, bool attribute ) {
      method XmlWriter (line 9966) | XmlWriter& writeAttribute( std::string const& name, T const& attribu...
      method XmlWriter (line 9972) | XmlWriter& writeText( std::string const& text, bool indent = true ) {
      method XmlWriter (line 9984) | XmlWriter& writeComment( std::string const& text ) {
      method writeStylesheetRef (line 9991) | void writeStylesheetRef( std::string const& url ) {
      method XmlWriter (line 9995) | XmlWriter& writeBlankLine() {
      method ensureTagClosed (line 10001) | void ensureTagClosed() {
      method writeDeclaration (line 10012) | void writeDeclaration() {
      method newlineIfNecessary (line 10016) | void newlineIfNecessary() {
    class XmlReporter (line 10047) | class XmlReporter : public StreamingReporterBase {
      method XmlReporter (line 10049) | XmlReporter( ReporterConfig const& _config )
      method getDescription (line 10059) | static std::string getDescription() {
      method getStylesheetRef (line 10063) | virtual std::string getStylesheetRef() const {
      method writeSourceInfo (line 10067) | void writeSourceInfo( SourceLineInfo const& sourceInfo ) {
      method noMatchingTestCases (line 10075) | virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERR...
      method testRunStarting (line 10079) | virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OV...
      method testGroupStarting (line 10089) | virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_O...
      method testCaseStarting (line 10095) | virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_...
      method sectionStarting (line 10109) | virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH...
      method assertionStarting (line 10120) | virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRID...
      method assertionEnded (line 10122) | virtual bool assertionEnded( AssertionStats const& assertionStats ) ...
      method sectionEnded (line 10198) | virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_...
      method testCaseEnded (line 10213) | virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CAT...
      method testGroupEnded (line 10229) | virtual void testGroupEnded( TestGroupStats const& testGroupStats ) ...
      method testRunEnded (line 10239) | virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_...
    function getCurrentTimestamp (line 10266) | std::string getCurrentTimestamp() {
    class JunitReporter (line 10294) | class JunitReporter : public CumulativeReporterBase {
      method JunitReporter (line 10296) | JunitReporter( ReporterConfig const& _config )
      method getDescription (line 10306) | static std::string getDescription() {
      method noMatchingTestCases (line 10310) | virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATC...
      method testRunStarting (line 10312) | virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVE...
      method testGroupStarting (line 10317) | virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_O...
      method testCaseStarting (line 10325) | virtual void testCaseStarting( TestCaseInfo const& testCaseInfo ) CA...
      method assertionEnded (line 10328) | virtual bool assertionEnded( AssertionStats const& assertionStats ) ...
      method testCaseEnded (line 10334) | virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CAT...
      method testGroupEnded (line 10340) | virtual void testGroupEnded( TestGroupStats const& testGroupStats ) ...
      method testRunEndedCumulative (line 10346) | virtual void testRunEndedCumulative() CATCH_OVERRIDE {
      method writeGroup (line 10350) | void writeGroup( TestGroupNode const& groupNode, double suiteTime ) {
      method writeTestCase (line 10375) | void writeTestCase( TestCaseNode const& testCaseNode ) {
      method writeSection (line 10392) | void writeSection(  std::string const& className,
      method writeAssertions (line 10431) | void writeAssertions( SectionNode const& sectionNode ) {
      method writeAssertion (line 10438) | void writeAssertion( AssertionStats const& stats ) {
    type ConsoleReporter (line 10509) | struct ConsoleReporter : StreamingReporterBase {
      method ConsoleReporter (line 10510) | ConsoleReporter( ReporterConfig const& _config )
      method getDescription (line 10516) | static std::string getDescription() {
      method noMatchingTestCases (line 10520) | virtual void noMatchingTestCases( std::string const& spec ) CATCH_OV...
      method assertionStarting (line 10524) | virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {
      method assertionEnded (line 10527) | virtual bool assertionEnded( AssertionStats const& _assertionStats )...
      method sectionStarting (line 10544) | virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATC...
      method sectionEnded (line 10548) | virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH...
      method testCaseEnded (line 10567) | virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CA...
      method testGroupEnded (line 10571) | virtual void testGroupEnded( TestGroupStats const& _testGroupStats )...
      method testRunEnded (line 10580) | virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH...
      class AssertionPrinter (line 10589) | class AssertionPrinter {
        method AssertionPrinter (line 10592) | AssertionPrinter( std::ostream& _stream, AssertionStats const& _st...
        method print (line 10668) | void print() const {
        method printResultType (line 10684) | void printResultType() const {
        method printOriginalExpression (line 10690) | void printOriginalExpression() const {
        method printReconstructedExpression (line 10698) | void printReconstructedExpression() const {
        method printMessage (line 10705) | void printMessage() const {
        method printSourceInfo (line 10716) | void printSourceInfo() const {
      method lazyPrint (line 10732) | void lazyPrint() {
      method lazyPrintRunInfo (line 10744) | void lazyPrintRunInfo() {
      method lazyPrintGroupInfo (line 10756) | void lazyPrintGroupInfo() {
      method printTestCaseAndSectionHeader (line 10762) | void printTestCaseAndSectionHeader() {
      method printClosedHeader (line 10786) | void printClosedHeader( std::string const& _name ) {
      method printOpenHeader (line 10790) | void printOpenHeader( std::string const& _name ) {
      method printHeaderString (line 10800) | void printHeaderString( std::string const& _string, std::size_t inde...
      type SummaryColumn (line 10811) | struct SummaryColumn {
        method SummaryColumn (line 10813) | SummaryColumn( std::string const& _label, Colour::Code _colour )
        method SummaryColumn (line 10817) | SummaryColumn addRow( std::size_t count ) {
      method printTotals (line 10837) | void printTotals( Totals const& totals ) {
      method printSummaryRow (line 10868) | void printSummaryRow( std::string const& label, std::vector<SummaryC...
      method makeRatio (line 10887) | static std::size_t makeRatio( std::size_t number, std::size_t total ) {
      method printTotalsDivider (line 10900) | void printTotalsDivider( Totals const& totals ) {
      method printSummaryDivider (line 10922) | void printSummaryDivider() {
    type CompactReporter (line 10939) | struct CompactReporter : StreamingReporterBase {
      method CompactReporter (line 10941) | CompactReporter( ReporterConfig const& _config )
      method getDescription (line 10947) | static std::string getDescription() {
      method ReporterPreferences (line 10951) | virtual ReporterPreferences getPreferences() const {
      method noMatchingTestCases (line 10957) | virtual void noMatchingTestCases( std::string const& spec ) {
      method assertionStarting (line 10961) | virtual void assertionStarting( AssertionInfo const& ) {}
      method assertionEnded (line 10963) | virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
      method sectionEnded (line 10982) | virtual void sectionEnded(SectionStats const& _sectionStats) CATCH_O...
      method testRunEnded (line 10988) | virtual void testRunEnded( TestRunStats const& _testRunStats ) {
      class AssertionPrinter (line 10995) | class AssertionPrinter {
        method AssertionPrinter (line 10998) | AssertionPrinter( std::ostream& _stream, AssertionStats const& _st...
        method print (line 11007) | void print() {
        method dimColour (line 11078) | static Colour::Code dimColour() { return Colour::FileName; }
        method printSourceInfo (line 11088) | void printSourceInfo() const {
        method printResultType (line 11093) | void printResultType( Colour::Code colour, std::string const& pass...
        method printIssue (line 11103) | void printIssue( std::string const& issue ) const {
        method printExpressionWas (line 11107) | void printExpressionWas() {
        method printOriginalExpression (line 11118) | void printOriginalExpression() const {
        method printReconstructedExpression (line 11124) | void printReconstructedExpression() const {
        method printMessage (line 11134) | void printMessage() {
        method printRemainingMessages (line 11141) | void printRemainingMessages( Colour::Code colour = dimColour() ) {
      method bothOrAll (line 11182) | std::string bothOrAll( std::size_t count ) const {
      method printTotals (line 11186) | void printTotals( const Totals& totals ) const {
    type TestCaseTracking (line 11278) | namespace TestCaseTracking {
  type Catch (line 498) | namespace Catch {
    type IConfig (line 382) | struct IConfig
    type CaseSensitive (line 384) | struct CaseSensitive { enum Choice {
      type Choice (line 384) | enum Choice {
    class NonCopyable (line 389) | class NonCopyable {
      method NonCopyable (line 391) | NonCopyable( NonCopyable const& )              = delete;
      method NonCopyable (line 392) | NonCopyable( NonCopyable && )                  = delete;
      method NonCopyable (line 393) | NonCopyable& operator = ( NonCopyable const& ) = delete;
      method NonCopyable (line 394) | NonCopyable& operator = ( NonCopyable && )     = delete;
      method NonCopyable (line 401) | NonCopyable() {}
    class SafeBool (line 405) | class SafeBool {
      method type (line 409) | static type makeSafe( bool value ) {
      method trueValue (line 413) | void trueValue() const {}
    function deleteAll (line 417) | inline void deleteAll( ContainerT& container ) {
    function deleteAllValues (line 424) | inline void deleteAllValues( AssociativeContainerT& container ) {
    type pluralise (line 441) | struct pluralise {
    type SourceLineInfo (line 450) | struct SourceLineInfo {
      method SourceLineInfo (line 455) | SourceLineInfo(SourceLineInfo const& other)          = default;
      method SourceLineInfo (line 456) | SourceLineInfo( SourceLineInfo && )                  = default;
      method SourceLineInfo (line 457) | SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
      method SourceLineInfo (line 458) | SourceLineInfo& operator = ( SourceLineInfo && )     = default;
    function isTrue (line 471) | inline bool isTrue( bool value ){ return value; }
    function alwaysTrue (line 472) | inline bool alwaysTrue() { return true; }
    function alwaysFalse (line 473) | inline bool alwaysFalse() { return false; }
    type StreamEndStop (line 484) | struct StreamEndStop {
    function T (line 490) | T const& operator + ( T const& value, StreamEndStop ) {
    class NotImplementedException (line 500) | class NotImplementedException : public std::exception
      method NotImplementedException (line 504) | NotImplementedException( NotImplementedException const& ) {}
    type IGeneratorInfo (line 530) | struct IGeneratorInfo {
    type IGeneratorsForTest (line 536) | struct IGeneratorsForTest {
    class Ptr (line 561) | class Ptr {
      method Ptr (line 563) | Ptr() : m_p( CATCH_NULL ){}
      method Ptr (line 564) | Ptr( T* p ) : m_p( p ){
      method Ptr (line 568) | Ptr( Ptr const& other ) : m_p( other.m_p ){
      method reset (line 576) | void reset() {
      method Ptr (line 581) | Ptr& operator = ( T* p ){
      method Ptr (line 586) | Ptr& operator = ( Ptr const& other ){
      method swap (line 591) | void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
      method T (line 592) | T* get() const{ return m_p; }
      method T (line 593) | T& operator*() const { return *m_p; }
      method T (line 594) | T* operator->() const { return m_p; }
    type IShared (line 602) | struct IShared : NonCopyable {
    type SharedImpl (line 609) | struct SharedImpl : T {
      method SharedImpl (line 611) | SharedImpl() : m_rc( 0 ){}
      method addRef (line 613) | virtual void addRef() const {
      method release (line 616) | virtual void release() const {
    class TestCase (line 632) | class TestCase
    class Stream (line 633) | class Stream
    type IResultCapture (line 634) | struct IResultCapture
    type IRunner (line 635) | struct IRunner
    type IGeneratorsForTest (line 636) | struct IGeneratorsForTest
    type IConfig (line 637) | struct IConfig
    type IContext (line 639) | struct IContext
    type IMutableContext (line 650) | struct IMutableContext : IContext
    class TestSpec (line 675) | class TestSpec
      type Pattern (line 3615) | struct Pattern : SharedImpl<> {
      class NamePattern (line 3619) | class NamePattern : public Pattern {
        method NamePattern (line 3621) | NamePattern( std::string const& name )
        method matches (line 3625) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class TagPattern (line 3632) | class TagPattern : public Pattern {
        method TagPattern (line 3634) | TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
        method matches (line 3636) | virtual bool matches( TestCaseInfo const& testCase ) const {
      class ExcludedPattern (line 3643) | class ExcludedPattern : public Pattern {
        method ExcludedPattern (line 3645) | ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_under...
        method matches (line 3647) | virtual bool matches( TestCaseInfo const& testCase ) const { retur...
      type Filter (line 3652) | struct Filter {
        method matches (line 3655) | bool matches( TestCaseInfo const& testCase ) const {
      method hasFilters (line 3666) | bool hasFilters() const {
      method matches (line 3669) | bool matches( TestCaseInfo const& testCase ) const {
    type ITestCase (line 677) | struct ITestCase : IShared {
    class TestCase (line 683) | class TestCase
    type IConfig (line 684) | struct IConfig
    type ITestCaseRegistry (line 686) | struct ITestCaseRegistry {
    class MethodTestCase (line 701) | class MethodTestCase : public SharedImpl<ITestCase> {
      method MethodTestCase (line 704) | MethodTestCase( void (C::*method)() ) : m_method( method ) {}
      method invoke (line 706) | virtual void invoke() const {
    type NameAndDesc (line 719) | struct NameAndDesc {
      method NameAndDesc (line 720) | NameAndDesc( const char* _name = "", const char* _description= "" )
    type AutoReg (line 734) | struct AutoReg {
      method AutoReg (line 742) | AutoReg
    type ResultWas (line 857) | struct ResultWas { enum OfType {
      type OfType (line 857) | enum OfType {
    function isOk (line 877) | inline bool isOk( ResultWas::OfType resultType ) {
    function isJustInfo (line 880) | inline bool isJustInfo( int flags ) {
    type ResultDisposition (line 885) | struct ResultDisposition { enum Flags {
      type Flags (line 885) | enum Flags {
    function shouldContinueOnFailure (line 897) | inline bool shouldContinueOnFailure( int flags )    { return ( flags &...
    function isFalseTest (line 898) | inline bool isFalseTest( int flags )                { return ( flags &...
    function shouldSuppressFailure (line 899) | inline bool shouldSuppressFailure( int flags )      { return ( flags &...
    type STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison (line 910) | struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_C...
    type DecomposedExpression (line 912) | struct DecomposedExpression
      method isBinaryExpression (line 915) | virtual bool isBinaryExpression() const {
    type AssertionInfo (line 934) | struct AssertionInfo
      method AssertionInfo (line 936) | AssertionInfo() {}
    type AssertionResultData (line 948) | struct AssertionResultData
      method AssertionResultData (line 950) | AssertionResultData() : decomposedExpression( CATCH_NULL )
      method negate (line 955) | void negate( bool parenthesize ) {
    class AssertionResult (line 987) | class AssertionResult {
      method AssertionResult (line 993) | AssertionResult( AssertionResult const& )              = default;
      method AssertionResult (line 994) | AssertionResult( AssertionResult && )                  = default;
      method AssertionResult (line 995) | AssertionResult& operator = ( AssertionResult const& ) = default;
      method AssertionResult (line 996) | AssertionResult& operator = ( AssertionResult && )     = default;
    type Matchers (line 1025) | namespace Matchers {
      type Impl (line 1026) | namespace Impl {
        type MatchAllOf (line 1028) | struct MatchAllOf
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1029) | struct MatchAnyOf
          method match (line 1097) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1104) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchNotOf (line 1030) | struct MatchNotOf
          method MatchNotOf (line 1128) | MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_und...
          method match (line 1130) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1134) | virtual std::string describe() const CATCH_OVERRIDE {
        class MatcherUntypedBase (line 1032) | class MatcherUntypedBase {
          method toString (line 1034) | std::string toString() const {
        type MatcherMethod (line 1049) | struct MatcherMethod {
        type MatcherMethod<PtrT*> (line 1053) | struct MatcherMethod<PtrT*> {
        type MatcherBase (line 1058) | struct MatcherBase : MatcherUntypedBase, MatcherMethod<ObjectT> {
        type MatchAllOf (line 1066) | struct MatchAllOf : MatcherBase<ArgT> {
          method match (line 1067) | virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE {
          method describe (line 1074) | virtual std::string describe() const CATCH_OVERRIDE {
        type MatchAnyOf (line 1095) | struct MatchAnyOf : MatcherBase<ArgT> {
          method match (line 1097) | 
Copy disabled (too large) Download .json
Condensed preview — 2773 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (18,327K chars).
[
  {
    "path": ".asf.yaml",
    "chars": 250,
    "preview": "notifications:\n    commits:      commits@thrift.apache.org\n    issues:       dev@thrift.apache.org\n    pullrequests_stat"
  },
  {
    "path": ".clang-format",
    "chars": 1700,
    "preview": "---\nLanguage:        Cpp\n# BasedOnStyle:  LLVM\nAccessModifierOffset: -2\nConstructorInitializerIndentWidth: 2\nAlignEscape"
  },
  {
    "path": ".dockerignore",
    "chars": 6,
    "preview": ".git/\n"
  },
  {
    "path": ".editorconfig",
    "chars": 1678,
    "preview": "#\n## Licensed to the Apache Software Foundation (ASF) under one\n## or more contributor license agreements. See the NOTIC"
  },
  {
    "path": ".flake8",
    "chars": 160,
    "preview": "[flake8]\nexclude = .git,__pycache__,**/gen-*/**,contrib/**,docs/source/conf.py,old,build,dist\nignore = W504,E402,E501\nma"
  },
  {
    "path": ".gitattributes",
    "chars": 12,
    "preview": "* text=auto\n"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 1103,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE"
  },
  {
    "path": ".github/mergeable.yml",
    "chars": 8750,
    "preview": "version: 2\nmergeable:\n  - when: pull_request.*\n    name: Add 'c_glib' label to PR if changeset includes changes to the l"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 960,
    "preview": "<!-- Explain the changes in the pull request below: -->\n  \n\n<!-- We recommend you review the checklist/tips before submi"
  },
  {
    "path": ".github/stale.yml",
    "chars": 1930,
    "preview": "# Configuration for probot-stale - https://github.com/probot/stale\n\n# Number of days of inactivity before an Issue or Pu"
  },
  {
    "path": ".github/workflows/build.yml",
    "chars": 29014,
    "preview": "name: \"Build\"\n\non:\n  push:\n    branches: [\"*\"]\n  pull_request:\n    branches: [\"*\"]\n\nenv:\n  BUILD_DEPS: automake bison fl"
  },
  {
    "path": ".github/workflows/cmake.yml",
    "chars": 1035,
    "preview": "name: 'Build with CMake'\n\non:\n  push:\n    branches: [ '*' ]\n  pull_request:\n    branches: [ '*' ]\n\nenv:\n  BUILD_DEPS: bi"
  },
  {
    "path": ".github/workflows/msvc.yml",
    "chars": 4599,
    "preview": "name: MSVC Build \n\non:\n  push:\n    branches: [ '*' ]\n  pull_request:\n    branches: [ '*' ]\n\npermissions:\n  contents: rea"
  },
  {
    "path": ".github/workflows/publish.yml",
    "chars": 1576,
    "preview": "#\n# Apache Thrift release publishing workflow\n#\n# When a release is created in GitHub, it should be created in pre-relea"
  },
  {
    "path": ".github/workflows/pypi.yml",
    "chars": 1546,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": ".github/workflows/release_rust.yml",
    "chars": 1562,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": ".github/workflows/sca.yml",
    "chars": 8066,
    "preview": "name: \"Static Code Analysis\"\n\non:\n  push:\n    branches: [\"*\"]\n  pull_request:\n    branches: [\"*\"]\n  workflow_dispatch:\n\n"
  },
  {
    "path": ".gitignore",
    "chars": 11131,
    "preview": "# generic ignores\n*.la\n*.lo\n*.o\n*.deps\n*.dirstamp\n*.libs\n*.log\n*.trs\n*.suo\n*.pyc\n*.cache\n*.user\n*.ipch\n*.sdf\n*.jar\n*.exe"
  },
  {
    "path": ".gitmodules",
    "chars": 328,
    "preview": "[submodule \".github/actions/cloudtruth/configure-action\"]\n\tpath = .github/actions/cloudtruth/configure-action\n\turl = htt"
  },
  {
    "path": ".travis.yml",
    "chars": 5843,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "ApacheThrift.nuspec",
    "chars": 1818,
    "preview": "<?xml version=\"1.0\"?>\n\n<!--\n  Licensed under the Apache License, Version 2.0 (the \"License\");\n  you may not use this fil"
  },
  {
    "path": "CHANGES.md",
    "chars": 429700,
    "preview": "# Apache Thrift Changelog\n\n## 0.22.0\n\n### Build Process\n\n- [THRIFT-5836](https://issues.apache.org/jira/browse/THRIFT-58"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 3915,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 7900,
    "preview": "# How to Contribute #\n\nThank you for your interest in contributing to the Apache Thrift project!  Information on why and"
  },
  {
    "path": "FUZZING.md",
    "chars": 3428,
    "preview": "# Fuzzing Apache Thrift\n\nThis document describes the fuzzing infrastructure and goals for Apache Thrift. \n\nWe use [OSS-F"
  },
  {
    "path": "LANGUAGES.md",
    "chars": 48042,
    "preview": "# Apache Thrift Language Support #\n\nGuidance For: 0.22.0 |\n[0.21.0](https://github.com/apache/thrift/blob/v0.21.0/LANGUA"
  },
  {
    "path": "LICENSE",
    "chars": 15472,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "Makefile.am",
    "chars": 4108,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "NOTICE",
    "chars": 174,
    "preview": "Apache Thrift\nCopyright (C) 2006 - 2019, The Apache Software Foundation\n\nThis product includes software developed at\nThe"
  },
  {
    "path": "Package.swift",
    "chars": 1144,
    "preview": "// swift-tools-version:5.1\n/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor licen"
  },
  {
    "path": "README.md",
    "chars": 7135,
    "preview": "Apache Thrift\n=============\n\nIntroduction\n============\n\nThrift is a lightweight, language-independent software stack for"
  },
  {
    "path": "Thrift.podspec",
    "chars": 975,
    "preview": "Pod::Spec.new do |s|\n  s.name          = 'Thrift'\n  s.version       = '0.23.0'\n  s.summary       = \"Apache Thrift is a l"
  },
  {
    "path": "aclocal/ac_prog_bison.m4",
    "chars": 1739,
    "preview": "dnl\ndnl Check Bison version\ndnl AC_PROG_BISON([MIN_VERSION=2.4])\ndnl\ndnl Will define BISON_USE_PARSER_H_EXTENSION if Aut"
  },
  {
    "path": "aclocal/ax_boost_base.m4",
    "chars": 13728,
    "preview": "# ===========================================================================\n#      https://www.gnu.org/software/autoco"
  },
  {
    "path": "aclocal/ax_check_openssl.m4",
    "chars": 4189,
    "preview": "# ===========================================================================\n#     https://www.gnu.org/software/autocon"
  },
  {
    "path": "aclocal/ax_compare_version.m4",
    "chars": 6571,
    "preview": "# ===========================================================================\n#    https://www.gnu.org/software/autoconf"
  },
  {
    "path": "aclocal/ax_cxx_compile_stdcxx.m4",
    "chars": 19246,
    "preview": "# ===========================================================================\n#  https://www.gnu.org/software/autoconf-a"
  },
  {
    "path": "aclocal/ax_cxx_compile_stdcxx_11.m4",
    "chars": 1677,
    "preview": "# =============================================================================\n#  https://www.gnu.org/software/autoconf"
  },
  {
    "path": "aclocal/ax_dmd.m4",
    "chars": 3441,
    "preview": "dnl @synopsis AX_DMD\ndnl\ndnl Test for the presence of a DMD-compatible D2 compiler, and (optionally)\ndnl specified modul"
  },
  {
    "path": "aclocal/ax_javac_and_java.m4",
    "chars": 4133,
    "preview": "dnl @synopsis AX_JAVAC_AND_JAVA\ndnl @synopsis AX_CHECK_JAVA_CLASS(CLASSNAME)\ndnl\ndnl Test for the presence of a JDK, and"
  },
  {
    "path": "aclocal/ax_lib_event.m4",
    "chars": 6821,
    "preview": "dnl @synopsis AX_LIB_EVENT([MINIMUM-VERSION])\ndnl\ndnl Test for the libevent library of a particular version (or newer).\n"
  },
  {
    "path": "aclocal/ax_lib_zlib.m4",
    "chars": 5887,
    "preview": "dnl @synopsis AX_LIB_ZLIB([MINIMUM-VERSION])\ndnl\ndnl Test for the libz library of a particular version (or newer).\ndnl\nd"
  },
  {
    "path": "aclocal/ax_lua.m4",
    "chars": 26499,
    "preview": "# ===========================================================================\n#          https://www.gnu.org/software/au"
  },
  {
    "path": "aclocal/ax_prog_dotnetcore_version.m4",
    "chars": 1933,
    "preview": "# ===============================================================================\n#  https://www.gnu.org/software/autoco"
  },
  {
    "path": "aclocal/ax_prog_haxe_version.m4",
    "chars": 1799,
    "preview": "# ===========================================================================\n#   https://www.gnu.org/software/autoconf-"
  },
  {
    "path": "aclocal/ax_prog_perl_modules.m4",
    "chars": 2252,
    "preview": "# ===========================================================================\n#   https://www.gnu.org/software/autoconf-"
  },
  {
    "path": "aclocal/ax_signed_right_shift.m4",
    "chars": 5543,
    "preview": "dnl @synopsis AX_SIGNED_RIGHT_SHIFT\ndnl\ndnl Tests the behavior of a right shift on a negative signed int.\ndnl\ndnl This m"
  },
  {
    "path": "aclocal/ax_thrift_internal.m4",
    "chars": 1093,
    "preview": "dnl @synopsis AX_THRIFT_GEN(SHORT_LANGUAGE, LONG_LANGUAGE, DEFAULT)\ndnl @synopsis AX_THRIFT_LIB(SHORT_LANGUAGE, LONG_LAN"
  },
  {
    "path": "aclocal/tar.m4",
    "chars": 4547,
    "preview": "# Check how to create a tarball.                            -*- Autoconf -*-\n\n# Copyright (C) 2004-2018 Free Software Fo"
  },
  {
    "path": "appveyor.yml",
    "chars": 4502,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "bootstrap.sh",
    "chars": 1929,
    "preview": "#!/bin/sh\n\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See "
  },
  {
    "path": "bower.json",
    "chars": 308,
    "preview": "{\n  \"name\": \"thrift\",\n  \"version\": \"0.23.0\",\n  \"homepage\": \"https://github.com/apache/thrift.git\",\n  \"authors\": [\n    \"A"
  },
  {
    "path": "build/appveyor/CYGWIN-appveyor-full.bat",
    "chars": 2679,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/appveyor/MINGW-appveyor-full.bat",
    "chars": 4080,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/appveyor/MSVC-appveyor-full.bat",
    "chars": 7203,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/appveyor/MSYS-appveyor-full.bat",
    "chars": 2770,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/appveyor/README.md",
    "chars": 901,
    "preview": "<!---\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance wit"
  },
  {
    "path": "build/appveyor/build-libevent.bat",
    "chars": 2096,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/appveyor/build-zlib.bat",
    "chars": 1670,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/appveyor/simulate-appveyor.bat",
    "chars": 945,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/appveyor/win_showenv.bat",
    "chars": 2476,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/cmake/BoostMacros.cmake",
    "chars": 2240,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/BuildType.cmake",
    "chars": 1484,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/CPackConfig.cmake",
    "chars": 2581,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/ConfigureChecks.cmake",
    "chars": 3340,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/DefineCMakeDefaults.cmake",
    "chars": 3406,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/DefineInstallationPaths.cmake",
    "chars": 1957,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/DefineOptions.cmake",
    "chars": 9262,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/DefinePlatformSpecifc.cmake",
    "chars": 4744,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/FindAnt.cmake",
    "chars": 1126,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/FindClangTools.cmake",
    "chars": 1297,
    "preview": "# - Try to find Clang tools\n#\n# The following are set after configuration is done:\n#  clang-tidy_FOUND\n#  ClangTools::cl"
  },
  {
    "path": "build/cmake/FindGLIB.cmake",
    "chars": 5490,
    "preview": "# - Try to find Glib and its components (gio, gobject etc)\n# Once done, this will define\n#\n#  GLIB_FOUND - system has Gl"
  },
  {
    "path": "build/cmake/FindGradle.cmake",
    "chars": 1183,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/FindInttypes.cmake",
    "chars": 1379,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/FindLibevent.cmake",
    "chars": 1517,
    "preview": "# find LibEvent\n# an event notification library (http://libevent.org/)\n#\n# Usage: \n# LIBEVENT_INCLUDE_DIRS, where to fin"
  },
  {
    "path": "build/cmake/GenerateConfigModule.cmake",
    "chars": 1811,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/NewPlatformDebug.cmake",
    "chars": 1376,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/README-MSYS2.md",
    "chars": 2515,
    "preview": "<!---\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance wit"
  },
  {
    "path": "build/cmake/README.md",
    "chars": 1949,
    "preview": "# Apache Thrift - CMake Build\n\n## Goal\n\nExtend Apache Thrift's *make cross* approach to the build system.\n\nDue to growin"
  },
  {
    "path": "build/cmake/StaticCodeAnalysis.cmake",
    "chars": 428,
    "preview": "find_package(ClangTools QUIET)\nif(clang-tidy_FOUND AND run-clang-tidy_FOUND AND NOT TARGET do_run_clang_tidy)\n    add_cu"
  },
  {
    "path": "build/cmake/ThriftConfig.cmake.in",
    "chars": 2849,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/ThriftMacros.cmake",
    "chars": 1998,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/cmake/android-toolchain.cmake",
    "chars": 1035,
    "preview": "set(ANDROID_NDK \"/opt/android-ndk\" CACHE)\nset(ANDROID_PLATFORM \"android-15\" CACHE)\nset(ANDROID_ARCH \"arch-arm\" CACHE)\nse"
  },
  {
    "path": "build/cmake/config.h.in",
    "chars": 5129,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "build/cmake/mingw32-toolchain.cmake",
    "chars": 857,
    "preview": "# CMake mingw32 cross compile toolchain file\n\n# the name of the target operating system\nSET(CMAKE_SYSTEM_NAME Windows)\n\n"
  },
  {
    "path": "build/cmake/uninstall.cmake",
    "chars": 1512,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "build/docker/README.md",
    "chars": 8696,
    "preview": "# Docker Integration #\n\nDue to the large number of languages supported by Apache Thrift,\ndocker containers are used to b"
  },
  {
    "path": "build/docker/msvc/Dockerfile",
    "chars": 4937,
    "preview": "# escape=`\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in com"
  },
  {
    "path": "build/docker/msvc/README.md",
    "chars": 1707,
    "preview": "# Building Thrift using Docker for Windows\n\nThe build image is very large (just under 30GB) so plan accordingly.\nOnce Mi"
  },
  {
    "path": "build/docker/msvc/build-compiler.bat",
    "chars": 1349,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/docker/msvc/build.bat",
    "chars": 3033,
    "preview": "::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance "
  },
  {
    "path": "build/docker/refresh.sh",
    "chars": 2840,
    "preview": "#!/bin/bash\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See"
  },
  {
    "path": "build/docker/run.sh",
    "chars": 1058,
    "preview": "#!/bin/bash\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See"
  },
  {
    "path": "build/docker/scripts/autotools.sh",
    "chars": 355,
    "preview": "#!/bin/sh\nset -ev\n\nmkdir -p ~/.m2\ntee >~/.m2/settings.xml <<EOF\n<settings xmlns='http://maven.apache.org/SETTINGS/1.0.0'"
  },
  {
    "path": "build/docker/scripts/cmake.sh",
    "chars": 383,
    "preview": "#!/bin/sh\nset -ev\n\nCMAKE_FLAGS=$*\nMAKEPROG=make\n\nif ninja --version  >/dev/null 2>&1; then\n  MAKEPROG=ninja\n  CMAKE_FLAG"
  },
  {
    "path": "build/docker/scripts/coverity.sh",
    "chars": 1358,
    "preview": "#! /bin/bash\n#\n# This script allows you to run coverity on the project and submit the\n# results.  Do this inside the doc"
  },
  {
    "path": "build/docker/scripts/covscan.sh",
    "chars": 1778,
    "preview": "#\n# Coverity Scan Travis build script\n# To run this interactively, set the environment variables yourself,\n# and run thi"
  },
  {
    "path": "build/docker/scripts/cross-test.sh",
    "chars": 373,
    "preview": "#!/bin/sh\nset -ev\n\n./bootstrap.sh\n./configure --enable-tutorial=no\nmake -j3 precross\n\nset +e\nmake cross$1\n\nRET=$?\nif [ $"
  },
  {
    "path": "build/docker/scripts/dpkg.sh",
    "chars": 59,
    "preview": "#!/bin/sh\nset -ev\n\ndpkg-buildpackage -tc -us -uc\nls -al ..\n"
  },
  {
    "path": "build/docker/scripts/make-dist.sh",
    "chars": 127,
    "preview": "#!/bin/sh\nset -ev\n\n./bootstrap.sh\n./configure $*\nmake dist\ntar xvf thrift-*.tar.gz\ncd thrift-*\n./build/docker/scripts/cm"
  },
  {
    "path": "build/docker/scripts/sca.sh",
    "chars": 1740,
    "preview": "#!/bin/bash\nset -ev\n\n#\n# Generate thrift files so the static code analysis includes an analysis\n# of the files the thrif"
  },
  {
    "path": "build/docker/scripts/ubsan.sh",
    "chars": 1000,
    "preview": "#!/bin/sh\n\nset -e\n\n# Wraps autotools.sh, but each binary crashes if it exhibits undefined behavior. \n# Set the undefined"
  },
  {
    "path": "build/docker/ubuntu-focal/Dockerfile",
    "chars": 11933,
    "preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
  },
  {
    "path": "build/docker/ubuntu-jammy/Dockerfile",
    "chars": 10681,
    "preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
  },
  {
    "path": "build/docker/ubuntu-noble/Dockerfile",
    "chars": 10673,
    "preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
  },
  {
    "path": "build/fixchanges.sh",
    "chars": 1562,
    "preview": "#!/usr/bin/env bash\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreeme"
  },
  {
    "path": "build/veralign.sh",
    "chars": 10990,
    "preview": "#!/usr/bin/env bash\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreeme"
  },
  {
    "path": "compiler/cpp/CMakeLists.txt",
    "chars": 6491,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "compiler/cpp/Makefile.am",
    "chars": 5448,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "compiler/cpp/README.md",
    "chars": 5370,
    "preview": "# Build Thrift IDL compiler using CMake\n\n<!-- TOC -->\n\n- [Build Thrift IDL compiler using CMake](#build-thrift-idl-compi"
  },
  {
    "path": "compiler/cpp/coding_standards.md",
    "chars": 194,
    "preview": "## Compiler Coding Standards\n\n * When making small change / bugfix - follow style as seen in nearby code.\n * When making"
  },
  {
    "path": "compiler/cpp/compiler.sln",
    "chars": 860,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 11.00\n# Visual Studio 2010\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A"
  },
  {
    "path": "compiler/cpp/compiler.vcxproj",
    "chars": 13857,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "compiler/cpp/compiler.vcxproj.filters",
    "chars": 6919,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "compiler/cpp/src/Makefile.am",
    "chars": 1463,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "compiler/cpp/src/thrift/audit/t_audit.cpp",
    "chars": 17295,
    "preview": "\n#include <cassert>\n#include <stdlib.h>\n#include <stdio.h>\n#include <stdarg.h>\n#include <time.h>\n#include <string>\n#incl"
  },
  {
    "path": "compiler/cpp/src/thrift/audit/t_audit.h",
    "chars": 690,
    "preview": "#ifndef T_AUDIT_H\n#define T_AUDIT_H\n\nvoid compare_namespace(t_program* newProgram, t_program* oldProgram);\nvoid compare_"
  },
  {
    "path": "compiler/cpp/src/thrift/common.cc",
    "chars": 2230,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/common.h",
    "chars": 1273,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/go_validator_generator.cc",
    "chars": 33623,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/go_validator_generator.h",
    "chars": 2824,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_c_glib_generator.cc",
    "chars": 196105,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_cl_generator.cc",
    "chars": 17644,
    "preview": "/*\n * Copyright (c) 2008- Patrick Collison <patrick@collison.ie>\n * Copyright (c) 2006- Facebook\n *\n * Licensed to the A"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_cpp_generator.cc",
    "chars": 201224,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_d_generator.cc",
    "chars": 27743,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_dart_generator.cc",
    "chars": 83378,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_delphi_generator.cc",
    "chars": 149696,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_erl_generator.cc",
    "chars": 46009,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_generator.cc",
    "chars": 8910,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_generator.h",
    "chars": 13450,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_generator_registry.h",
    "chars": 4294,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_go_generator.cc",
    "chars": 159651,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_go_generator.h",
    "chars": 12780,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_gv_generator.cc",
    "chars": 10823,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_haxe_generator.cc",
    "chars": 105006,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_html_generator.cc",
    "chars": 35735,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_html_generator.h",
    "chars": 24197,
    "preview": "#define BOOTSTRAP_CSS()                                                                            \\\n  \"/*!\\n\"          "
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_java_generator.cc",
    "chars": 223214,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_javame_generator.cc",
    "chars": 116720,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_js_generator.cc",
    "chars": 107613,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_json_generator.cc",
    "chars": 22575,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_kotlin_generator.cc",
    "chars": 74742,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_lua_generator.cc",
    "chars": 40864,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_markdown_generator.cc",
    "chars": 33001,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_netstd_generator.cc",
    "chars": 139820,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_netstd_generator.h",
    "chars": 11304,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_ocaml_generator.cc",
    "chars": 61507,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_oop_generator.h",
    "chars": 3488,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_perl_generator.cc",
    "chars": 56810,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_php_generator.cc",
    "chars": 101451,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_py_generator.cc",
    "chars": 110307,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_rb_generator.cc",
    "chars": 42927,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_rs_generator.cc",
    "chars": 126987,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_st_generator.cc",
    "chars": 32919,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_swift_generator.cc",
    "chars": 108890,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_xml_generator.cc",
    "chars": 20285,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/t_xsd_generator.cc",
    "chars": 12169,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/validator_parser.cc",
    "chars": 20100,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/generate/validator_parser.h",
    "chars": 7625,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/globals.h",
    "chars": 3880,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/logging.cc",
    "chars": 1807,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/logging.h",
    "chars": 1223,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/main.cc",
    "chars": 39653,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/main.h",
    "chars": 2834,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/parse.cc",
    "chars": 1188,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_base_type.h",
    "chars": 2519,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_const.h",
    "chars": 1565,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_const_value.h",
    "chars": 7394,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_container.h",
    "chars": 1358,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_doc.h",
    "chars": 1524,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_enum.h",
    "chars": 3510,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_enum_value.h",
    "chars": 1477,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_field.h",
    "chars": 3683,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_function.h",
    "chars": 3602,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_list.h",
    "chars": 1466,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_map.h",
    "chars": 1741,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_program.h",
    "chars": 14032,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_scope.h",
    "chars": 8231,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_service.h",
    "chars": 3072,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_set.h",
    "chars": 1515,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_struct.h",
    "chars": 7326,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_type.h",
    "chars": 3443,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_typedef.cc",
    "chars": 1298,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/parse/t_typedef.h",
    "chars": 2102,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/platform.h",
    "chars": 1532,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/thriftl.ll",
    "chars": 9802,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/src/thrift/thrifty.yy",
    "chars": 30812,
    "preview": "%code requires {\n#include \"thrift/parse/t_program.h\"\n}\n%{\n/*\n * Licensed to the Apache Software Foundation (ASF) under o"
  },
  {
    "path": "compiler/cpp/src/thrift/windows/config.h",
    "chars": 1443,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/test/CMakeLists.txt",
    "chars": 1817,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "compiler/cpp/test/Makefile.am",
    "chars": 1123,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE "
  },
  {
    "path": "compiler/cpp/test/compiler/Included.thrift",
    "chars": 1192,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * /*\n * Licensed to the Apache Software Foundation (AS"
  },
  {
    "path": "compiler/cpp/test/compiler/Including.thrift",
    "chars": 913,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/test/compiler/Single.thrift",
    "chars": 830,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/test/compiler/staleness_check.py",
    "chars": 5627,
    "preview": "#!/usr/bin/env python3\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agre"
  },
  {
    "path": "compiler/cpp/test/keyword-samples/const1_return.thrift",
    "chars": 858,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/test/keyword-samples/enum1_return.thrift",
    "chars": 852,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/test/keyword-samples/enum2_return.thrift",
    "chars": 864,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/test/keyword-samples/exception1_return.thrift",
    "chars": 855,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/test/keyword-samples/exception2_return.thrift",
    "chars": 888,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  },
  {
    "path": "compiler/cpp/test/keyword-samples/service1_return.thrift",
    "chars": 853,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTI"
  }
]

// ... and 2573 more files (download for full content)

About this extraction

This page contains the full source code of the apache/thrift GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2773 files (16.6 MB), approximately 4.5M tokens, and a symbol index with 14969 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!