This is an automated email from the ASF dual-hosted git repository. Jens-G pushed a commit to branch release/0.25.0 in repository https://gitbox.apache.org/repos/asf/thrift.git
commit 6dcc437b40041216e7c0ce589fbd65c0cd39e3b0 Merge: ff73fd3a7 87fe0a6f9 Author: Jens Geyer <[email protected]> AuthorDate: Wed Sep 23 22:48:41 2026 +0200 Merge branch 'master' into release/0.25.0 .github/workflows/build.yml | 400 +++++++++++++- .github/workflows/chocolatey.yml | 190 +++++++ .github/workflows/cmake.yml | 68 ++- .github/workflows/dotnet-tool.yml | 190 +++++++ .github/workflows/pypi.yml | 1 - .github/workflows/sca.yml | 2 +- .github/workflows/windows-packages.yml | 189 +++++++ .github/workflows/winget.yml | 246 +++++++++ .gitignore | 3 + .travis.yml | 15 +- AGENTS.md | 24 + ApacheThrift.nuspec | 8 +- CMakeLists.txt | 2 +- LANGUAGES.md | 22 +- appveyor.yml | 45 +- bower.json | 2 +- build/appveyor/MINGW-appveyor-full.bat | 2 +- build/appveyor/MSVC-appveyor-full.bat | 2 +- build/appveyor/win_showenv.bat | 4 + build/cmake/DefineOptions.cmake | 5 +- build/cmake/DefinePlatformSpecifc.cmake | 2 +- build/docker/README.md | 99 ++-- build/docker/msvc/README.md | 45 +- build/docker/msvc/build-compiler.bat | 7 +- build/docker/ubuntu-focal/Dockerfile | 307 ----------- build/docker/ubuntu-jammy/Dockerfile | 19 +- build/docker/ubuntu-noble/Dockerfile | 3 - build/veralign.sh | 108 +++- build/windows/README.md | 230 ++++++++ build/windows/build-chocolatey-package.ps1 | 172 ++++++ build/windows/build-dotnet-tool.ps1 | 109 ++++ build/windows/build-installer.ps1 | 129 +++++ build/windows/build-winget-manifests.ps1 | 148 +++++ build/windows/check-compiler-imports-tests.ps1 | 280 ++++++++++ build/windows/check-compiler-imports.ps1 | 213 ++++++++ .../windows/chocolatey/test-chocolatey-package.ps1 | 195 +++++++ build/windows/chocolatey/thrift.nuspec.in | 73 +++ .../chocolatey/tools/chocolateyinstall.ps1.in | 40 ++ .../dotnet-tool/Apache.Thrift.Compiler.csproj | 121 ++++ build/windows/dotnet-tool/Program.cs | 103 ++++ build/windows/dotnet-tool/README.md | 62 +++ build/windows/dotnet-tool/test-dotnet-tool.ps1 | 193 +++++++ build/windows/installer/test-installer.ps1 | 195 +++++++ build/windows/installer/thrift.iss | 221 ++++++++ .../windows/winget/Apache.Thrift.installer.yaml.in | 46 ++ .../winget/Apache.Thrift.locale.en-US.yaml.in | 59 ++ .../windows/winget/Apache.Thrift.yaml.in | 12 +- build/windows/winget/test-winget-manifests.ps1 | 182 +++++++ build/windows/winget/validate_manifests.py | 138 +++++ compiler/cpp/CMakeLists.txt | 38 +- .../cpp/src/thrift/generate/t_c_glib_generator.cc | 17 +- compiler/cpp/src/thrift/generate/t_d_generator.cc | 2 +- .../cpp/src/thrift/generate/t_dart_generator.cc | 56 -- compiler/cpp/src/thrift/generate/t_go_generator.cc | 36 +- compiler/cpp/src/thrift/generate/t_gv_generator.cc | 33 +- .../cpp/src/thrift/generate/t_haxe_generator.cc | 4 - .../cpp/src/thrift/generate/t_javame_generator.cc | 117 ---- compiler/cpp/src/thrift/generate/t_js_generator.cc | 13 +- .../cpp/src/thrift/generate/t_lua_generator.cc | 6 +- .../cpp/src/thrift/generate/t_mmd_generator.cc | 1 - .../cpp/src/thrift/generate/t_php_generator.cc | 21 +- compiler/cpp/src/thrift/generate/t_st_generator.cc | 55 +- .../cpp/src/thrift/generate/t_xsd_generator.cc | 6 +- compiler/cpp/src/thrift/version.h | 2 +- compiler/cpp/test/CMakeLists.txt | 11 + compiler/cpp/tests/CMakeLists.txt | 20 +- .../tests/d/t_d_generator_reserved_word_tests.cc | 56 ++ .../cpp/tests/gv/t_gv_generator_const_tests.cc | 71 +++ .../cpp/tests/haxe/t_haxe_generator_const_tests.cc | 62 +++ composer.json | 2 +- configure.ac | 21 +- contrib/Rebus/Properties/AssemblyInfo.cs | 4 +- contrib/thrift.spec | 2 +- contrib/zeromq/csharp/AssemblyInfo.cs | 2 +- doc/ReleaseManagement.md | 187 ++++++- doc/install/os_x.md | 88 ++- doc/specs/idl.md | 2 +- doc/specs/thrift-tconfiguration.md | 28 +- lib/Makefile.am | 2 + lib/c_glib/CMakeLists.txt | 2 +- .../src/thrift/c_glib/protocol/thrift_protocol.c | 75 ++- .../src/thrift/c_glib/protocol/thrift_protocol.h | 15 + .../thrift/c_glib/thrift_application_exception.c | 2 + lib/c_glib/src/thrift/c_glib/thrift_struct.c | 22 +- .../c_glib/transport/thrift_buffered_transport.c | 2 + .../thrift/c_glib/transport/thrift_fd_transport.c | 2 +- .../c_glib/transport/thrift_framed_transport.c | 19 +- .../thrift/c_glib/transport/thrift_memory_buffer.c | 2 + .../thrift/c_glib/transport/thrift_server_socket.c | 2 + .../src/thrift/c_glib/transport/thrift_socket.c | 2 + .../c_glib/transport/thrift_zlib_transport.c | 17 +- lib/c_glib/test/CMakeLists.txt | 18 + lib/c_glib/test/Makefile.am | 28 +- .../c_glib/test/RecursionLimitTest.thrift | 16 +- lib/c_glib/test/testfinalize.c | 174 ++++++ lib/c_glib/test/testframedtransport.c | 185 +++++++ lib/c_glib/test/testrecursionlimit.c | 317 +++++++++++ lib/c_glib/test/testzlibtransport.c | 170 ++++++ lib/cpp/src/thrift/async/TEvhttpServer.cpp | 21 +- lib/cpp/src/thrift/transport/THeaderTransport.cpp | 34 +- lib/cpp/test/CMakeLists.txt | 9 + lib/cpp/test/Makefile.am | 14 +- lib/cpp/test/TEvhttpServerRequestContextTest.cpp | 301 ++++++++++ lib/cpp/test/ThrifttReadCheckTests.cpp | 57 ++ lib/d/Makefile.am | 4 +- lib/d/src/thrift/base.d | 2 +- lib/dart/lib/src/protocol/t_binary_protocol.dart | 4 + lib/dart/lib/src/protocol/t_json_protocol.dart | 17 +- lib/dart/pubspec.yaml | 2 +- lib/dart/test/protocol/t_declared_length_test.dart | 65 +++ .../test/protocol/t_json_string_length_test.dart | 146 +++++ lib/delphi/src/Thrift.Collections.pas | 2 +- lib/delphi/src/Thrift.pas | 2 +- lib/delphi/test/serializer/TestSerializer.Data.pas | 8 +- lib/erl/README.md | 36 ++ lib/erl/include/thrift_constants.hrl | 6 + lib/erl/src/thrift.app.src | 2 +- lib/erl/src/thrift_framed_transport.erl | 39 +- lib/erl/src/thrift_http_transport.erl | 243 ++++++++- lib/erl/src/thrift_protocol.erl | 132 +++-- lib/erl/test/test_thrift_framed_transport.erl | 24 + lib/erl/test/test_thrift_http_transport.erl | 606 ++++++++++++++++++++- lib/erl/test/test_thrift_read_depth.erl | 152 ++++++ lib/go/README.md | 9 + .../test/DocCommentTest.thrift} | 61 ++- lib/go/test/Makefile.am | 5 +- lib/go/test/tests/union_default_value_test.go | 29 +- lib/go/thrift/binary_protocol.go | 6 + lib/go/thrift/binary_protocol_test.go | 65 +++ lib/go/thrift/configuration.go | 30 +- lib/go/thrift/framed_transport.go | 12 +- lib/go/thrift/framed_transport_test.go | 47 ++ lib/go/thrift/header_transport.go | 58 +- lib/go/thrift/header_transport_test.go | 144 +++++ lib/go/thrift/max_container_size_test.go | 232 ++++++++ lib/haxe/haxelib.json | 2 +- lib/java/gradle.properties | 2 +- lib/java/src/crossTest/resources/.clientkeystore | Bin 3142 -> 2878 bytes .../thrift/server/AbstractNonblockingServer.java | 77 ++- .../thrift/server/TSaslNonblockingServer.java | 86 ++- .../transport/sasl/NonblockingSaslHandler.java | 2 + .../TestNonblockingServerReadBufferLimit.java | 309 +++++++++++ .../TestSaslNonblockingServerConnectionErrors.java | 290 ++++++++++ .../TestSaslNonblockingServerEvaluateFailure.java | 239 ++++++++ .../org/apache/thrift/protocol/TJSONProtocol.java | 31 ++ lib/javame/test/TestJSONStringLengthLimits.java | 271 +++++++++ lib/js/Gruntfile.js | 3 +- lib/js/package-lock.json | 4 +- lib/js/package.json | 2 +- lib/js/src/thrift.js | 6 +- lib/js/test/build.xml | 6 +- lib/js/test/deep-constructor.test.js | 4 +- lib/js/test/phantom-client.js | 2 +- lib/js/test/test-nojq.js | 17 + lib/js/test/test.js | 2 +- lib/lua/Makefile.am | 36 +- lib/lua/TBinaryProtocol.lua | 4 + lib/lua/TFramedTransport.lua | 15 +- lib/lua/THttpTransport.lua | 43 +- lib/lua/TJsonProtocol.lua | 71 ++- lib/lua/TSocket.lua | 5 +- lib/lua/Thrift.lua | 2 +- lib/lua/src/usocket.c | 18 +- lib/lua/test/test_frame_and_string_limits.lua | 460 ++++++++++++++++ lib/lua/test/test_http_headers.lua | 94 ++++ lib/lua/test/test_json_escapes.lua | 227 ++++++++ lib/lua/test/test_socket_send.c | 236 ++++++++ lib/lua/test/test_socket_write.lua | 96 ++++ .../Thrift.Benchmarks/Thrift.Benchmarks.csproj | 2 +- .../Thrift.Compile.net10.csproj | 2 +- .../Thrift.Compile.net8/Thrift.Compile.net8.csproj | 2 +- .../Thrift.Compile.net9/Thrift.Compile.net9.csproj | 2 +- .../Thrift.Compile.netstd2.csproj | 2 +- .../Thrift.IntegrationTests.csproj | 2 +- lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj | 2 +- .../Thrift.AspNetCore/Thrift.AspNetCore.csproj | 6 +- lib/netstd/Thrift/Properties/AssemblyInfo.cs | 4 +- lib/netstd/Thrift/Thrift.csproj | 6 +- lib/nodejs/lib/thrift/header_transport.js | 12 +- lib/nodejs/lib/thrift/json_protocol.js | 43 +- lib/nodejs/lib/thrift/multiplexed_processor.js | 2 +- lib/nodejs/lib/thrift/server.js | 20 +- lib/nodejs/lib/thrift/web_server.js | 5 + lib/nodejs/lib/thrift/ws_transport.js | 2 +- lib/nodejs/lib/thrift/xhr_connection.js | 31 +- lib/nodejs/test/connection_transport.test.js | 58 ++ lib/nodejs/test/header.test.js | 61 +++ lib/nodejs/test/json_container_size.test.js | 268 +++++++++ lib/nodejs/test/multiplexed_processor.test.js | 98 ++++ lib/nodejs/test/server_error_events.test.js | 202 +++++++ lib/nodejs/test/testAll.sh | 4 + lib/nodejs/test/web_server_ws.test.js | 35 ++ lib/ocaml/_oasis | 2 +- lib/ocaml/src/TSimpleServer.ml | 2 +- lib/ocaml/src/TThreadedServer.ml | 5 +- lib/ocaml/src/Thrift.ml | 6 +- lib/perl/build-cpan-dist.sh | 2 +- lib/perl/lib/Thrift.pm | 2 +- lib/perl/lib/Thrift/FramedTransport.pm | 15 +- lib/perl/lib/Thrift/SSLSocket.pm | 4 +- lib/perl/lib/Thrift/Server.pm | 82 +-- lib/perl/lib/Thrift/Socket.pm | 17 +- lib/perl/t/Makefile.am | 4 +- lib/perl/t/forking_server_fork_failure.t | 122 +++++ lib/perl/t/framed_transport.t | 143 +++++ lib/perl/t/server_connection_errors.t | 146 +++++ lib/perl/t/socket_write.t | 227 ++++++++ lib/php/README.md | 10 +- lib/php/lib/Factory/TJSONProtocolFactory.php | 7 +- lib/php/lib/Protocol/TJSONProtocol.php | 21 +- lib/php/lib/Protocol/TProtocol.php | 22 +- lib/php/lib/Server/TForkingServer.php | 6 +- lib/php/lib/Server/TSSLServerSocket.php | 18 - lib/php/lib/Server/TSimpleServer.php | 31 +- lib/php/lib/Transport/TCurlClient.php | 91 +++- lib/php/lib/Transport/TFramedTransport.php | 29 +- lib/php/lib/Transport/TMemoryBuffer.php | 33 +- lib/php/lib/Transport/TPsrHttpClient.php | 16 +- lib/php/lib/Transport/TSSLSocket.php | 10 +- lib/php/lib/Transport/TSocket.php | 139 +---- lib/php/lib/Transport/TSocketPool.php | 10 +- lib/php/lib/Transport/TTransport.php | 27 + lib/php/phpunit.xml | 1 - .../ext/thrift_protocol/php_thrift_protocol.cpp | 46 ++ .../ext/thrift_protocol/tests/string_field.phpt | 6 +- .../thrift_protocol/tests/string_size_limit.phpt | 139 +++++ .../Lib/ClassLoader/ThriftClassLoaderTest.php | 4 +- .../Lib/Protocol/RecursionDepthInlinedTest.php | 254 +++++++++ .../Lib/Transport/TCurlClientRedirectTest.php | 226 ++++++++ lib/php/test/Makefile.am | 2 + .../TBinaryProtocolAcceleratedFactoryTest.php | 12 +- .../Lib/Factory/TBinaryProtocolFactoryTest.php | 10 +- .../Lib/Factory/TCompactProtocolFactoryTest.php | 6 +- .../Lib/Factory/TFramedTransportFactoryTest.php | 13 +- .../Unit/Lib/Factory/TJSONProtocolFactoryTest.php | 6 +- .../Unit/Lib/Protocol/JsonStringSizeLimitTest.php | 211 +++++++ .../test/Unit/Lib/Protocol/TBinaryProtocolTest.php | 8 +- .../Unit/Lib/Protocol/TCompactProtocolTest.php | 76 ++- .../test/Unit/Lib/Protocol/TJSONProtocolTest.php | 9 +- lib/php/test/Unit/Lib/Protocol/TProtocolTest.php | 41 ++ lib/php/test/Unit/Lib/ReflectionHelper.php | 94 ---- .../Unit/Lib/Serializer/TBinarySerializerTest.php | 9 +- .../Unit/Lib/Server/Fixture/ConnectionStub.php} | 45 +- .../Unit/Lib/Server/Fixture/CountingProcessor.php | 72 +++ .../Fixture/QueuedServerTransport.php} | 46 +- .../test/Unit/Lib/Server/TForkingServerTest.php | 120 +++- .../test/Unit/Lib/Server/TSSLServerSocketTest.php | 38 +- lib/php/test/Unit/Lib/Server/TServerSocketTest.php | 11 +- lib/php/test/Unit/Lib/Server/TServerTest.php | 28 +- lib/php/test/Unit/Lib/Server/TSimpleServerTest.php | 96 ++++ .../test/Unit/Lib/Transport/SmallReadCostTest.php | 133 +++++ .../Unit/Lib/Transport/TBufferedTransportTest.php | 30 +- .../test/Unit/Lib/Transport/TCurlClientTest.php | 223 ++++++-- .../Unit/Lib/Transport/TFramedTransportTest.php | 64 ++- .../test/Unit/Lib/Transport/THttpClientTest.php | 20 +- .../test/Unit/Lib/Transport/TMemoryBufferTest.php | 48 ++ .../test/Unit/Lib/Transport/TPsrHttpClientTest.php | 55 +- lib/php/test/Unit/Lib/Transport/TSSLSocketTest.php | 132 +---- .../test/Unit/Lib/Transport/TSocketPoolTest.php | 89 ++- lib/php/test/Unit/Lib/Transport/TSocketTest.php | 256 +++------ lib/php/test/Unit/Lib/UserDeprecationCapture.php | 52 -- lib/php/test/bootstrap.php | 1 + lib/py/CMakeLists.txt | 1 + lib/py/Makefile.am | 5 + lib/py/README.md | 18 +- lib/py/setup.py | 2 +- lib/py/src/ext/protocol.tcc | 18 +- lib/py/src/protocol/TJSONProtocol.py | 15 +- lib/py/src/protocol/TProtocol.py | 94 ++-- lib/py/src/server/TNonblockingServer.py | 6 +- lib/py/src/transport/TSSLSocket.py | 30 +- lib/py/src/transport/TZlibTransport.py | 10 +- lib/py/src/transport/sslcompat.py | 21 +- lib/py/test/test_container_sizing.py | 195 ++++++- .../test_nonblocking_server_select_progress.py | 158 ++++++ lib/py/test/test_recursion_depth.py | 138 ++++- lib/py/test/test_sslsocket.py | 118 +++- .../test/test_thrift_file/RecursiveDynamic.thrift} | 29 +- lib/py/test/thrift_TZlibTransport.py | 85 +++ lib/py/test/thrift_json.py | 43 +- lib/rb/Gemfile.lock | 2 +- lib/rb/lib/thrift/protocol/json_protocol.rb | 14 +- lib/rb/lib/thrift/server/base_server.rb | 10 +- lib/rb/lib/thrift/server/simple_server.rb | 6 + lib/rb/lib/thrift/transport/header_transport.rb | 5 + lib/rb/spec/header_transport_spec.rb | 17 + lib/rb/spec/server_spec.rb | 64 +++ lib/rb/spec/string_size_limit_spec.rb | 114 ++++ lib/rb/thrift.gemspec | 2 +- lib/rs/Cargo.toml | 2 +- lib/rs/src/protocol/binary.rs | 79 ++- lib/rs/src/protocol/compact.rs | 40 +- lib/rs/src/protocol/mod.rs | 207 ++++++- lib/rs/src/protocol/stored.rs | 4 + lib/rs/src/server/threaded.rs | 97 +++- lib/rs/src/transport/socket.rs | 10 +- lib/st/README.md | 25 + lib/st/package.xml | 2 +- lib/st/test/TProtocolRecursionDepthTest.st | 13 +- lib/st/test/TProtocolShortReadTest.st | 164 ++++++ lib/st/test/TTransportReadAllTest.st | 143 +++++ lib/st/test/run-tests.sh | 166 ++++++ lib/st/thrift.st | 41 +- lib/ts/Gruntfile.js | 3 +- lib/ts/package-lock.json | 4 +- lib/ts/package.json | 2 +- package-lock.json | 573 ++++++++++++++----- package.json | 2 +- sonar-project.properties | 6 +- test/c_glib/CMakeLists.txt | 2 +- test/dart/recursion_depth_test/pubspec.yaml | 2 +- test/dart/test_client/pubspec.yaml | 2 +- test/erl/src/thrift_test.app.src | 2 +- test/features/index.html | 6 +- test/go/src/bin/testclient/main.go | 3 +- test/go/src/common/client.go | 19 +- test/go/src/common/clientserver_test.go | 2 +- test/go/src/common/context_test.go | 2 +- test/index.html | 6 +- test/keys/README.md | 48 +- test/keys/client_v3.crt | 29 +- test/known_failures_Linux.json | 18 - test/netstd/Client/Client.csproj | 2 +- test/netstd/Server/Server.csproj | 2 +- test/php/TestClient.php | 3 +- test/rb/Gemfile.lock | 2 +- test/tests.json | 3 +- tutorial/dart/client/pubspec.yaml | 2 +- tutorial/dart/console_client/pubspec.yaml | 2 +- tutorial/dart/server/pubspec.yaml | 2 +- tutorial/delphi/DelphiClient/DelphiClient.dproj | 4 +- tutorial/delphi/DelphiServer/DelphiServer.dproj | 4 +- tutorial/js/tutorial.html | 2 +- tutorial/netstd/Client/Client.csproj | 2 +- tutorial/netstd/Interfaces/Interfaces.csproj | 2 +- tutorial/netstd/Server/Server.csproj | 2 +- tutorial/ocaml/_oasis | 2 +- 337 files changed, 17570 insertions(+), 2516 deletions(-)
