PackageTrack
Sign in Get early access

thrift

Rust bindings for the Apache Thrift RPC system

0.24.0 89M downloads/mo #860 most downloaded on crates.io apache/thrift

What this package is like to depend on

Last release 1 months ago

11 Jul 2026

Release timing varies

gaps range from 9 days to 3.6 years

Most releases are documented

notes for 10 of 13 stable releases

1 version withdrawn

withdrawn after publishing

9 years old

14 releases · first in 2017

2 releases in the last 12 months

see the full history below

Release timeline

14 releases · Apr 2017 to Jul 2026
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 14
  1. 0.24.0 11 Jul 2026
    Release notes

    Please head over to the official release download source:
    http://thrift.apache.org/download

    The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

    Open source →
    Release notes

    Build Process

    • THRIFT-5000 - Thrift docker image publish on releases
    • THRIFT-5855 - Improve fuzzing support
    • THRIFT-5952 - Optimize MSVC Docker image to reduce size and speed up CI
    • THRIFT-5965 - Add zizmor for GitHub Actions workflows security analysis
    • THRIFT-5967 - Refactor SCA GitHub workflow for better extensibility
    • THRIFT-5973 - Automated CHANGELOG creation
    • THRIFT-6002 - Add netstd codegen test script and GitHub Actions CI matrix job (.NET 8/9/10)
    • THRIFT-6003 - Add Haxe codegen test script and GitHub Actions CI job
    • THRIFT-6077 - improve CHANGES.md generator section assignment
    • #3613 - Bump rubygems/release-gem from 1.2.0 to 1.4.0
    • #3616 - Bump ruby/setup-ruby from 1.310.0 to 1.314.0
    • #3617 - Bump rust-lang/crates-io-auth-action from 1.0.4 to 1.0.5
    • #3618 - Bump jvm from 2.3.21 to 2.4.0 in /lib/kotlin
    • #3619 - Bump com.diffplug.spotless from 8.5.1 to 8.7.0 in /lib/kotlin
    • #3615 - Bump actions/setup-go from 6.4.0 to 6.5.0
    • THRIFT-6092 - fix off-by-ten header bounds check in readHeaderFormat
    • #3593 - Bump shell-quote from 1.7.3 to 1.8.4 in /lib/js
    • #3591 - Bump shell-quote from 1.7.3 to 1.8.4 in /lib/ts
    • #3589 - Update MSVC CI to windows-2025-vs2026 runner and start Docker service explicitly
    • #3581 - Run the Haxe library unit tests (neko) in CI
    • #3576 - Bump ruby/setup-ruby from 1.306.0 to 1.310.0
    • #3575 - Bump zizmorcore/zizmor-action from 0.5.3 to 0.5.6
    • #3577 - Bump actions/setup-dotnet from 4.3.1 to 5.2.0
    • #3574 - Bump com.diffplug.spotless from 8.4.0 to 8.5.1 in /lib/kotlin
    • #3572 - Bump org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 in /lib/kotlin
    • #3578 - Harden the MSVC build workflow against transient Docker daemon unavailability
    • #3564 - Enable Copilot reviews
    • #3565 - Allow CI to fail on ruby-head
    • #3517 - Bump uuid and nyc
    • #3513 - Remove Ruby known failures from cross-test list
    • #3501 - Fix netstd CI .NET SDK setup
    • #3496 - Add generator paths to mergeable labels
    • #3430 - Updated projects settings in .asf.yaml (features, merge buttons, Jira autolinking)
    • #3487 - Update to setup-php 2.37.1
    • #3471 - Update build.yml
    • #3461 - Migration *.sln to *.slnx (except c++ libs)
    • #3454 - Fixing bundler on ruby-head build
    • #3440 - Removed deprecated 'publish' workflow
    • #3439 - Pin all actions to a specific SHA consistently
    • #3437 - Validate GitHub workflows against the ASF allowlist
    • #3433 - Pin actions/upload-artifact to a specific SHA consistently
    • #3433 - Bump actions/upload-artifact from 7.0.0 to 7.0.1
    • #3434 - Bump jvm from 2.3.20 to 2.3.21 in /lib/kotlin
    • #3423 - Bump uuid from 13.0.0 to 14.0.0
    • #3424 - Bump json from 2.18.1 to 2.19.2 in /lib/rb
    • #3404 - Cleanup Adobe Flex SDK installation following AS3 library removal
    • #3400 - Bump json from 2.18.1 to 2.19.2 in /test/rb
    • #3397 - Address vulnerabilities in Rack
    • #3386 - Bump lodash from 4.17.23 to 4.18.1
    • #2957 - Fix PHP cross-test server IPv4 binding
    • #3384 - Fix ubuntu-noble Docker build: modernize NodeSource GPG setup
    • #3384 - Fix ubuntu-focal Docker build: update NodeSource setup and ENV format
    • #3384 - Fix ubuntu-jammy Docker build: update NodeSource and ENV format
    • #3380 - Fix docker warnings on ENV format
    • #3380 - Override enforcement of PEP 668

    C glib

    • THRIFT-5930 - thrift_server_socket() copies Unix socket paths into sockaddr_un.sun_path without bounds checking
    • THRIFT-6088 - Add consumed byte tracking to ThriftZlibTransport read
    • THRIFT-6091 - Widen container size precheck to 64-bit in c_glib protocols
    • THRIFT-6094 - Copy buffered data not the GByteArray struct in c_glib read_slow
    • #3585 - limit recursion depth in c_glib thrift_protocol_skip
    • THRIFT-6086 - Add peer hostname validation to c_glib TLS client
    • #3393 - Fix parent class resolution in c_glib generated dispatch_call

    C++

    • THRIFT-3165 - Disable unsafe TLSv1.0 and TLSv1.1 by default
    • THRIFT-6021 - When C++ client with HTTP transport calls a oneway RPC method, it must not expect a response
    • THRIFT-6060 - C++ THttpClient does not reopen socket after server sends Connection: close
    • THRIFT-6073 - Allow injecting external SSL_CTX into C++ SSLContext
    • THRIFT-6088 - Add decompressed byte tracking to C++ TZlibTransport
    • THRIFT-6091 - Widen container size precheck to 64-bit in C++ protocols
    • THRIFT-6093 - Read the zlib transform result directly in THeaderTransport untransform
    • THRIFT-6096 - Fix info-header string bound check in THeaderTransport::readString
    • THRIFT-6092 - link UnitTests against libthriftz to resolve THeaderTransport vtable
    • THRIFT-6092 - fix off-by-ten header bounds check in readHeaderFormat
    • #3569 - Add the cpp.ref (&) annotation to the recursive exception in Recursive.thrift
    • #3519 - Preserve private_optional field order
    • #3498 - change sprintf to snprintf to eliminate security warnings on OSX
    • THRIFT-6087 - Enforce RFC 6125 wildcard placement in TSSLSocket hostname matching
    • #3508 - Replace memory-safety asserts with unconditional throws in TBufferTransports
    • #3431 - Remove another boost header from the public API

    Compiler (General)

    • #3529 - nodejs+compiler: Add opt-in BigInt support for int64 via js:bigint flag
    • #3461 - Migration *.sln to *.slnx (except c++ libs)
    • #2957 - Fix PHP cross-test server IPv4 binding
    • #3372 - Fix JavaScript exception construction implementation (ES6)

    D

    • THRIFT-6053 - Limit struct read/write recursion depth in D library
    • THRIFT-6088 - Add decompressed data size limit to D TZlibTransport

    Dart

    • THRIFT-6034 - Harden Dart protocol negative sizes
    • THRIFT-6056 - Limit struct read/write recursion depth in Dart library
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader

    Delphi

    • THRIFT-2462 - prevent possible stack overflow due to recursive syntax support
    • THRIFT-6007 - Implement MESSAGE_SIZE_LIMIT exception type for Delphi library
    • THRIFT-6091 - Compute container size precheck in 64-bit in Delphi protocols
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader

    Documentation

    • #3520 - added thrift-threat-model.md, SECURITY.md and security section to AGENTS.md

    Erlang

    • THRIFT-6030 - Harden Erlang protocol negative sizes
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader

    Go

    • THRIFT-5214 - go: Implement connection check in TSocket
    • THRIFT-5969 - Introduce gofmt for Go library
    • THRIFT-5996 - go: connection check should work for TLS sockets
    • THRIFT-6011 - Make compiled Go code formatting compatible with gofmt
    • THRIFT-6012 - Fix inverted regexp.MatchString arguments and precompile patterns in Go validator
    • THRIFT-6044 - Limit struct read/write recursion depth in Go library
    • THRIFT-6071 - Validate container size fits int32 range before narrowing conversion in TSimpleJSONProtocol
    • THRIFT-6088 - Add decompressed data size limit to TZlibTransport
    • THRIFT-6091 - Bound the container element count before the 64-bit size precheck in the Go JSON protocol
    • THRIFT-6091 - widen container size precheck to 64-bit in go protocols
    • #3599 - check wire-supplied size in simple json ReadMapBegin
    • #3497 - Bump golang.org/x/sys to 0.0.0-20220412211240-33da011f77ad
    • #3458 - Prevent concurrent calls to socketConn.Close() in Go
    • #3428 - Fix range check on 32-bit architectures
    • #3379 - Replace addr with factory in TServerSocket
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader
    • #3381 - added int range checks

    Haxe

    • THRIFT-5992 - Haxe generator: keyword escaping, stdlib-type renaming, typedef import and FIELD_ID fixes
    • THRIFT-5993 - Haxe generator: cross-package import shadowing and Haxe base-type name collisions
    • THRIFT-5994 - Haxe generator: map<bool,V>, map<double,V>, map<binary,V> and set equivalents generate invalid ObjectMap/ObjectSet
    • THRIFT-6003 - Add Haxe codegen test script and GitHub Actions CI job
    • THRIFT-6006 - Implement MESSAGE_SIZE_LIMIT exception type for Haxe library
    • THRIFT-6065 - Haxe TMemoryStream cannot be written to (fixed-size buffer, uninitialized Position)
    • THRIFT-6091 - Compute container size precheck in 64-bit in Haxe protocols
    • #3571 - Add recursion-depth round-trip test for the Haxe library
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader

    Java

    • THRIFT-6088 - Add decompressed byte tracking to Java TZlibTransport
    • #3618 - Bump jvm from 2.3.21 to 2.4.0 in /lib/kotlin
    • #3619 - Bump com.diffplug.spotless from 8.5.1 to 8.7.0 in /lib/kotlin
    • #3605 - enforce stringLengthLimit in TCompactProtocol.readBinary
    • #3574 - Bump com.diffplug.spotless from 8.4.0 to 8.5.1 in /lib/kotlin
    • #3572 - Bump org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 in /lib/kotlin
    • THRIFT-6085 - Add message byte tracking to consumeBuffer() in Java transports
    • #3434 - Bump jvm from 2.3.20 to 2.3.21 in /lib/kotlin
    • #3420 - Fix Java Spotless formatting
    • #3415 - Connect skip() to TConfiguration recursion limit
    • #3412 - Use bounded default for maxSkipDepth in TProtocolUtil
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader
    • #3396 - Enable TLS hostname verification in TNonblockingSSLSocket
    • #3390 - Enable TLS hostname verification in TSSLTransportFactory

    JavaME

    • THRIFT-6036 - Harden JavaME protocol negative sizes
    • THRIFT-6055 - Limit struct read/write recursion depth in javame library

    JavaScript

    • THRIFT-6014 - Add recursion depth limit to skip() in JavaScript library
    • THRIFT-6017 - Upgrade jsdoc from 3.6 to 4.x in lib/js and lib/ts
    • THRIFT-6020 - Address remaining npm transitive dependency vulnerabilities via audit fix (minimatch, elliptic, lodash)
    • THRIFT-6037 - Harden JavaScript (browser) protocol negative sizes
    • THRIFT-6046 - Limit struct read/write recursion depth in js library
    • #3593 - Bump shell-quote from 1.7.3 to 1.8.4 in /lib/js
    • #3591 - Bump shell-quote from 1.7.3 to 1.8.4 in /lib/ts
    • #3517 - Bump uuid and nyc
    • #3423 - Bump uuid from 13.0.0 to 14.0.0
    • #3385 - Add test for ES6 generated exception constructor
    • #3386 - Bump lodash from 4.17.23 to 4.18.1
    • #3372 - Fix JavaScript exception construction implementation (ES6)

    Kotlin

    • THRIFT-6054 - Limit struct read/write recursion depth in Kotlin library
    • #3618 - Bump jvm from 2.3.21 to 2.4.0 in /lib/kotlin
    • #3572 - Bump org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 in /lib/kotlin
    • #3434 - Bump jvm from 2.3.20 to 2.3.21 in /lib/kotlin

    Lua

    • THRIFT-6031 - Harden Lua protocol negative sizes
    • THRIFT-6049 - Limit struct read/write recursion depth in Lua library
    • #3448 - final change to make header parsing case insensitive
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader

    Markdown

    • THRIFT-6027 - Fix UB/assertion in t_markdown_generator::str_to_id (debug build crash)
    • THRIFT-6038 - Markdown generator: use .md extension by default and render @param/@return tags as table

    Mermaid

    • THRIFT-6026 - Add Mermaid diagram generator (--gen mmd)

    netstd

    • THRIFT-2462 - prevent possible stack overflow due to recursive syntax support
    • THRIFT-4534 - netcore package should not depend on Microsft.AspNetCore and Microsoft.Extensions.*
    • THRIFT-5997 - netstd generator: binary and uuid constants emitted as C# const instead of static readonly
    • THRIFT-5998 - netstd generator: duplicate DeepCopy/Equals/GetHashCode extension methods when IDL includes other IDL files
    • THRIFT-6002 - Add netstd codegen test script and GitHub Actions CI matrix job (.NET 8/9/10)
    • THRIFT-6091 - Compute container size precheck in 64-bit in netstd protocols
    • #3461 - Migration *.sln to *.slnx (except c++ libs)
    • #3416 - netcore package upgrades
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader
    • #3407 - Build netstd fuzzers during make check (without instrumentation)

    nodejs

    • THRIFT-5802 - Inconsistent Validation for transmitted values
    • THRIFT-6019 - Replace html-validator-cli with a maintained alternative in root Node.js package
    • THRIFT-6020 - Address remaining npm transitive dependency vulnerabilities via audit fix (minimatch, elliptic, lodash)
    • THRIFT-6040 - Switch JS/Node generator and runtime from Q to native Promise
    • THRIFT-6090 - Bound receive size and amortize buffer growth in Node.js transports
    • #3529 - nodejs+compiler: Add opt-in BigInt support for int64 via js:bigint flag
    • #3526 - Fix WebSocket subprotocol for ws v8
    • #3526 - Upgrade ws from 5.2.x to 8.21.0
    • #3517 - Bump uuid and nyc
    • #3389 - Add recursion depth limit to Node.js protocol skip()
    • #3385 - Fix prettier formatting in generated-exceptions test

    nodets

    • THRIFT-6016 - lib/ts: jsdoc incorrectly listed under dependencies instead of devDependencies
    • THRIFT-6017 - Upgrade jsdoc from 3.6 to 4.x in lib/js and lib/ts
    • THRIFT-6018 - Remove phantom and phantomjs-prebuilt from lib/ts devDependencies
    • THRIFT-6020 - Address remaining npm transitive dependency vulnerabilities via audit fix (minimatch, elliptic, lodash)
    • #3591 - Bump shell-quote from 1.7.3 to 1.8.4 in /lib/ts
    • #3517 - Bump uuid and nyc

    OCaml

    • THRIFT-6032 - Harden OCaml protocol negative sizes
    • THRIFT-6051 - Limit struct read/write recursion depth in OCaml library

    Perl

    • THRIFT-5064 - Introduce Perl::Critic into the SCA
    • THRIFT-6028 - Harden Perl protocol negative sizes
    • THRIFT-6048 - Limit struct read/write recursion depth in Perl library

    PHP

    • THRIFT-4171 - PHP TSocket sendTimeout is being used as connectTimeout
    • THRIFT-5757 - Unit tests for php lib
    • THRIFT-5759 - PHP mbstring.func_overload is deprecated
    • THRIFT-5929 - Fix build failure on PHP 8.5 due to removed zend_exception_get_default
    • THRIFT-5951 - PHP Unit test update
    • THRIFT-5956 - Bump minimum PHP version to 8.1
    • THRIFT-5957 - Add phpstan static analysis with CI guardrail for the PHP runtime library
    • THRIFT-5959 - Adopt PSR-12 across the PHP library and align C++ generator emission style
    • THRIFT-5960 - Adopt strict_types and native parameter / return / property types in lib/php/lib/
    • THRIFT-5961 - Migrate PHPUnit tests to attribute syntax
    • THRIFT-5962 - Upgrade PHPUnit to 10 / 11
    • THRIFT-5975 - Remove dead pre-namespace lib/php/src/{Thrift,autoload}.php
    • THRIFT-5976 - Add native types to PHP library properties (PHPDoc @var → declared types)
    • THRIFT-5977 - Apply constructor property promotion in PHP runtime library
    • THRIFT-5978 - Apply declare(strict_types=1) in PHP runtime library
    • THRIFT-5979 - Add native method types to PHP Server and Factory classes
    • THRIFT-5980 - Add native method types to PHP Transport hierarchy
    • THRIFT-5981 - Add native method types to PHP Protocol hierarchy
    • THRIFT-5983 - Replace switch with match expression in PHP TProtocol::skip and skipBinary
    • THRIFT-5984 - Cache function_exists() capability checks in PHP runtime hot paths
    • THRIFT-5985 - Add native method types to PHP Exception hierarchy
    • THRIFT-5986 - Emit declare(strict_types=1) in PHP generator output
    • THRIFT-5987 - Fix PHP protocol type-safety bugs in readBool and popContext
    • THRIFT-5988 - PHP 8.1 upgrade follow-up: float constants, README version, and TSSLServerSocket API compatibility
    • THRIFT-5989 - Work around JWT-format GITHUB_TOKEN breaking composer install in CI
    • THRIFT-5990 - Emit native return types on generated PHP struct methods
    • THRIFT-5991 - Emit native types on generated PHP struct properties and constructor
    • THRIFT-5995 - Add native method types to TBase and TException internal serialization helpers
    • THRIFT-5999 - Raise PHPStan level from 1 to 5 on PHP library
    • THRIFT-6000 - Add native method types to PHP JSON protocol helpers and context classes
    • THRIFT-6001 - Type remaining core PHP library methods and fix TException tmethod UUID drift
    • THRIFT-6004 - Emit native types on generated PHP service-level methods (Client/Interface/Processor/Rest)
    • THRIFT-6005 - Raise PHPStan level from 5 to 6 on PHP library
    • THRIFT-6008 - Add regression tests for recent PHP fixes (UUID exception fields, readBool container state, popContext underflow)
    • THRIFT-6009 - Add PSR-3 logger support and runtime deprecation warnings to PHP transports
    • THRIFT-6010 - Add PSR-18 HTTP transport (TPsrHttpClient) for PHP library
    • THRIFT-6023 - Add HTTP transport support to PHP cross-tests
    • THRIFT-6029 - Harden PHP protocol negative sizes
    • THRIFT-6047 - Limit struct read/write recursion depth in PHP library
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader
    • #2957 - Fix PHP cross-test server IPv4 binding

    Python

    • THRIFT-5915 - Python 3.12+ is not supported due to distutils
    • THRIFT-5923 - UUID support for Python
    • THRIFT-6024 - Python THeaderTransport and TZlibTransport default max frame/decompressed size should be DEFAULT_MAX_FRAME_SIZE (16384000), not HARD_MAX_FRAME_SIZE (0x3FFFFFFF)
    • THRIFT-6043 - Harden Python binary protocol negative sizes
    • THRIFT-6067 - Python: pip install fails on setuptools < 69 due to sys.exit() in setup.py (PEP 517 build backend)
    • THRIFT-6069 - suggestion for a few python perf improvements
    • THRIFT-6070 - Publish Python wheel distributions to PyPI
    • THRIFT-6088 - Add decompressed size limit to Python TZlibTransport
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader
    • #3413 - Use sslcompat hostname matcher in TSSLSocket
    • #3411 - Add default recursion depth limit to TProtocol.skip()
    • THRIFT-6083 - Add decompressed payload size limit to Python THeaderTransport
    • #3377 - Optimize Python C extension readStruct for nested structs
    • #2957 - Fix PHP cross-test server IPv4 binding

    Ruby

    • THRIFT-1916 - Compiled ruby code generates warning if field with name "fields" is present
    • THRIFT-5310 - Ruby BinaryProtocol has invalid range checks for byte and i64
    • THRIFT-5940 - Ruby generator should emit RuboCop-compliant code and SCA should lint generated Ruby
    • THRIFT-5941 - Add Ruby ext cppcheck coverage
    • THRIFT-5942 - Incorrect connection timeout handling in TSocket / TSSLSocket
    • THRIFT-5944 - Fix protocol benchmarks for Ruby and add compact protocol support
    • THRIFT-5945 - Incomplete cleanup in NonblockingServer leaks sockets
    • THRIFT-5946 - Use trusted publishing for Ruby gem releases
    • THRIFT-5948 - Reduce Ruby binary extension write-path overhead in native force_binary_encoding helper
    • THRIFT-5949 - Ruby server sockets do not enforce write timeouts on accepted connections
    • THRIFT-5950 - Add frozen_string_literal to Ruby files to reduce allocations
    • THRIFT-6013 - Add recursion depth limit to skip() in Ruby library
    • THRIFT-6015 - Allow multiplex processors to fall back to a default service for old clients
    • THRIFT-6025 - Ruby client must validate container sizes
    • THRIFT-6045 - Limit struct read/write recursion depth in Ruby library
    • THRIFT-6072 - Ruby ThreadedServer and SimpleServer crash on SSL accept errors
    • #3565 - Allow CI to fail on ruby-head
    • #3565 - Fix Ruby lib CI: drop pry/byebug, incompatible with Ruby 4.1+
    • THRIFT-6089 - Bound decompressed size for Ruby HeaderTransport ZLIB transform
    • #3429 - Updated lib/rb/README.md to highlight Ruby syntax
    • #3424 - Bump json from 2.18.1 to 2.19.2 in /lib/rb
    • #3422 - Adjust minimum Ruby version in the gemspec to match documentation, CI, and Changelog
    • #3419 - Ruby: suppress -Wdefault-const-init-field-unsafe for clang 21+
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader
    • #3395 - Remove unused Ruby client reply helpers
    • #3400 - Bump json from 2.18.1 to 2.19.2 in /test/rb
    • #3397 - Address vulnerabilities in Rack
    • #3382 - Updated Gemfile.lock to fix build issues

    Rust

    • THRIFT-5953 - Rust codegen should support forward-compatible deserialization for union fields in structs
    • THRIFT-5954 - Rust: Add read/write timeout support to TTcpChannel
    • THRIFT-6057 - Limit struct read/write recursion depth in Rust library
    • THRIFT-6058 - Rust codegen: list<UnionType> deserialization generates shadowed variable and missing Box wrapping
    • THRIFT-6059 - add crate_prefix option for cross-file import path
    • THRIFT-6064 - Rust generator does not box recursive union variant on read
    • THRIFT-6068 - Thrift release on crates.io is very stale; consider auto-publishing
    • THRIFT-6095 - enforce max_string_size on non-strict binary message name
    • THRIFT-6084 - Add byte-count limit to TCompactProtocol varint reader

    Smalltalk

    • THRIFT-6035 - Harden Smalltalk protocol negative sizes
    • THRIFT-6052 - Limit struct read/write recursion depth in Smalltalk library

    Swift - NO LONGER SUPPORTED

    Test Suite

    Open source →
  2. 0.23.0 08 Jun 2026
    Release notes

    Please head over to the official release download source:
    http://thrift.apache.org/download

    The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

    Open source →
    Release notes

    Build Process

    C glib

    • THRIFT-5931 - thrift_ssl_socket_get_ssl_error() can underflow its remaining-buffer counter and write past the stack buffer
    • THRIFT-5871 - Improve MAX_MESSAGE_SIZE check and friends

    C++

    • THRIFT-5911 - Inconsistent UUID compilation for aliased types
    • THRIFT-5912 - Assertion failed: delta > 0, file ThreadManagerTests.h, line 162
    • THRIFT-5880 - C++ TSocket on an IPv6-only system fails if you use a hostname of 127.0.0.1
    • THRIFT-3268 - warning: token pasting of ',' and __VA_ARGS__ is a GNU extension
    • THRIFT-5887 - build/cmake/ should be prepended (not appended) to CMAKE_MODULE_PATH
    • THRIFT-5878 - Add UUID support for THeaderProtocol and TProtocolTap
    • THRIFT-5898 - Unable to build Thrift as a shared library on Windows

    Contributed

    • THRIFT-5920 - Remove threadsafe warnings in thrift-maven-plugin

    Delphi

    • THRIFT-5939 - Replace GUID generation with stable UUID algorithm
    • THRIFT-5876 - Add Delphi WinHTTP client TLS1.3 support

    Go

    • THRIFT-5896 - Race condition in TServerSocket.Addr() method

    Java

    • THRIFT-5925 - UUID implementation in JAVA is not according to the Thrift Specification
    • THRIFT-5869 - Close the transport after TServerEventHandler deleteContext
    • THRIFT-5863 - Make TServerTransport able to customize the max message size
    • THRIFT-5774 - Add remote client's IP address to ServerContext in TServerEventHandler
    • THRIFT-4280 - Add async nonblocking ssl support in java client
    • THRIFT-5879 - java and kotlin cross tests fail in the GitHub action

    netstd

    nodejs

    • THRIFT-5937 - nodejs episodic generation does not handle extending services
    • THRIFT-5924 - UUID support for nodejs and nodets
    • THRIFT-4987 - TProtocolException: Bad version in readMessageBegin when using XHR client with C++ server

    nodets

    PHP

    • THRIFT-5935 - Fix deprecated non-canonical casts for PHP 8.5 compatibility
    • THRIFT-5921 - Ubuntu focal fail to run composer install
    • THRIFT-5929 - Fix build failure on PHP 8.5 due to removed zend_exception_get_default
    Open source →
  3. 0.17.0 14 Nov 2022
    Release notes

    Please head over to the official release download source:
    http://thrift.apache.org/download

    The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

    Open source →
    Release notes

    Known Open Issues (Blocker or Critical)

    • THRIFT-3877 - C++ library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
    • THRIFT-5468 - Swift service generator doesn't support oneway

    Removed Languages

    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 - upgrade travis ci base image to xenial
    • THRIFT-5572 - current travis build is broken (error timeout) within kerl erlang build step
    • THRIFT-5575 - Create a GitHub workflow using CMake

    C++

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

    Common LISP

    Compiler (General)

    • THRIFT-5506 - C26495 variable "t_field::req_" not initialized, t_field.h:40
    • THRIFT-5540 - Can't use a typedef for a container type containing enums in a constant
    • THRIFT-5588 - Remove slist/senum from IDL

    Contributed

    • THRIFT-5599 - contrib/fb303 does not compile after C++ library refactorings

    Delphi

    Documentation

    • THRIFT-5592 - Update documentation and IDL definition files for uuid type

    Erlang

    Go

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

    Haxe

    • THRIFT-5589 - Misc *.hx source files do not compile anymore
    • THRIFT-5590 - Complex initialisations (sets, maps, etc) are broken in Haxe

    HTML

    • THRIFT-5528 - Incorrect HTML link for referenced typedefs

    Java

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

    JSON

    • THRIFT-5549 - Json generator should indent properly while generating includes

    Kotlin

    netstd

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

    Node.js

    • THRIFT-5535 - Ability to support connection on OpenHarmonyOS

    Perl

    Python

    • THRIFT-2059 - Support for Python 3.4 enums
    • THRIFT-5449 - Use select.poll instead of select.select in Python TNonblockingServer if available
    • THRIFT-5467 - CannotSendHeader exception with 0.15
    • THRIFT-5595 - TSocket errors with SSLSocket

    Rust

    • THRIFT-4100 - Extract Rust read/write struct methods into a trait

    Wish List

    Open source →
  4. 0.16.0 01 Jul 2022
    Release notes

    For release 0.16.0 head over to the official release download source:
    http://thrift.apache.org/download

    The assets below are added by Github based on the release tag and they may therefore not match the checkums.

    Open source →
    Release notes

    Known Open Issues (Blocker or Critical)

    • THRIFT-3877 - C++ library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
    • THRIFT-5468 - Swift service generator doesn't support oneway

    Deprecated Languages

    Breaking Changes

    • (none)

    C++

    • THRIFT-5187 - Add support for Unix domain sockets on Windows 10 or later
    • THRIFT-5418 - C++ to_string and ostream operator not always generated
    • THRIFT-5456 - ServerSocket doesn't ignore SIGPIPE

    Common LISP

    Erlang

    • THRIFT-5471 - Introduce delimiter and app_prefix options to erl generator

    Go

    • THRIFT-5461 - Invalid golang code generated for optional set<binary> with a default value
    • THRIFT-5469 - Go lib skip map value may cause stack overflow
    • THRIFT-5490 - Improve memory efficiency in go THeader implementation
    • THRIFT-5509 - Potential connection leaks caused by the connectivity check

    Haxe

    • THRIFT-5470 - Error: Constraint check failure for haxe.ds.ObjectMap.K

    Java

    JavaScript

    • THRIFT-5448 - Wrong type mapping of thrift binary type

    netstd

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

    Perl

    • THRIFT-5055 - Fix build-cpan-dist.sh to create a CPAN distribution correctly
    • THRIFT-5416 - Allow UDP Socket Client In Perl

    Python

    • THRIFT-5454 - Python TProcessPoolServer does not spawn expected number of worker processes
    • THRIFT-5488 - SystemError when using fast binary or compact protocol in python 3.10

    Rust

    Test Suite

    • THRIFT-5450 - AppVeyor CI does not run any MSVC tests?
    Open source →
  5. 0.15.0 26 Sep 2021
    Release notes

    Known Open Issues (Blocker or Critical)

    • THRIFT-3877 - C++: library don't work with HTTP (csharp server, cpp client; need cross test enhancement)

    Removed Languages

    Breaking Changes

    • THRIFT-5381 - possible collisions at VOID type with some 3rd-party libraries on Haxe cpp targets
    • THRIFT-5396 - deprecate netstd "Async" method postfix
    • THRIFT-5453 - go: NewTSocketConf and NewTSSLSocketConf no longer return an error

    AS3

    • THRIFT-5229 - Deprecate/remove ActionScript 3 support

    Build Process

    • THRIFT-5334 - version of thrift-maven-plugin is not sync with the main project
    • THRIFT-5394 - AppVeyor CI tries to download outdated cmake
    • THRIFT-5429 - build: autotools: add foreign to AM_INIT_AUTOMAKE

    C glib

    • THRIFT-5244 - Dynamic exception specifications are deprecated in C++11[-Wdeprecated]
    • THRIFT-5265 - Add the zlib transport to c_glib
    • THRIFT-5399 - Fix socket leak in abnormal situation
    • THRIFT-5421 - Fix the problem of incorrect setting of errno in some files

    C++

    • THRIFT-5341 - Fix Old-Style-Cast, Missing override and Possible noexcept
    • THRIFT-5342 - Apply 'noexcept' attribute to Init/Copy/Move Constructors and Assignments
    • THRIFT-5355 - Do not rely on compiler and check boundaries

    D language

    • THRIFT-4303 - D deprecation warnings
    • THRIFT-4979 - Still D deprecation warnings about std.datetime.* in current master
    • THRIFT-5376 - Fix deprecation warnings in D library

    Dart

    • THRIFT-5285 - Update to dart 2, widen range on http package

    Delphi

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

    Documentation

    Erlang

    Go

    • THRIFT-5337 - Go set fields write improvement
    • THRIFT-5353 - Namespace from type is ignored in generated code
    • THRIFT-5358 - Add go.mod file(s)
    • THRIFT-5369 - Malformed payload can still cause huge allocations
    • THRIFT-5389 - Thrift compiler generates uncompilable go code around optional constants
    • THRIFT-5404 - TTransportException.Timeout would correctly return true when it's connect timeout during TSocket.Open call
    • THRIFT-5447 - Update supported Go versions before 0.15.0 release
    • THRIFT-5453 - go: NewTSocketConf should not call net.ResolveTCPAddr
    • THRIFT-5459 - Adding a new exception to an endpoint is kinda breaking in go
    • THRIFT-5453 - Defer DNS lookups from NewTSocketConf (without any timeout check) to TSocket.Open (subject to ConnectTimeout set in TConfiguration)
    • 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

    Haxe

    • THRIFT-5370 - Haxe 4 compatibility
    • THRIFT-5381 - possible collisions at VOID type with some 3rd-party libraries on Haxe cpp targets
    • THRIFT-5393 - Incorrect namespaces for included types
    • THRIFT-3036 - create official haxelib Thrift package
    • THRIFT-5413 - Int vs String in method get_size required by property size

    Java

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

    JavaScript

    • THRIFT-3508 - JS:TS Generator set all fields of the struct as required

    Lua

    • THRIFT-5417 - Fix Lua compiler omitting default values in Lua service functions
    • THRIFT-5439 - Lua Generator does not support const i64

    netstd

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

    PHP

    Python

    • THRIFT-5352 - Python: IDL exceptions with no fields can't be instantiated

    Ruby

    • THRIFT-5312 - The Ruby compilation configuration in the .gemspec file is modified to be compatible with later bundler versions.
    • THRIFT-5367 - Ruby library crashes when using GC.compact

    Rust

    • THRIFT-4098 - Support user-defined output namespaces in generated Rust modules
    • THRIFT-4101 - Make auto-generated Rust enums and unions more user-extensible
    • THRIFT-5314 - Enum forward compatibility
    • THRIFT-5363 - All-caps constant rendered incorrectly
    Open source →
  6. 0.14.2 26 Sep 2021
    Release notes

    Java

    • THRIFT-5383 - THRIFT-5383 TJSONProtocol Java readString throws on bounds check

    Go

    • THRIFT-5369 - TConfiguration.GetMaxMessageSize() now also applies to container sizes in TProtocol implementations provided
    Open source →
  7. 0.14.1 26 Sep 2021
    Release notes

    Known Open Issues (Blocker or Critical)

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

    Deprecated Languages

    Build Process

    • THRIFT-5334 - version of thrift-maven-plugin is not sync with the main project

    Delphi

    Go

    • THRIFT-5353 - Namespace from type is ignored in generated code

    Python

    • THRIFT-5352 - Python: IDL exceptions with no fields can't be instantiated

    Rust

    • THRIFT-5299 - rs implementation compact protocol seq_id should not use zigzag encoding.
    Open source →
  8. 0.14.0 26 Sep 2021
    Release notes

    Deprecated Languages

    Removed Languages

    • THRIFT-4980 - Remove deprecated C# and netcore bindings from the code base
    • THRIFT-4981 - Remove deprecated netcore bindings from the code base
    • THRIFT-4982 - Remove deprecated C# bindings from the code base

    Breaking Changes

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

    Known Open Issues (Blocker or Critical)

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

    Build Process

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

    C glib

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

    C++

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

    Compiler (General)

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

    D

    • THRIFT-5059 - Add cross tests for TZlibTransport in D
    • THRIFT-5156 - D: Fix library compilation on Windows and compiler warnings
    • THRIFT-5166 - Add WebSocket Server Transport
    • THRIFT-5184 - D: WebSocket Server Transport Fix for Firefox

    Delphi

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

    Documentation

    Go

    • 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 - Scary and spammy "error processing request: EOF" logs from TSimpleServer
    • THRIFT-4985 - Clean up logging in go library
    • THRIFT-5002 - remote client fails to compile when extending services
    • THRIFT-5019 - Multiple import same namespace for go included files
    • THRIFT-5046 - Custom tags remove db and json tags
    • THRIFT-5069 - Add TSerializerPool and TDeserializerPool, which are thread-safe versions of TSerializer and TDeserializer.
    • THRIFT-5092 - Panic on nil buffer writes
    • THRIFT-5152 - Separate timeout in TSocket
    • THRIFT-5164 - Go middleware support
    • THRIFT-5214 - go: Implement connection check in TSocket
    • THRIFT-5233 - I/O timeout handling in go library
    • THRIFT-5240 - The context passed into server handler implementations will be canceled when we detected that the client closed the connection.
    • THRIFT-5257 - Go THeader implementation doesn't handle endOfFrame correctly
    • THRIFT-5270 - Go library unit test is broken in go 1.15
    • THRIFT-5278 - Expose API to use THeader+TCompactProtocol in go library client code
    • THRIFT-5279 - Cleanups/small optimizations for go's serializer/deserializer code
    • THRIFT-5294 - Go: TSimpleJSONProtocol could panic on WriteMessageEnd without matching WriteMessageBegin
    • 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 - Proposal: Raise minimal supported Go version with upcoming 0.14.0 release

    Haskell

    • THRIFT-5072 - Haskell generator fails to distinguish between multiple enum types with conflicting enum identifiers
    • THRIFT-4959 - cabal.exe: --enable-tests was specified, but tests can't be enabled in a remote package
    • THRIFT-5211 - Handle incomplete reads correctly

    Java

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

    JavaScript

    • THRIFT-5234 - Fix a number of js/ts generation issues

    Lua

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

    Markdown

    netstd

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

    Node.js

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

    Perl

    • THRIFT-5050 - Fix MemoryBuffer.pm to raise a proper exception if no data is available
    • THRIFT-5066 - Implement testBinary invocation in TestClient.pl

    PHP

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

    Python

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

    Ruby

    • THRIFT-5281 - Some warning messages need to be fixed
    • THRIFT-4707 - Enable maintainers to upload newer versions of Ruby Gem of Thrift
    • THRIFT-5061 - Pin Ruby's rack version to 2.0.8
    • THRIFT-5100 - Gem::InstallError: byebug requires Ruby version >= 2.4.0.
    • THRIFT-5266 - release ruby library thrift 0.13.0

    Rust

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

    Swift

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

    Test Suite

    • THRIFT-4974 - Add cross test for Python's Unix domain socket transport
    • THRIFT-5145 - Streamline --pipe and --named-pipe options in the code base
    • THRIFT-5171 - Fix maven-ant-tasks to use HTTPS instead of HTTP

    TypeScript) - Library

    • THRIFT-5003 - Websocket Connection in Browsers with nodejs code

    Tutorial

    Open source →
  9. 0.13.0 01 Nov 2019
    Release notes

    New Languages

    • (none)

    Deprecated Languages

    • THRIFT-4723 - CSharp and Netcore targets are deprecated and will be removed with the next release) - use NetStd instead.

    Removed Languages

    • THRIFT-4719 - Cocoa language was removed) - use swift instead.

    Breaking Changes

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

    Known Issues (Blocker or Critical)

    • THRIFT-3877 - C++: library don't work with HTTP (csharp server, cpp client; need cross test enhancement)

    As3

    • THRIFT-4784 - Thrift should throw when skipping over unexpected data

    Build Process

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

    C glib

    • THRIFT-4842 - Multiplexed protocol has a memory leak in set c_glib
    • THRIFT-4878 - c_glib ThriftSocket support for unix domain sockets
    • THRIFT-4950 - fix bind print error and Macro call errors thrift_server_socket

    C#

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

    C++

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

    cocoa

    Open source →
  10. 0.12.0 27 Dec 2018
    Release notes

    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 - Rust enum variants are now camel-cased instead of uppercased to conform to Rust naming conventions
    • THRIFT-4448 - Support for golang 1.6 and earlier has been dropped.
    • THRIFT-4474 - PHP now uses the PSR-4 loader by default instead of class maps.
    • THRIFT-4532 - method signatures changed in the compiler's t_oop_generator.
    • THRIFT-4648 - The C (GLib) compiler's handling of namespaces has been improved.

    Known Issues (Blocker or Critical)

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

    Build Process

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

    c_glib

    • THRIFT-4648 - The C (GLib) compiler's handling of namespaces has been improved.
    • THRIFT-4622 - glibC compilation issue
    • THRIFT-4671 - c glib is unable to handle client close unexpectedly

    cl (new language support in 0.12.0)

    csharp

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

    cpp

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

    compiler

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

    dlang

    • THRIFT-4478 - Thrift will not build with dlang 2.078 or later
    • THRIFT-4503 - dlang servers logError on normal client disconnection
    • THRIFT-4308 - D language docker images need demios for libevent and openssl fixed to re-enable make cross on dlang

    dart

    delphi

    • THRIFT-4562 - Calling wrong exception CTOR leads to "call failed: unknown result" instead of the real exception being thrown
    • THRIFT-4554 - uncompileable code with member names that are also types under specific conditions
    • THRIFT-4422 - Add Async implementation via IFuture
    • THRIFT-4485 - Possible invalid ptr AV with overlapped read/write on pipes
    • THRIFT-4549 - Thrift exceptions should derive from TException
    • THRIFT-4540 - buffered transport broken when trying to re-open a formerly closed transport
    • THRIFT-4473 - Move Thrift.Console.pas out of the Library
    • THRIFT-4490 - Allow a default service as fallback for multiplex processors connected by old clients
    • THRIFT-4454 - Large writes/reads may cause range check errors in debug mode
    • THRIFT-4461 - Compiler directive should match Delphi XE4
    • THRIFT-4462 - First line in Console duplicated
    • THRIFT-4642 - FPU ctrl word settings may cause an unexpected "denormalized" error
    • THRIFT-4589 - HTTP client timeouts are a) incomplete and b) not used at all
    • THRIFT-4590 - running the test client using HTTP transport leads to "CoInitialize not called"

    erlang

    • THRIFT-4497 - Erlang records should use map() for map type
    • THRIFT-4495 - Erlang records should allow 'undefined' for non-required fields
    • THRIFT-4580 - Fix erlang tutorial unpack on Windows
    • THRIFT-4582 - Ubuntu Xenial erlang 18.3 "make check" fails

    golang

    • THRIFT-4448 - Support for golang 1.6 and earlier has been dropped.
    • THRIFT-4253 - Go generator assigns strings to field in const instead of pointers.
    • THRIFT-4573 - Unions Field Count Does Not Consider Binary
    • THRIFT-4447 - Golang: Panic on p.c.Call when using deprecated initializers
    • THRIFT-4650 - Required field incorrectly marked as set when fieldType does not match
    • THRIFT-4486 - Golang: -remote.go client cleanup
    • THRIFT-4537 - TSimpleServer can exit Accept loop with lock still acquired
    • THRIFT-4516 - Add support for go 1.10
    • THRIFT-4421 - golang tests rely on gomock, which has change behaviour, causing tests to fail
    • THRIFT-4626 - Communication crash when using binary/compact protocol and zlib transport
    • THRIFT-4659 - golang race detected when closing listener socket

    haskell

    • THRIFT-4634 - Haskell builds with older cabal cannot reconcile complex version requirements

    java

    • THRIFT-4259 - Thrift does not compile due to Ant Maven task errors
    • THRIFT-1418 - Compiling Thrift from source: Class org.apache.tools.ant.taskdefs.ConditionTask doesn't support the nested "typefound" element
    • THRIFT-4530 - proposal: add nullability annotations to generated Java code
    • THRIFT-4614 - Generate missing @Nullable annotations for Java iterator getters
    • THRIFT-4555 - Getter of binary field in Java creates unnecessary copy
    • THRIFT-3983 - libthrift is deployed on central with pom packaging instead of jar
    • THRIFT-4294 - Java Configure Fails for Ant >= 1.10
    • THRIFT-4178 - Java libraries missing from package when using cmake
    • THRIFT-4120 - pom files are not generated or provided in the build
    • THRIFT-1507 - Maven can't download resource from central when behind a proxy and won't use local repository
    • THRIFT-4556 - Optional rethrow of unhandled exceptions in java processor
    • THRIFT-4337 - Able to set keyStore and trustStore as InputStream in the TSSLTransportFactory.TSSLTransportParameters
    • THRIFT-4566 - Pass message of unhandled exception to optional rethrow.
    • THRIFT-4506 - Remove assertion in Java SASL code that would be ignored in release builds
    • THRIFT-4470 - Include popular IDE file templates to gitignore
    • THRIFT-4429 - Make TThreadPoolServer.executorService_ available in inherited classes and refactor methods to be able customization
    • THRIFT-3769 - Fix logic of THRIFT-2268
    • THRIFT-4494 - Increase Java Socket Buffer Size
    • THRIFT-4499 - Remove Magic Number In TFIleTransport

    js

    • THRIFT-4406 - JavaScript: Use modern Promise implementations
    • THRIFT-4625 - let / const variable decorators for es6 compiler
    • THRIFT-4653 - ES6 Classes
    • THRIFT-4592 - JS: readI32 performance on large arrays is very poor in Chrome
    • THRIFT-4509 - js and nodejs libraries need to be refreshed with current libraries
    • THRIFT-4403 - thrift.js: Incorrect usage of 'this' in TWebSocketTransport.__onOpen
    • THRIFT-4436 - Deserialization of nested list discards content
    • THRIFT-4437 - JS WebSocket client callbacks invoked twice on parallel requests
    • THRIFT-4679 - Duplicate declaration of InputBufferUnderrunError in lib/nodejs/lib/thrift/json_protocol.js
    • THRIFT-4551 - Add prettier for consistent JS code formatting

    lua

    • THRIFT-4591 - lua client uses two write() calls per framed message send
    • THRIFT-3863 - Can't "make install" Lua Library

    netcore

    • THRIFT-4524 - .NET Core Server doesn't close properly when cancelled
    • THRIFT-4434 - Update .NET Core components, add tests for .Net Core library and .Net Core compiler, fix bugs and build process
    • THRIFT-4446 - JSONProtocol Base64 Encoding Trims Padding

    node.js

    • THRIFT-4225 - Error handling malformed arguments leaks memory, corrupts transport buffers causing next RPC to fail
    • THRIFT-3950 - Memory leak while calling oneway method
    • THRIFT-3143 - add typescript directory support
    • THRIFT-4564 - TBufferedTransport can leave corrupt data in the buffer
    • THRIFT-4647 - Node.js Fileserver webroot path
    • THRIFT-4489 - Unix domain socket support for NodeJS client
    • THRIFT-4443 - node.js json_protocol throws error in skip function
    • THRIFT-4604 - NodeJS: Expose Int64 from browser.js for consumption by browser
    • THRIFT-4480 - NodeJS warning on binary_protocol writeMessageEnd when seqid = 0

    perl

    • THRIFT-4382 - Replace the use of Perl Indirect Object Syntax calls to new()
    • THRIFT-4471 - Thrift CPAN release is missing Makefile.PL and the clients are unable to build the module
    • THRIFT-4416 - Perl CPAN Packaging Improvements

    php

    python

    • THRIFT-4670 - Twisted, slots, and void method fails with "object has no attribute 'success'"
    • THRIFT-4464 - Potentially server-crashing typo in Python TNonblockingServer
    • THRIFT-4548 - Supporting TBinaryProtocolAccelerated protocol when using TMultiplexedProcessor in Python
    • THRIFT-4577 - Outdated cipher string in python unit test
    • THRIFT-4505 - python build on Vagrant Windows boxes fails
    • THRIFT-4621 - THeader for Python
    • THRIFT-4668 - make socket backlog configurable for python
    • THRIFT-4561 - Python: cleanup socket timeout settings

    ruby

    • THRIFT-4289 - Thrift RSpec test suite fails with Ruby 2.4.x due to Fixnum deprecation
    • THRIFT-4342 - Support ruby rspec 3
    • THRIFT-4525 - Add ssl socket option to ruby cross tests
    • THRIFT-4450 - Add seek support to TCompactInputProtocol in Rust
    • THRIFT-4631 - Codegen Creates Invalid Ruby for Recursive Structs
    • THRIFT-4472 - Fix the genspec for ruby so it does not complain about an invalid license

    rust

    • THRIFT-4662 - Rust const string calls function at compile time
    • THRIFT-4661 - Rust enum name wrong case in generated structs
    • THRIFT-4617 - Avoid generating conflicting struct names in Rust code
    • THRIFT-4529 - Rust generation should include #![allow(non_snake_case)] or force conform to Rust style guidelines
    • THRIFT-4390 - Rust binary protocol and buffered transport cannot handle writes above 4096 bytes
    • THRIFT-4419 - Rust framed transport cannot handle writes above 4096 bytes
    • THRIFT-4658 - Rust's TBinaryInputProtocol fails when strict is false
    • THRIFT-4187 - Dart -> Rust Framed cross tests fail
    • THRIFT-4664 - Rust cannot create ReadHalf/WriteHalf to implement custom tranports
    • THRIFT-4665 - Keep Rust library up-to-date on crates.io

    swift (new language support in 0.12.0)

    test suite

    • THRIFT-4515 - Gracefully shutdown cross-test servers to fully test teardown
    • THRIFT-4085 - Add .NET Core to the make cross standard test suite
    • THRIFT-4358 - Add unix domain sockets in ruby to cross test) - code exists

    typescript (new language support in 0.12.0)

    Open source →
  11. 0.0.4 11 May 2017

    Nothing published for this version

  12. 0.0.3 07 May 2017 withdrawn

    Nothing published for this version

  13. 0.0.2 01 May 2017

    Nothing published for this version

  14. 0.0.1 10 Apr 2017

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive