All Versions
19
Latest Version
Avg Release Cycle
360 days
Latest Release
-
Changelog History
Page 1
Changelog History
Page 1
-
v0.17.0 Changes
Go
- ๐ THRIFT-5539 -
TDebugProtocol.DuplicateTo
is now deprecated,TDuplicateToProtocol
has been provided as the replacement
- ๐ THRIFT-5539 -
-
v0.16.0 Changes
๐ 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
- ๐ THRIFT-5476 - Deprecate Common Lisp support
๐ฅ 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
- ๐ THRIFT-5476 - Deprecate Common Lisp support
Erlang
- THRIFT-5471 - Introduce delimiter and app_prefix options to erl generator
Go
- 0๏ธโฃ THRIFT-5461 - Invalid golang code generated for optional set 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
- ๐ THRIFT-5443 - add support for partial deserialization of Thrift
- THRIFT-5486 - fix issues found by spotbugs
- โก๏ธ THRIFT-5512 - Update java dependencies
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
- THRIFT-5452 - Make server optional
- THRIFT-5457 - Travis fails consistently on a Rust dependency
โ Test Suite
- ๐ท THRIFT-5450 - AppVeyor CI does not run any MSVC tests?
-
v0.15.0 Changes
๐ 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
- ๐ THRIFT-5229 - ActionScript 3 support dropped
- ๐ THRIFT-5347 - Haskell support dropped
๐ฅ 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
- THRIFT-5332 - Question: list all the reserved words in thrift doc
- โก๏ธ THRIFT-5348 - Update debian/copyright
Erlang
- ๐ THRIFT-5377 - Remove Erlang R16 support
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
- ๐ THRIFT-5347 - Deprecate Haskell bindings
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
- 0๏ธโฃ 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
- 0๏ธโฃ 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
- 0๏ธโฃ THRIFT-5436 - Timeout.Infinite is not a good default
PHP
- THRIFT-5318 - PHP 8 compatible version of binary protocol
- THRIFT-5440 - Add php8 to composer.json
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
-
v0.14.2 Changes
Java
- THRIFT-5383 - THRIFT-5383 TJSONProtocol Java readString throws on bounds check
Go
- THRIFT-5369 - No longer pre-allocating the whole container (map/set/list) in compiled go code to avoid huge allocations on malformed messages
-
v0.14.1 Changes
๐ 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
- ๐ THRIFT-5347 - Deprecate Haskell bindings
๐ Build Process
- ๐ THRIFT-5334 - version of thrift-maven-plugin is not sync with the main project
Delphi
- ๐ THRIFT-5350 - 0.14.0 fails to build on non-x86
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.
-
v0.14.0 Changes
๐ Deprecated Languages
- ๐ THRIFT-5229 - Deprecate ActionScript 3 support
โ 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.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.ToString() raises an exception for enum values outside range
- THRIFT-5304 - TWinHTTPClientImpl may incorrectly report that the message size is reached
๐ Documentation
- ๐ THRIFT-5037 - Documentation for TConfiguration
- THRIFT-5065 - Fix broken links in the IDL document
- โ THRIFT-5074 - Cleanup test suite command line options
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
- THRIFT-5289 - Add markdown compiler
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
- THRIFT-4972 - Add Makefile.am to the Perl tutorial
- THRIFT-4975 - Add Makefile.am to the PHP tutorial
- THRIFT-5051 - Fix Python tutorials to address THRIFT-4002
- THRIFT-5052 - Make the Go tutorial executable to the end
- THRIFT-5122 - Fix memory leak in c_glib tutorial server
-
v0.13.0 Changes
October 16, 2019๐ 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
- ๐ THRIFT-4719 - Remove cocoa language support
-
v0.12.0 Changes
December 27, 2018๐ 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.
- 0๏ธโฃ 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
- 0๏ธโฃ THRIFT-3108 - haskell: Defaulted struct parameters on a service generates invalid Haskell
- ๐ป THRIFT-3990 - nodejs: Exception swallowed by deserialization function
- THRIFT-4214 - nodejs: map 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)
- ๐ THRIFT-82 - Common Lisp support
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
- THRIFT-4646 - Effective Dart and Exceptions
- THRIFT-4439 - Shouldn't download dart.deb directly.
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
- 0๏ธโฃ 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
- 0๏ธโฃ THRIFT-4474 - PHP generator use PSR-4 default
- THRIFT-4463 - PHP generated code match PSR-2
- THRIFT-4373 - Extending Thrift class results in "Attempt serialize from non-Thrift object"
- THRIFT-4354 - TSocket block on read
- THRIFT-4423 - migrate php library to psr-4
- โ THRIFT-4656 - infinite loop in latest PHP library
- THRIFT-4477 - TBufferedTransport must have underlying transport
- โ THRIFT-4475 - lib/php/test should be checked for PSR-2
- THRIFT-4498 - add phpcs back
- THRIFT-4460 - php library use PSR-2
- THRIFT-4641 - TCurlClient doesn't check for HTTP status code
- THRIFT-4645 - TCurlClient: show actual error message when throwing TTransportException
- ๐ THRIFT-4674 - Add stream context support into PHP/THttpClient
- THRIFT-4459 - reduce php library directory depth
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)
- THRIFT-3773 - Swift Library
โ 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)
- ๐ THRIFT-3143 - add typescript directory support
-
v0.11.0 Changes
December 03, 2017๐ Released 2017-DEC-27
Sub-task
- THRIFT-2733 - Erlang coding standards
- THRIFT-2740 - Perl coding standards
- ๐ป THRIFT-3610 - Streamline exception handling in Python server handler
- ๐ป THRIFT-3686 - Java processor should report internal error on uncaught exception
- THRIFT-4049 - Skip() should throw TProtocolException.INVALID_DATA on unknown data types
- THRIFT-4053 - Skip() should throw TProtocolException.INVALID_DATA on unknown data types
- THRIFT-4136 - Align is_binary() method with is_string() to simplify those checks
- THRIFT-4137 - Fix remaining undefined behavior invalid vptr casts in Thrift Compiler
- THRIFT-4138 - Fix remaining undefined behavior invalid vptr casts in C++ library
- ๐ THRIFT-4296 - Fix Ubuntu Xenial build environment for the python language
- ๐ THRIFT-4298 - Fix Ubuntu Xenial build environment for the go 1.6 language
- ๐ THRIFT-4299 - Fix Ubuntu Xenial build environment for the D language
- ๐ณ THRIFT-4300 - Fix make cross in Ubuntu Xenial docker environment, once all language support issues are fixed
- โ THRIFT-4302 - Fix Ubuntu Xenial make cross testing for lua and php7
- โก๏ธ THRIFT-4398 - Update EXTRA_DIST for "make dist"
๐ Bug
- ๐ง THRIFT-381 - Fail fast if configure detects C++ problems
- ๐ THRIFT-1677 - MinGW support broken
- THRIFT-1805 - Thrift should not swallow ALL exceptions
- ๐ THRIFT-2026 - Fix TCompactProtocol 64 bit builds
- THRIFT-2642 - Recursive structs don't work in python
- ๐ THRIFT-2889 - stable release 0.9.2, erlang tutorial broken
- ๐ THRIFT-2913 - Ruby Server Thrift::ThreadPoolServer should serve inside a thread
- THRIFT-2998 - Node.js: Missing header from http request
- THRIFT-3000 - .NET implementation has trouble with mixed IP modes
- ๐ THRIFT-3281 - Travis CI build passed but the log says BUILD FAILED
- THRIFT-3358 - Makefile:1362: *** missing separator. Stop.
- ๐ป THRIFT-3600 - Make TTwisted server send exception on unexpected handler error
- ๐ป THRIFT-3602 - Make Tornado server send exception on unexpected handler error
- THRIFT-3657 - D TFileWriterTransport close should use non-priority send
- 0๏ธโฃ THRIFT-3700 - Go Map has wrong default value when optional
- THRIFT-3703 - Unions Field Count Does Not Consider Map/Set/List Fields
- ๐ฒ THRIFT-3730 - server log error twice
- THRIFT-3778 - go client can not pass method parameter to server of other language if no field_id is given
- ๐ THRIFT-3784 - thrift-maven-plugin generates invalid include directories for IDL in dependency JARs
- ๐ป THRIFT-3801 - Node Thrift client throws exception with multiplexer and responses that are bigger than a single buffer
- THRIFT-3821 - TMemoryBuffer buffer may overflow when resizing
- ๐ THRIFT-3832 - Thrift version 0.9.3 example on Windows, Visual Studio, linking errors during compiling
- THRIFT-3847 - thrift/config.h includes a #define for VERSION which will likely conflict with existing user environment or code
- ๐ THRIFT-3873 - Fix various build warnings when using Visual Studio
- ๐ง THRIFT-3891 - TNonblockingServer configured with more than one IO threads does not always return from serve() upon stop()
- THRIFT-3892 - Thrift uses TLS SNI extension provided by OpenSSL library. Older version of OpenSSL(< 0.9.8f) may create problem because they do not support 'SSL_set_tlsext_host_name()'.
- ๐ THRIFT-3895 - Build fails using Java 1.8 with Ant < 1.9
- THRIFT-3896 - map data with number string key cannot access that deserialized by php extension
- THRIFT-3938 - Python TNonblockingServer does not work with SSL
- THRIFT-3944 - TSSLSocket has dead code in checkHandshake
- THRIFT-3946 - Java 1.5 compatibility broken for binary fields (java5 option)
- THRIFT-3960 - Inherited services in Lua generator are not named correctly
- ๐ THRIFT-3962 - Ant build.xml broken on Windows for Java library
- THRIFT-3963 - Thrift.cabal filename does not match module name
- THRIFT-3967 - gobject/gparam.h:166:33: warning: enumerator value for โG_PARAM_DEPRECATEDโ is not an integer constant expression
- THRIFT-3968 - Deserializing empty string/binary fields
- โ THRIFT-3974 - Using clang-3.8 and ThreadSanitizer on the concurrency_test claims bad PThread behavior
- THRIFT-3984 - PHP7 extension causes segfault
- THRIFT-4008 - broken ci due to upstream dependency versioning break
- THRIFT-4009 - Use @implementer instead of implements in TTwisted.py
- THRIFT-4010 - Q.fcall messing up with this pointer inside called function
- THRIFT-4011 - Sets of Thrift structs generate Go code that can't be serialized to JSON
- THRIFT-4012 - Python Twisted implementation uses implements, not compatible with Py3
- THRIFT-4014 - align C# meta data in AssemblyInfo.cs
- THRIFT-4015 - Fix wrongly spelled "Thirft"s
- โ THRIFT-4016 - testInsanity() impl does not conform to test spec in ThriftTest.thrift
- THRIFT-4023 - Skip unexpected field types on read/write
- THRIFT-4024 - Skip() should throw on unknown data types
- THRIFT-4026 - TSSLSocket doesn't work with Python < 2.7.9
- ๐ THRIFT-4029 - Accelerated protocols do not build from thrift-py 0.10.0 on PyPI
- ๐ THRIFT-4031 - Go plugin generates invalid code for lists of typedef'ed built-in types
- ๐ THRIFT-4033 - Default build WITH_PLUGIN=ON for all builds results in packaging errors
- ๐ THRIFT-4034 - CMake doesn't work to build compiler on MacOS
- ๐ THRIFT-4036 - Add .NET Core environment/build support to the docker image
- THRIFT-4038 - socket check: checking an unsigned number against >= 0 never fails
- โ THRIFT-4042 - ExtractionError when using accelerated thrift in a multiprocess test
- ๐ฆ THRIFT-4043 - thrift perl debian package is placing files in the wrong place
- ๐ THRIFT-4044 - Build job 17 failing on every pull request; hspec core (haskell) 2.4 issue
- ๐ THRIFT-4046 - MinGW with gcc 6.2 does not compile on Windows
- ๐จ THRIFT-4060 - Thrift printTo ostream overload mechanism breaks down when types are nested
- ๐ THRIFT-4062 - Remove debug print from TServiceClient
- ๐ฆ THRIFT-4065 - Document Perl ForkingServer signal restriction imposed by THRIFT-3848 and remove unnecessary code
- THRIFT-4068 - A code comment in Java ServerSocket is wrong around accept()
- THRIFT-4073 - enum files are still being generated with unused imports
- ๐ THRIFT-4076 - Appveyor builds failing because ant 1.9.8 was removed from apache servers
- THRIFT-4077 - AI_ADDRCONFIG redefined after recent change to PlatformSocket header
- THRIFT-4079 - Generated perl code that returns structures from included thrift files is missing a necessary use clause
- ๐ป THRIFT-4087 - Spurious exception destroying TThreadedServer because of incorrect join() call
- ๐ THRIFT-4102 - TBufferedTransport performance issue since 0.10.0
- โ THRIFT-4106 - concurrency_test fails randomly
- ๐ THRIFT-4108 - c_glib thrift ssl has multiple bugs and deprecated functions
- ๐ง THRIFT-4109 - Configure Script uses string comparison for versions
- THRIFT-4129 - C++ TNonblockingServer fd leak when failing to dispatch new connections
- THRIFT-4131 - Javascript with WebSocket handles oneway methods wrong
- THRIFT-4134 - Fix remaining undefined behavior invalid vptr casts
- THRIFT-4140 - Use of non-thread-safe function gmtime()
- ๐ณ THRIFT-4141 - Installation of haxe in docker files refers to a redirect link and fails
- THRIFT-4147 - Rust: protocol should accept transports with non-static lifetime
- ๐ THRIFT-4148 - [maven-thrift-plugin] compile error while import a thrift in dependency jar file.
- ๐ฒ THRIFT-4149 - System.out pollutes log files
- THRIFT-4154 - PHP close() of a TSocket needs to close any type of socket
- THRIFT-4158 - minor issue in README-MSYS2.md
- ๐ THRIFT-4159 - Building tests fails on MSYS2 (MinGW64) due to a (small?) linker error
- THRIFT-4160 - TNonblocking server fix use of closed/freed connections
- THRIFT-4161 - TNonBlocking server using uninitialized event in error paths
- THRIFT-4162 - TNonBlocking handling of TSockets in error state is incorrect after fd is closed
- THRIFT-4164 - Core in TSSLSocket cleanupOpenSSL when destroying a mutex used by openssl
- ๐ THRIFT-4165 - C++ build has many warnings under c++03 due to recent changes, cmake needs better platform-independent language level control
- ๐ THRIFT-4166 - Recent fix to remove boost::lexical_cast usage broke VS2010
- THRIFT-4167 - Missing compile flag
- ๐ THRIFT-4170 - Support lua 5.1 or earlier properly for object length determination
- THRIFT-4172 - node.js tutorial client does not import assert, connection issues are not handled properly
- THRIFT-4177 - Java compiler produces deep copy constructor that could make shallow copy instead
- ๐ THRIFT-4184 - Building on Appveyor: invalid escape sequence \L
- THRIFT-4185 - fb303 counter encoding fix
- THRIFT-4189 - Framed/buffered transport Dispose() does not dispose the nested transport
- 0๏ธโฃ THRIFT-4193 - Lower the default maxReadBufferBytes for non-blocking servers
- THRIFT-4195 - Compilation to GO produces broken code
- THRIFT-4196 - Cannot generate recursive Rust types
- THRIFT-4204 - typo in compact spec
- THRIFT-4206 - Strings in container fields are not decoded properly with py:dynamic and py:utf8strings
- THRIFT-4208 - C# NamedPipesServer not really working in some scenarios
- THRIFT-4211 - Fix GError glib management under Thrift
- THRIFT-4212 - c_glib flush tries to close SSL even if socket is invalid
- ๐ THRIFT-4213 - Travis build fails at curl -sSL https://www.npmjs.com/install.sh | sh
- THRIFT-4215 - Golang TTransportFactory Pattern Squelches Errors
- THRIFT-4216 - Golang Http Clients Do Not Respect User Options
- THRIFT-4218 - Set TCP_NODELAY for PHP client socket
- THRIFT-4219 - Golang HTTP clients created with Nil buffer
- ๐ป THRIFT-4231 - TJSONProtocol throws unexpected non-Thrift-exception on null strings
- ๐ง THRIFT-4232 - ./configure does bad ant version check
- ๐ THRIFT-4234 - Travis build fails cross language tests with "Unsupported security protocol type"
- THRIFT-4237 - Go TServerSocket Race Conditions
- THRIFT-4240 - Go TSimpleServer does not close properly
- THRIFT-4243 - Go TSimpleServer race on wait in Stop() method
- THRIFT-4245 - Golang TFramedTransport's writeBuffer increases if writes to transport failed
- THRIFT-4246 - Sequence number mismatch on multiplexed clients
- THRIFT-4247 - Compile fails with openssl 1.1
- THRIFT-4248 - Compile fails - strncpy, memcmp, memset not declared in src/thrift/transport/TSSLSocket.cpp
- THRIFT-4251 - Java Epoll Selector Bug
- THRIFT-4257 - Typescript async callbacks do not provide the correct types
- THRIFT-4258 - Boost/std thread wrapping faultiness
- THRIFT-4260 - Go context generation issue. Context is parameter in Interface not in implementation
- THRIFT-4261 - Go context generation issue: breaking change in generated code regarding thrift.TProcessorFunction interface
- THRIFT-4262 - Invalid binding to InterlockedCompareExchange64() with 64-bit targets
- ๐ THRIFT-4263 - Fix use after free bug for thrown exceptions
- THRIFT-4266 - Erlang library throws during skipping fields of composite type (maps, lists, structs, sets)
- THRIFT-4268 - Erlang library emits debugging output in transport layer
- ๐ THRIFT-4273 - erlang:now/0: Deprecated BIF.
- โ THRIFT-4274 - Python feature tests for SSL/TLS failing
- THRIFT-4279 - Wrong path in include directive in generated Thrift sources
- THRIFT-4283 - TNamedPipeServer race condition in interrupt
- THRIFT-4284 - File contains a NBSP: lib/nodejs/lib/thrift/web_server.js
- 0๏ธโฃ THRIFT-4290 - C# nullable option generates invalid code for non-required enum field with default value
- ๐ THRIFT-4292 - TimerManager::remove() is not implemented
- โฑ THRIFT-4307 - Make ssl-open timeout effective in golang client
- ๐ป THRIFT-4312 - Erlang client cannot connect to Python server: exception error: econnrefused
- THRIFT-4313 - Program code of the Erlang tutorial files contain syntax errors
- THRIFT-4316 - TByteBuffer.java will read too much data if a previous read returns fewer bytes than requested
- ๐ป THRIFT-4319 - command line switch for "evhttp" incorrectly resolved to anon pipes
- THRIFT-4323 - range check errors or NPE in edge cases
- THRIFT-4324 - field names can conflict with local vars in generated code
- ๐ THRIFT-4328 - Travis CI builds are timing out (job 1) and haxe builds are failing since 9/11
- THRIFT-4329 - c_glib Doesn't have a multiplexed processor
- THRIFT-4331 - C++: TSSLSockets bug in handling huge messages, bug in handling polling
- THRIFT-4332 - Binary protocol has memory leaks
- 0๏ธโฃ THRIFT-4334 - Perl indentation incorrect when defaulting field attribute to a struct
- THRIFT-4339 - Thrift Framed Transport in Erlang crashes server when client disconnects
- THRIFT-4340 - Erlang fix a crash on client close
- 0๏ธโฃ THRIFT-4355 - Javascript indentation incorrect when defaulting field attribute to a struct
- THRIFT-4356 - thrift_protocol call Transport cause Segmentation fault
- THRIFT-4359 - Haxe compiler looks like it is producing incorrect code for map or set key that is binary type
- THRIFT-4362 - Missing size-check can lead to huge memory allocation
- THRIFT-4364 - Website contributing guide erroneously recommends submitting patches in JIRA
- THRIFT-4365 - Perl generated code uses indirect object syntax, which occasionally causes compilation errors.
- THRIFT-4367 - python TProcessor.process is missing "self"
- ๐ THRIFT-4370 - Ubuntu Artful cppcheck and flake8 are more stringent and causing SCA build job failures
- THRIFT-4372 - Pipe write operations across a network are limited to 65,535 bytes per write.
- THRIFT-4374 - cannot load thrift_protocol due to undefined symbol: ZTVN10cxxabiv120_si_class_type_infoE
- THRIFT-4375 - TMemory throw bad_alloc due to counter overflow
- THRIFT-4376 - Coverity high impact issue resolution
- THRIFT-4377 - haxe. socket handles leak in TSimpleServer
- THRIFT-4381 - Wrong isset bitfield value after transmission
- THRIFT-4385 - Go remote client -u flag is broken
- ๐ THRIFT-4392 - compiler/..../plugin.thrift structs mis-ordered blows up ocaml generator
- ๐ THRIFT-4395 - Unable to build in the ubuntu-xenial docker image: clap 2.28 requires Rust 1.20
- THRIFT-4396 - inconsistent (or plain wrong) version numbers in master/trunk
๐ Documentation
- ๐ง THRIFT-4157 - outdated readme about Haxe installation on Linux
๐ Improvement
- THRIFT-105 - make a thrift_spec for a structures with negative tags
- THRIFT-281 - Cocoa library code needs comments, badly
- ๐ THRIFT-775 - performance improvements for Perl
- THRIFT-2221 - Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
- ๐ THRIFT-2364 - OCaml: Use Oasis exclusively for build process
- 0๏ธโฃ THRIFT-2504 - TMultiplexedProcessor should allow registering default processor called if no service name is present
- ๐ THRIFT-3207 - Enable build with OpenSSL 1.1.0 series
- ๐ THRIFT-3272 - Perl SSL Authentication Support
- THRIFT-3357 - Generate EnumSet/EnumMap where elements/keys are enums
- ๐ THRIFT-3369 - Implement SSL/TLS support on C with c_glib
- THRIFT-3467 - Go Maps for Thrift Sets Should Have Values of Type struct{}
- THRIFT-3580 - THeader for Haskell
- ๐ THRIFT-3627 - Missing basic code style consistency of JavaScript.
- ๐ THRIFT-3706 - There's no support for Multiplexed protocol on c_glib library
- THRIFT-3766 - Add getUnderlyingTransport() to TZlibTransport
- THRIFT-3776 - Go code from multiple thrift files with the same namespace
- ๐ THRIFT-3823 - Escape documentation while generating non escaped documetation
- THRIFT-3854 - allow users to clear read buffers
- ๐ THRIFT-3859 - Unix Domain Socket Support in Objective-C
- ๐จ THRIFT-3921 - C++ code should print enums as strings
- THRIFT-3926 - There should be an error emitted when http status code is not 200
- THRIFT-4007 - Micro-optimization of TTransport.py
- ๐ป THRIFT-4040 - Add real cause of TNonblockingServerSocket error to exception
- โก๏ธ THRIFT-4064 - Update node library dependencies
- ๐ฆ THRIFT-4069 - All perl packages should have proper namespace, version syntax, and use proper thrift exceptions
- ๐ THRIFT-4071 - Consolidate the Travis CI jobs where possible to put less stress on the Apache Foundation's allocation of CI build slaves
- THRIFT-4072 - Add the possibility to send custom headers in TCurlClient
- ๐ THRIFT-4075 - Better MinGW support for headers-only boost (without thread library)
- ๐ THRIFT-4081 - Provide a MinGW 64-bit Appveyor CI build for better pull request validation
- ๐ THRIFT-4084 - Improve SSL security in thrift by adding a make cross client that checks to make sure SSLv3 protocol cannot be negotiated
- ๐ท THRIFT-4095 - Add multiplexed protocol to Travis CI for make cross
- THRIFT-4099 - Auto-derive Hash for generated Rust structs
- ๐ THRIFT-4110 - The debian build files do not produce a "-dbg" package for debug symbols of libthrift0
- THRIFT-4114 - Space after '///' in doc comments
- THRIFT-4126 - Validate objects in php extension
- ๐ THRIFT-4130 - Ensure Apache Http connection is released back to pool after use
- 0๏ธโฃ THRIFT-4151 - Thrift Mutex Contention Profiling (pthreads) should be disabled by default
- THRIFT-4176 - Implement a threaded and threadpool server type for Rust
- THRIFT-4183 - Named pipe client blocks forever on Open() when there is no server at the other end
- 0๏ธโฃ THRIFT-4190 - improve C# TThreadPoolServer defaults
- THRIFT-4197 - Implement transparent gzip compression for HTTP transport
- ๐ THRIFT-4198 - Ruby should log Thrift internal errors to global logger
- THRIFT-4203 - thrift server stop gracefully
- THRIFT-4205 - c_glib is not linking against glib + gobject
- โ THRIFT-4209 - warning CS0414 in T[TLS]ServerSocket.cs
- ๐ท THRIFT-4210 - include Thrift.45.csproj into CI runs
- ๐ THRIFT-4217 - HttpClient should support gzip and deflate
- ๐ THRIFT-4222 - Support Unix Domain Sockets in Golang TServerSocket
- THRIFT-4233 - Make THsHaServer.invoker available (get method only) in inherited classes
- ๐ THRIFT-4236 - Support context in go generated code.
- THRIFT-4238 - JSON generator: make annotation-aware
- THRIFT-4269 - Don't append '.' to Erlang namespace if it ends in '_'.
- THRIFT-4270 - Generate Erlang mapping functions for const maps and lists
- ๐ THRIFT-4275 - Add support for zope.interface only, apart from twisted support.
- THRIFT-4285 - Pull generated send/recv into library to allow behaviour to be customised
- THRIFT-4287 - Add c++ compiler "no_skeleton" flag option
- ๐ฒ THRIFT-4288 - Implement logging levels properly for node.js
- ๐ณ THRIFT-4295 - Refresh the Docker image file suite for Ubuntu, Debian, and CentOS
- THRIFT-4305 - Emit ddoc for generated items
- THRIFT-4306 - Thrift imports not replicated to D service output
- 0๏ธโฃ THRIFT-4315 - Add default message for TApplicationException
- ๐ THRIFT-4318 - Delphi performance improvements
- THRIFT-4325 - Simplify automake cross compilation by relying on one global THRIFT compiler path
- THRIFT-4327 - Improve TimerManager API to allow removing specific task
- THRIFT-4330 - Allow unused crates in Rust files
- THRIFT-4333 - Erlang tutorial examples are using a different port (9999)
- ๐ THRIFT-4343 - Change CI builds to use node.js 8.x LTS once available
- ๐ THRIFT-4345 - Create a docker build environment that uses the minimum supported language levels
- THRIFT-4346 - Allow Zlib transport factory to wrap other transports
- THRIFT-4348 - Perl HTTP Client custom HTTP headers
- โก๏ธ THRIFT-4350 - Update netcore build for dotnet 2.0 sdk and make cross validation
- โก๏ธ THRIFT-4351 - Use Travis CI Build Stages to optimize the CI build
- THRIFT-4353 - cannot read via thrift_protocol at server side
- THRIFT-4378 - add set stopTimeoutUnit method to TThreadPoolServer
๐ New Feature
- THRIFT-750 - C++ Compiler Virtual Function Option
- ๐ THRIFT-2945 - Implement support for Rust language
- ๐ THRIFT-3857 - thrift js:node compiler support an object as parameter not an instance of struct
- THRIFT-3933 - Port official C# .NET library for Thrift to C# .NET Core library
- โก๏ธ THRIFT-4039 - Update of Apache Thrift .Net Core lib
- THRIFT-4113 - Provide a buffer transport for reading/writing in memory byte stream
Question
- THRIFT-2956 - autoconf - possibly undefined macro - AC_PROG_BISON
- ๐ THRIFT-4223 - Add support to the isServing() method for the C++ library
Task
- ๐ THRIFT-3622 - Fix deprecated uses of std::auto_ptr
- ๐ THRIFT-4028 - Please remove System.out.format from the source code
- ๐ THRIFT-4186 - Build and test rust client in Travis
โ Test
- ๐ THRIFT-4264 - PHP - Support both shared & static linking of sockets library
Wish
- THRIFT-4344 - Define and maintain the minimum language level for all languages in one place
-
v0.10.0 Changes
January 06, 2017๐ Bug
- THRIFT-1840 - Thrift Generated Code Causes Global Variable Leaks
- ๐ THRIFT-1828 - moc_TQTcpServer.cpp was removed from source tree but is in thrift-0.9.0.tar.gz
- THRIFT-1790 - cocoa: Duplicate interface definition error
- THRIFT-1776 - TPipeServer should implement "listen", so that TServerEventHandler preServe will work right
- THRIFT-1351 - Compiler does not care about binary strings
- THRIFT-1229 - Python fastbinary.c can not handle unicode as generated python code
- THRIFT-749 - C++ TBufferedTransports do not flush their buffers on delete
- THRIFT-747 - C++ TSocket->close calls shutdown breaking forked parent process
- THRIFT-732 - server exits abnormally when client calls send_xxx function without calling recv_xxx function
- THRIFT-3942 - TSSLSocket does not honor send and receive timeouts
- THRIFT-3941 - WinXP version of thrift_poll() relies on undefined behavior by passing a destructed variable to select()
- THRIFT-3940 - Visual Studio project file for compiler is broken
- THRIFT-3943 - Coverity Scan identified some high severity defects
- THRIFT-3929 - PHP "nsglobal" Option Results in Syntax Error in Generated Code (Trailing Backslash)
- ๐จ THRIFT-3936 - Cannot compile 0.10.0 development tip with VS2013 and earlier (snprintf, uint32_t)
- THRIFT-3935 - Incorrect skipping of map and set
- ๐ THRIFT-3920 - Ruby: Ensuring that HTTP failures will clear the http transport outbuf var
- THRIFT-3919 - C# TTLSServerSocket does not use clientTimeout
- THRIFT-3917 - Check backports.ssl_match_hostname module version
- ๐ THRIFT-3909 - Fix c_glib static lib CMake build
- THRIFT-3904 - Typo in node tutorial leads to wrong transport being used
- THRIFT-3848 - As an implementer of a perl socket server, I do not want to have to remember to ignore SIGCHLD for it to work properly
- THRIFT-3844 - thrift_protocol cannot compile in 7.0.7
- THRIFT-3843 - integer issues with Haxe PHP targets cause ZigZag encoding to fail
- THRIFT-3842 - Dart generates incorrect code for a const struct
- THRIFT-3841 - dart compact protocol incorrectly serializes/deserialized doubles
- THRIFT-3708 - NameError: global name 'TProtocol' is not defined
- THRIFT-3704 - "TConnectedClient died: Could not refill buffer" message shown when using HTTP Server
- THRIFT-3678 - Fix javadoc errors on JDK 8
- ๐ THRIFT-3014 - AppVeyor support
- THRIFT-2994 - Node.js TJSONProtocol cannot be used for object serialization.
- THRIFT-2974 - writeToParcel throws NPE for optional enum fields
- THRIFT-2948 - Python TJSONProtocol doesn't handle structs with binary fields containing invalid unicode.
- THRIFT-2845 - ChildService.Plo: No such file or directory
- THRIFT-3276 - Binary data does not decode correctly using the TJSONProtocol when the base64 encoded data is padded.
- โ THRIFT-3253 - Using latest version of D gives deprecation notices
- THRIFT-2883 - TTwisted.py, during ConnectionLost processing: exceptions.RuntimeError: dictionary changed size during iteration
- THRIFT-2019 - Writing on a disconnected socket on Mac causes SIG PIPE
- THRIFT-2020 - Thrift library has some empty files that haven't really been deleted
- ๐ THRIFT-2049 - Go compiler doesn't build on native Windows
- THRIFT-2024 - TServer.cpp warns on 64-bit platforms about truncating an rlim_t into an int
- ๐ THRIFT-2023 - gettimeofday implementation on Windows errors when no time zone is passed in.
- THRIFT-2022 - CoB and dense code generation still uses TR1 bind, even though that doesn't work with clang
- THRIFT-2027 - Minor 64-bit and NOMINMAX issues in C++ library
- THRIFT-2156 - TServerSocket::listen() is throwing exceptions with misleading information
- THRIFT-2154 - Missing <operator body
- THRIFT-2148 - TNonblockingMultiFetchClient imports log4j
- ๐ THRIFT-2103 - [python] Support for SSL certificates with Subject Alternative Names
- THRIFT-1931 - Sending a frame size of zero to a TNonblockingServer causes an assertion failure
- THRIFT-1751 - definition of increase_max_fds doesn't compile when HAVE_SYS_RESOURCE_H is not defined
- THRIFT-1522 - TServerSocket potential memory leak with addrinfo *res0
- ๐ THRIFT-1547 - Problems building against static libevent
- THRIFT-1545 - Generated javascript code uses "for in" for looping over arrays
- THRIFT-1487 - Namespace problem, compile fails on generated code
- ๐ง THRIFT-1472 - Configuration conflicts with boost platform include header
- THRIFT-6 - Thrift libraries and compiler lack version number
- THRIFT-1680 - make install requires GNU make
- ๐ THRIFT-3869 - Dart Tutorial build fails with Error 65 at "pub get"
- ๐ THRIFT-3861 - Travis CI builds are timing out - C++TServerIntegrationTest appears to be hanging
- THRIFT-3855 - In the go simple server, if Stop() is called multiple times it hangs
- THRIFT-3885 - PHP: Error when readI64 in TCompactProtocol
- โ THRIFT-3883 - Go TestAllConnection can fail with port 9090 collision
- THRIFT-3884 - Fix Erlang compact protocol double endianess and boolean list
- THRIFT-3880 - Erlang Compact protocol - boolean values inverted
- THRIFT-3879 - Undefined evaluation order causes incorrect processing in the C++ library JSON protocol
- THRIFT-3851 - Golang thrift continually adds the x/thrift content type
- ๐ THRIFT-3850 - All apache builds are failing when initiated from a github pull request
- ๐ THRIFT-3837 - Thift 0.9.3 can't be build with QuickCheck 2.8.2 and unordered-containers 0.2.6
- ๐ THRIFT-3831 - build of test/cpp/src/TestClient.cpp fails with newer gcc on platforms with unsigned char due to narrowing conversions
- THRIFT-3827 - php CompactProtocol readI64 function has bug, when value has 32bit ~64bit, Example๏ผvalue=1461563457000
- โ THRIFT-3825 - Javascript test dependency is no longer available
- โ THRIFT-3814 - Fix contention in TNonblockingServerTest
- ๐ THRIFT-3793 - Appveyor builds reference an ant version that is no longer there
- THRIFT-3786 - Node.js TLS emits 'connect' before connection is ready
- THRIFT-3780 - Fix dart int64 usage when compiled to js
- THRIFT-3789 - Node.js lacks ability to destroy connection
- ๐ฆ THRIFT-3796 - There's no --dbg for dh_strip, maybe someone has mistaken this for --dbg-package.
- THRIFT-3795 - Generated hashValue method in Swift will overflow
- โฑ THRIFT-3790 - Fix Delphi named pipe client to use timeout even when pipe doesn't yet exist
- THRIFT-3787 - Node.js Connection object doesn't handle errors correctly
- THRIFT-3791 - Delphi pipe client may fail even in a non-error condition
- THRIFT-3771 - TBufferedTransport gets in invalid state on read/write errors
- THRIFT-3764 - PHP "make install" does not install TMultiplexedProtocol.php nor TSimpleJSONProtocol.php
- THRIFT-3768 - TThreadedServer may crash if it is destroyed immediately after it returns from serve(); TThreadedServer disconnects clients
- THRIFT-3765 - memory leak in python compact protocol extension
- THRIFT-3758 - TApplicationException::getType and TProtocolException::getType should be const
- ๐ป THRIFT-3763 - Fix serialization of i64 larger than 253 for browserify
- THRIFT-3759 - required fields that are nil are silently ignored on write
- THRIFT-3753 - TServerFramework::stop may fail to interrupt connected clients
- ๐ THRIFT-3755 - TDebugProtocol::writeString hits assert in isprint on Windows with debug CRT
- THRIFT-3751 - Compiler allows field ids that are too large for generated code
- THRIFT-3748 - Node.js Deserialization of lists of lists is broken
- ๐ฆ THRIFT-3760 - Fix install paths etc of debian packages for py and perl
- ๐ THRIFT-3757 - Fix various build warnings on Windows with VS2015 compiler
- THRIFT-3750 - NSCopying copyWithZone: implementation does not check isSet
- ๐ THRIFT-3747 - Duplicate node.js build on Travis-CI
- THRIFT-3744 - The precision should be 17 (16 bits need after dot) after dot for double type.
- โ THRIFT-3741 - haxe test is broken
- ๐ THRIFT-3739 - Deprecation warning in codegen/base.d
- ๐ป THRIFT-3735 - JSON protocol left in incorrect state when an exception is thrown during read or write operations
- THRIFT-3734 - To compare two string as lowercase.
- ๐ป THRIFT-3743 - Java JSON protocol left in incorrect state when an exception is thrown during read or write operations
- โ THRIFT-3731 - Perl multiplex test is flaky
- THRIFT-3729 - Restrict rake version
- THRIFT-3727 - Incorrect require paths in Node.js tutorial
- THRIFT-3723 - Fix Lua include path
- ๐ง THRIFT-3722 - Fix cert path in C++ cross tests for non-Linux platform
- THRIFT-3726 - Fix incorrect conditional in TMultiplexedProcessor.py
- โ THRIFT-3725 - Skip a flaky cross test entry (d-dart compact framed-ip)
- THRIFT-3724 - Fix incorrect timeval conversion in libevent.d
- ๐ฏ THRIFT-3721 - CLONE - why not add unicode strings support to python directly?
- THRIFT-3720 - TTcpSocketStreamImpl.Read() returns 0 if not all requested bytes could be read
- THRIFT-3719 - Dart generator should use lowerCamelCase for service names
- THRIFT-3902 - TSocket.open throws NullPointerException
- THRIFT-3901 - TFramedTransport.open throws NullPointerException
- THRIFT-3893 - Command injection in format_go_output
- THRIFT-3807 - Swift compiler does not escape reserved words
- THRIFT-3798 - THttpClient does not use proxy from http_proxy, https_proxy environment variables
- THRIFT-3809 - wrong/unused BINARY type code
- THRIFT-3806 - Swift generator does not handle self-referring structs
- THRIFT-3805 - Golang server susceptible to memory spike from malformed message
- THRIFT-3797 - Generated Delphi processor shouldn't error out on timed out exceptions
- ๐ THRIFT-3813 - Appveyor builds reference an openssl version that is no longer there
- THRIFT-3658 - Missing file in THRIFT-3599
- THRIFT-3649 - Python TSaslClientTransport initializes TTransportException incorrectly
- THRIFT-3650 - incorrect union serialization
- โ THRIFT-3713 - lib/d/test/thrift_test_runner.sh is flaky on Jenkins
- THRIFT-3668 - range check error in compact protocol
- ๐ THRIFT-3663 - CMake cpp test fails to build on system without zlib
- THRIFT-3712 - TTornadoServer cannot handle IPv6 address
- THRIFT-3710 - Dart generator does not camel case Constants class names
- THRIFT-3697 - Dart generator does not name imports
- ๐ THRIFT-3690 - Work around docker image build failures on Travis-CI
- THRIFT-3689 - thrift_reconnecting_client start failed when server is not available
- โ THRIFT-3695 - Fix D test scripts
- THRIFT-3675 - Union is not serialized correctly by Thrift C Glib
- ๐ป THRIFT-3673 - API fails with std::exception after a timeout occurred in earlier any API call
- THRIFT-3709 - Comment syntax can produce broken code
- THRIFT-3705 - Go map has incorrect types when used with forward-defined types
- โ THRIFT-3702 - Fix cross tests for Dart compact protocol (3 failing)
- THRIFT-3683 - BadYieldError in thrift py:tornado server
- โ THRIFT-3682 - Do not reuse refused sockets in test scripts
- ๐ THRIFT-3681 - Fix Dart tutorial build
- THRIFT-3680 - Java async processor fails to notify errors to clients
- THRIFT-3714 - Thrift.TProtocolException is not defined in js/src/thrift.js
- โ THRIFT-3688 - Fix socket bind failure detection of cross test
- ๐ THRIFT-3641 - Ruby client should try to connect to every result of getaddrinfo
- โ THRIFT-3635 - D transport_test is flaky on Jenkins and Travis
- ๐ THRIFT-3618 - Python TSSLSocket deprecation message should print caller's location
- THRIFT-3145 - JSON protocol does not handle bool and empty containers correctly
- THRIFT-3158 - TBase#deepCopy should return T
- THRIFT-3157 - TBase signature should be TBase, F extends TFieldIdEnum>
- THRIFT-3156 - Node TLS: server executes processing logic two full times
- ๐ป THRIFT-3154 - tutorial/py.tornado throw EOF exception
- ๐ THRIFT-3063 - C++ build -Wunused-parameter warnings on processor_test, TransportTest
- THRIFT-3056 - Add string/collection length limits for Python protocol readers
- THRIFT-3237 - Fix TNamedPipeServer::createNamedPipe memory leak
- ๐ THRIFT-3233 - Fix C++ ThreadManager::Impl::removeWorker worker join
- THRIFT-3232 - Cannot deserialize json messages created with fieldNamesAsString
- ๐ THRIFT-3206 - Fix Visual Studio build failure due 'pthread_self': identifier not found
- THRIFT-3200 - JS and nodejs do not encode JSON protocol binary fields as base64
- ๐ THRIFT-3199 - Exception field has basic metadata
- ๐ป THRIFT-3182 - TFramedTransport is in an invalid state after frame size exception
- THRIFT-2536 - new TSocket, uninitialised value reported by valgrind
- THRIFT-2527 - Apache Thrift IDL Compiler code generated for Node.js should be jshint clean
- THRIFT-2519 - "processor" class is not being generated
- โ THRIFT-2431 - TFileTransportTest fails with "check delta < XXX failed"
- ๐ THRIFT-2708 - Erlang library does not support "oneway" message type
- THRIFT-3377 - Deep copy is actually shallow when using typedef members
- THRIFT-3376 - C# and Python JSON protocol double values lose precision
- โ THRIFT-3373 - Various fixes for cross test servers and clients
- THRIFT-3370 - errno extern variable redefined. Not compiling for Android
- THRIFT-3379 - Potential out of range panic in Go JSON protocols
- THRIFT-3371 - Abstract namespace Unix domain sockets broken in C++
- โฌ๏ธ THRIFT-3380 - nodejs: 0.9.2 -> 0.9.3 upgrade breaks Protocol and Transport requires
- THRIFT-3367 - Fix bad links to coding_standards.md #634
- THRIFT-3401 - Nested collections emit Objective-C code that cannot compile
- THRIFT-3403 - JSON String reader doesn't recognize UTF-16 surrogate pairs
- โ THRIFT-3362 - make check fails for C++ at the SecurityTest
- THRIFT-3395 - Cocoa compiler produces corrupt code when boxing enums inside map.
- THRIFT-3394 - compiler generates uncompilable code
- THRIFT-3388 - hash doesn't work on set/list
- โ THRIFT-3391 - Wrong bool formatting in test server
- THRIFT-3390 - TTornado server doesn't handle closed connections properly
- THRIFT-3382 - TBase class for C++ Library
- THRIFT-3392 - Java TZlibTransport does not close its wrapper streams upon close()
- โ THRIFT-3383 - i64 related warnings
- โ THRIFT-3386 - misc. warnings with make check
- THRIFT-3385 - warning: format โ%luโ expects โlong unsigned intโ, but has type โstd::basic_string::size_type {aka unsigned int}
- ๐ฆ THRIFT-3355 - npm WARN package.json [email protected] No license field.
- โ THRIFT-3360 - Improve cross test servers and clients further
- THRIFT-3359 - Binary field incompatibilities
- THRIFT-3354 - Fix word-extraction substr bug in initialism code
- THRIFT-3350 - Python JSON protocol does not encode binary as Base64
- โ THRIFT-3577 - assertion failed at line 512 of testcontainertest.c
- โ THRIFT-3576 - Boost test --log_format arg does not accept lowercase
- THRIFT-3575 - Go compiler tries to use unexported library methods when using read_write_private
- THRIFT-3574 - Cocoa generator makes uncompilable imports
- ๐ THRIFT-3570 - Remove duplicate instances that are added by upstream
- โ THRIFT-3571 - Make feature test result browsable
- THRIFT-3569 - c_glib protocols do not check number of bytes read by transport
- THRIFT-3568 - THeader server crashes on readSlow
- THRIFT-3567 - GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
- โ THRIFT-3566 - C++/Qt: TQTcpServerTest::test_communicate() is never executed
- ๐ป THRIFT-3564 - C++/Qt: potential core dump in TQTcpServer in case an exception occurs in TAsyncProcessor::process()
- โ THRIFT-3558 - typos in c_glib tests
- THRIFT-3559 - Fix awkward extra semi-colons with Cocoa container literals
- ๐ง THRIFT-3555 - 'configure' script does not honor --with-openssl= for libcrypto for BN_init
- THRIFT-3554 - Constant decls may lead to "Error: internal error: prepare_member_name_mapping() already active for different struct"
- THRIFT-3552 - glib_c Memory Leak
- ๐ฆ THRIFT-3551 - Thrift perl library missing package declaration
- THRIFT-3549 - Exceptions are not properly stringified in Perl library
- THRIFT-3546 - NodeJS code should not be namespaced (and is currently not strict-mode compliant)
- THRIFT-3545 - Container type literals do not compile
- ๐ THRIFT-3538 - Remove UnboundMethodType in TProtocolDecorator
- THRIFT-3536 - Error 'char' does not contain a definition for 'IsLowSurrogate' for WP7 target
- ๐ THRIFT-3534 - Link error when building with Qt5
- THRIFT-3533 - Can not send nil pointer as service method argument
- THRIFT-3507 - THttpClient does not use proxy from http_proxy, https_proxy environment variables
- THRIFT-3502 - C++ TServerSocket passes small buffer to getsockname
- THRIFT-3501 - Forward slash in comment causes compiler error
- THRIFT-3498 - C++ library assumes optional function pthread_attr_setschedpolicy is available
- ๐ THRIFT-3497 - Build fails with "invalid use of incomplete type"
- ๐ THRIFT-3496 - C++: Cob style client fails when sending a consecutive request
- ๐ THRIFT-3493 - libthrift does not compile on windows using visual studio
- โ THRIFT-3488 - warning: unused variable 'program'
- ๐ THRIFT-3489 - warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
- ๐ THRIFT-3487 - Full support for newer Delphi versions
- โ THRIFT-3528 - Fix warnings in thrift.ll
- THRIFT-3527 - -gen py:dynamic,utf8strings ignores utf8strings option
- THRIFT-3526 - Code generated by py:utf8strings does not work for Python3
- ๐ THRIFT-3524 - dcc32 warning "W1000 Symbol 'IsLowSurrogate' is deprecated: 'Use TCharHelper'" in Thrift.Protocol.JSON.pas
- THRIFT-3525 - py:dynamic fails to handle binary list/set/map element
- โ THRIFT-3521 - TSimpleJSONProtocolTest is not deterministic (fails when run on JDK 8)
- THRIFT-3520 - Dart TSocket onError stream should be typed as Object
- THRIFT-3519 - fastbinary does not work with -gen py:utf8strings
- THRIFT-3518 - TConcurrentClientSyncInfo files were missing for Visual Studio
- ๐ THRIFT-3512 - c_glib: Build fails due to missing features.h
- THRIFT-3483 - Incorrect empty binary handling introduced by THRIFT-3359
- THRIFT-3479 - Oneway calls should not return exceptions to clients
- โช THRIFT-3478 - Restore dropped method to THsHaServer.java
- ๐ THRIFT-3477 - Parser fails on enum item that starts with 'E' letter and continues with number
- THRIFT-3476 - Missing include in ./src/thrift/protocol/TJSONProtocol.cpp
- ๐ณ THRIFT-3474 - Docker: thrift-compiler
- ๐ THRIFT-3473 - When "optional' is used with a struct member, C++ server seems to not return it correctly
- THRIFT-3468 - Dart TSocketTransport onError handler is too restrictive
- THRIFT-3451 - thrift_protocol PHP extension missing config.m4 file
- THRIFT-3456 - rounding issue in static assert
- THRIFT-3455 - struct write method's return value is incorrect
- THRIFT-3454 - Python Tornado tutorial is broken
- ๐ THRIFT-3463 - Java can't be disabled in CMake build
- THRIFT-3450 - NPE when using SSL
- THRIFT-3449 - TBaseAsyncProcessor fb.responseReady() never called for oneway functions
- THRIFT-3471 - Dart generator does not handle uppercase argument names
- THRIFT-3470 - Sporadic timeouts with pipes
- THRIFT-3465 - Go Code With Complex Const Initializer Compilation Depends On Struct Order
- THRIFT-3464 - Fix several defects in c_glib code generator
- THRIFT-3462 - Cocoa generates Incorrect #import header names
- ๐ THRIFT-3453 - remove rat_exclude
- THRIFT-3418 - Use of ciphers in ssl.wrap_socket() breaks python 2.6 compatibility
- THRIFT-3417 - "namespace xsd" is not really working
- THRIFT-3413 - Thrift code generation bug in Go when extending service
- THRIFT-3420 - C++: TSSLSockets are not interruptable
- THRIFT-3415 - include unistd.h conditionally
- ๐ THRIFT-3414 - #include in THeaderTransport.h breaks windows build
- ๐ฆ THRIFT-3411 - Go generates remotes with wrong package qualifiers when including
- THRIFT-3430 - Go THttpClient does not read HTTP response body to completion when closing
- THRIFT-3423 - First call to thrift_transport:read_exact fails to dispatch correct function
- THRIFT-3422 - Go TServerSocket doesn't close on Interrupt
- THRIFT-3421 - rebar as dependency instead of bundling (was: rebar fails if PWD contains Unicode)
- โ THRIFT-3428 - Go test fails when running make check
- THRIFT-3445 - Throwable messages are hidden from JVM stack trace output
- THRIFT-3443 - Thrift include can generate uncompilable code
- THRIFT-3444 - Large 64 bit Integer does not preserve value through Node.js JSONProtocol
- โ THRIFT-3436 - misc. cross test issues with UTF-8 path names
- ๐ฆ THRIFT-3435 - Put generated Java code for fullcamel tests in a separate package/namespace
- THRIFT-3433 - Doubles aren't interpreted correctly
- ๐ THRIFT-3437 - Mingw-w64 build fail
- THRIFT-3434 - Dart generator produces empty name in pubspec.yaml for includes without namespaces
- THRIFT-3408 - JSON generator emits incorrect types
- โฑ THRIFT-3406 - Cocoa client should not schedule streams on main runloop
- THRIFT-3404 - JSON String reader doesn't recognize UTF-16 surrogate pair
- THRIFT-3636 - Double precision is not fully preserved in C++ TJSONProtocol
- โ THRIFT-3632 - c_glib testserialization fails with glib assertion
- ๐ง THRIFT-3619 - Using Thrift 0.9.3 with googletest on Linux gcc 4.9 / C++11
- ๐ THRIFT-3617 - CMake does not build gv/xml generators
- THRIFT-3615 - Fix Python SSL client resource leak on connection failure
- โ THRIFT-3616 - lib/py/test/test_sslsocket.py is flaky
- THRIFT-3643 - Perl SSL server crushes if a client disconnect without handshake
- THRIFT-3639 - C# Thrift library forces TLS 1.0, thwarting TLS 1.2 usage
- ๐ THRIFT-3633 - Travis "C C++ - GCC" build was using clang
- THRIFT-3634 - Fix Python TSocket resource leak on connection failure
- โก๏ธ THRIFT-3630 - Debian/Ubuntu install docs need an update
- ๐ THRIFT-3629 - Parser sets exitcode on errors, but generator does not
- ๐ THRIFT-3608 - lib/cpp/test/SecurityTest is flaky in jenkins Thrift-precommit build.
- ๐ THRIFT-3601 - Better conformance to PEP8 for generated code
- THRIFT-3599 - Validate client IP address against cert's SubjectAltName
- THRIFT-3598 - TBufferedTransport doesn't instantiate client connection
- โ
THRIFT-3597 -
make check
hangs in go tests - 0๏ธโฃ THRIFT-3589 - Dart generator uses wrong name in constructor for uppercase arguments with defaults
- THRIFT-3588 - Using TypeScript with --noImplicitAny fails
- THRIFT-3584 - boolean false value cannot be transferred
- THRIFT-3578 - Make THeaderTransport detect TCompact framed and unframed
- THRIFT-3323 - Python library does not handle escaped forward slash ("/") in JSON
- โ THRIFT-3322 - CMake generated "make check" failes on python_test
- THRIFT-3321 - Thrift can't be added as a subdirectory of another CMake-based project
- THRIFT-3314 - Dots in file names of includes causes dots in javascript variable names
- ๐ THRIFT-3307 - Segfault in Ruby serializer
- THRIFT-3309 - Missing TConstant.php in /lib/php/Makefile.am
- THRIFT-3810 - unresolved external symbol public: virtual void __cdecl apache::thrift::server::TServerFramework::serve(void)
- ๐ THRIFT-3736 - C++ library build fails if OpenSSL does not surrpot SSLv3
- THRIFT-3878 - Compile error in TSSLSocket.cpp with new OpenSSL [CRYPTO_num_locks]
- โ THRIFT-3949 - missing make dist entry for compiler/cpp/test
- THRIFT-449 - The wire format of the JSON Protocol may not always be valid JSON if it contains non-UTF8 encoded strings
- THRIFT-162 - Thrift structures are unhashable, preventing them from being used as set elements
- ๐ป THRIFT-3961 - TConnectedClient does not terminate the connection to the client if an exception while processing the received message occures.
- ๐ THRIFT-3881 - Travis CI builds are failing due to docker failures (three retries, and gives up)
- THRIFT-3937 - Cannot compile 0.10.0 development tip with gcc-4.6.x
- 0๏ธโฃ THRIFT-3964 - Unsupported mechanism type ????? due to dependency on default OS-dependent charset
- THRIFT-3038 - Use of volatile in cpp library
- THRIFT-3301 - Java generated code uses imports that can lead to class name collisions with IDL defined types
- THRIFT-3348 - PHP TCompactProtocol bool&int64 readvalue bug
- THRIFT-3955 - TThreadedServer Memory Leak
- THRIFT-3829 - Thrift does not install Python Libraries if Twisted is not installed
- THRIFT-3932 - C++ ThreadManager has a rare termination race
- THRIFT-3828 - cmake fails when Boost_INCLUDE_DIRS (and other variables passed to include_directories()) is empty
- ๐ THRIFT-3958 - CMake WITH_MT option for windows static runtime linking does not support the cmake build type RelWithDebInfo
- โฑ THRIFT-3957 - TConnectedClient does not disconnect from clients when their timeout is reached.
- THRIFT-3953 - TSSLSocket::close should handle exceptions from waitForEvent because it is called by the destructor.
- THRIFT-3977 - PHP extension creates undefined values when deserializing sets
- THRIFT-3947 - sockaddr type isn't always large enough for the return of getsockname
- ๐ท THRIFT-2755 - ThreadSanitizer reports data race in ThreadManager::Impl::addWorker
- ๐ THRIFT-3948 - errno is not the correct method of getting the error in windows
- THRIFT-4008 - broken ci due to upstream dependency versioning break
- ๐ฆ THRIFT-3999 - Fix Debian & Ubuntu package dependencies
- โ THRIFT-3886 - PHP cross test client returns 0 even when failing
- ๐ THRIFT-3997 - building thrift libs does not support new openssl
๐ Documentation
- THRIFT-3867 - Specify BinaryProtocol and CompactProtocol
Epic
- THRIFT-3049 - As an iOS developer, I want a generator and library that produces Swift code
- THRIFT-2336 - UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
๐ Improvement
- ๐ THRIFT-1867 - Python client/server should support client-side certificates.
- ๐ THRIFT-1313 - c_glib compact support
- THRIFT-1385 - make install doesn't install java library in the setted folder
- โก๏ธ THRIFT-1437 - Update RPM spec
- โ THRIFT-847 - Test Framework harmonization across all languages
- THRIFT-819 - add Enumeration for protocol, transport and server types
- THRIFT-3927 - Emit an error instead of throw an error in the async callback
- THRIFT-3931 - TSimpleServer: If process request encounter UNKNOWN_METHOD, don't close transport.
- ๐ THRIFT-3934 - Automatically resolve OpenSSL binary version on Windows CI
- THRIFT-3918 - Run subset of make cross
- ๐ณ THRIFT-3908 - Remove redundant dependencies from Dockerfile
- ๐ THRIFT-3907 - Skip Docker image build on CI when unchanged
- THRIFT-3868 - Java struct equals should do identity check before field comparison
- THRIFT-3849 - Port Go serializer and deserializer to dart
- ๐ THRIFT-2989 - Complete CMake build for Apache Thrift
- THRIFT-2980 - ThriftMemoryBuffer doesn't have a constructor option to take an existing buffer
- ๐จ THRIFT-2856 - refactor erlang basic transports and unify interfaces
- โก๏ธ THRIFT-2877 - Optimize generated hashCode
- โ THRIFT-2869 - JSON: run schema validation from tests
- THRIFT-3112 - [Java] AsyncMethodCallback should be typed in generated AsyncIface
- THRIFT-3263 - PHP jsonSerialize() should cast scalar types
- THRIFT-2905 - Cocoa compiler should have option to produce "modern" Objective-C
- THRIFT-2821 - Enable the use of custom HTTP-Header in the Transport
- THRIFT-2093 - added the ability to set compression level in C++ zlib transport
- THRIFT-2089 - Compiler ignores duplicate typenames
- ๐ THRIFT-2056 - Moved all #include config.h statements to #include
- ๐ง THRIFT-2031 - Make SO_KEEPALIVE configurable for C++ lib
- ๐ THRIFT-2021 - Improve large binary protocol string performance
- THRIFT-2028 - Cleanup threading headers / libraries
- ๐ THRIFT-2014 - Change C++ lib includes to use style throughout
- ๐ THRIFT-2312 - travis.yml: build everything
- THRIFT-1915 - Multiplexing Services
- THRIFT-1736 - Visual Studio top level project files within msvc
- ๐ THRIFT-1735 - integrate tutorial into regular build
- THRIFT-1533 - Make TTransport should be Closeable
- ๐ THRIFT-35 - Move language tests into their appropriate library directory
- ๐ THRIFT-1079 - Support i64 in AS3
- ๐ THRIFT-1108 - SSL support for the Ruby library
- โก๏ธ THRIFT-3856 - update debian package deependencies
- ๐ THRIFT-3833 - haxe http server implementation (by embeding into php web server)
- ๐ THRIFT-3839 - Performance issue with big message deserialization using php extension
- THRIFT-3820 - Erlang: Detect OTP >= 18 to use new time correction
- ๐ THRIFT-3816 - Reduce docker build duration on Travis-CI
- THRIFT-3815 - Put appveyor dependency versions to one place
- ๐ THRIFT-3788 - Compatibility improvements and Win64 support
- ๐ง THRIFT-3792 - Timeouts for anonymous pipes should be configurable
- ๐ป THRIFT-3794 - Split Delphi application, protocol and transport exception subtypes into separate exceptions
- THRIFT-3774 - The generated code should have exception_names meta info
- ๐ THRIFT-3762 - Fix build warnings for deprecated Thrift "byte" fields
- ๐ THRIFT-3756 - Improve requiredness documentation
- ๐ฆ THRIFT-3761 - Add debian package for Python3
- ๐ THRIFT-3742 - haxe php cli support
- โฑ THRIFT-3733 - Socket timeout improvements
- THRIFT-3728 - http transport for thrift-lua
- THRIFT-3905 - Dart compiler does not initialize bool, int, and double properties
- ๐ THRIFT-3911 - Loosen Ruby dev dependency version requirements
- โ THRIFT-3906 - Run C# tests with make check
- THRIFT-3900 - Add Python SSL flags
- ๐ป THRIFT-3897 - Provide meaningful exception type based on WebExceptionStatus in case of timeout
- THRIFT-3808 - Missing
DOUBLE
in thrift type enumeration - ๐ THRIFT-3803 - Remove "file" attribute from XML generator
- โ THRIFT-3660 - Add V4 mapped address to test client cert's altname
- ๐ THRIFT-3661 - Use https to download meck in erlang test build
- ๐ง THRIFT-3659 - Check configure result of CMake on CI
- ๐ THRIFT-3667 - Add TLS SNI support to clients
- THRIFT-3651 - Make backports.match_hostname and ipaddress optional
- ๐ THRIFT-3666 - Build D tutorial as part of Autotools build
- ๐ณ THRIFT-3665 - Add D libevent and OpenSSL to docker images
- ๐ THRIFT-3664 - Remove md5.c
- ๐ณ THRIFT-3662 - Add Haskell to debian docker image
- โ THRIFT-3711 - Add D to cross language test
- ๐ THRIFT-3691 - Run flake8 Python style check on Travis-CI
- ๐ THRIFT-3692 - (Re)enable Appveyor C++ and Python build
- ๐ THRIFT-3677 - Improve CMake Java build
- โ THRIFT-3679 - Add stdout log to testBinary in Java test server
- ๐ THRIFT-3718 - Reduce size of docker image for build environment
- THRIFT-3698 - [Travis-CI] Introduce retry to apt commands
- THRIFT-3127 - switch -recurse to --recurse and reserve -r
- THRIFT-3087 - Pass on errors like "connection closed"
- ๐ THRIFT-3240 - Thrift Python client should support subjectAltName and wildcard certs in TSSLSocket
- โ THRIFT-3213 - make cross should indicate when it skips a known failing test
- ๐ THRIFT-3208 - Fix Visual Studio solution build failure due to missing source
- THRIFT-3186 - Add TServerHTTP to Go library
- THRIFT-2342 - Add FILE and LINE to Thrift C++ excpetions
- THRIFT-3372 - Add dart generator to Visual Studio project
- โ THRIFT-3366 - ThriftTest to implement standard return values
- THRIFT-3402 - Provide a perl Unix Socket implementation
- THRIFT-3361 - Improve C# library
- THRIFT-3393 - Introduce i8 to provide consistent set of Thrift IDL integer types
- ๐ THRIFT-3339 - Support for database/sql
- THRIFT-3565 - C++: T[Async]Processor::getEventHandler() should be declared as const member functions
- THRIFT-3563 - C++/Qt: removed usage of macro QT_PREPEND_NAMESPACE as it isn't consequently used for all references to Qt types.
- ๐ THRIFT-3562 - Removed unused TAsyncProcessor::getAsyncServer()
- THRIFT-3561 - C++/Qt: make use of Q_DISABLE_COPY() to get rid of copy ctor and assignment operator
- THRIFT-3556 - c_glib file descriptor transport
- โ THRIFT-3544 - Make cross test fail when server process died unexpectedly
- THRIFT-3540 - Make python tutorial more in line with PEP8
- THRIFT-3535 - Dart generator argument to produce a file structure usable in parent library
- โจ THRIFT-3505 - Enhance Python TSSLSocket
- ๐ THRIFT-3506 - Eliminate old style classes from library code
- 0๏ธโฃ THRIFT-3503 - Enable py:utf8string by default
- ๐ฆ THRIFT-3499 - Add package_prefix to python generator
- โ THRIFT-3495 - Minor enhancements and fixes for cross test
- THRIFT-3486 - Java generated
getFieldValue
is incompatible withsetFieldValue
for binary values. - THRIFT-3484 - Consolidate temporary buffers in Java's TCompactProtocol
- โ THRIFT-3516 - Add feature test for THeader TBinaryProtocol interop
- โ THRIFT-3515 - Python 2.6 compatibility and test on CI
- THRIFT-3514 - PHP 7 compatible version of binary protocol
- ๐ณ THRIFT-3469 - Docker: Debian support
- THRIFT-3416 - Retire old "xxx_namespace" declarations from the IDL
- THRIFT-3426 - Align autogen comment in XSD
- ๐ THRIFT-3424 - Add CMake android build option
- THRIFT-3439 - Run make cross using Python3 when available
- THRIFT-3440 - Python make check takes too much time
- ๐ THRIFT-3441 - Stabilize Travis-CI builds
- THRIFT-3431 - Avoid "schemes" HashMap lookups during struct reads/writes
- THRIFT-3432 - Add a TByteBuffer transport to the Java library
- ๐ THRIFT-3438 - Enable py:new_style by default
- THRIFT-3405 - Go THttpClient misuses http.Client objects
- โ THRIFT-3614 - Improve logging of test_sslsocket.py
- ๐ THRIFT-3647 - Fix php extension build warnings
- โ THRIFT-3642 - Speed up cross test runner
- THRIFT-3637 - Implement compact protocol for dart
- THRIFT-3613 - Port Python C extension to Python 3
- THRIFT-3612 - Add Python C extension for compact protocol
- โ THRIFT-3611 - Add --regex filter to cross test runner
- THRIFT-3631 - JSON protocol implementation for Lua
- ๐ THRIFT-3609 - Remove or replace TestPortFixture.h
- THRIFT-3605 - Have the compiler complain about invalid arguments and options
- ๐ THRIFT-3596 - Better conformance to PEP8
- THRIFT-3585 - Compact protocol implementation for Lua
- ๐ THRIFT-3582 - Erlang libraries should have service metadata
- THRIFT-3579 - Introduce retry to make cross
- THRIFT-3306 - Java: TBinaryProtocol: Use 1 temp buffer instead of allocating 8
- ๐ THRIFT-3910 - Do not invoke pip as part of build process
- ๐ THRIFT-1857 - Python 3.X Support
- THRIFT-1944 - Binding to zero port
- THRIFT-3954 - Enable the usage of structs called "Object" in Java
- THRIFT-3981 - Enable analyzer strong mode in Dart library
- THRIFT-3998 - Document ability to add custom tags to thrift structs
- ๐ THRIFT-4006 - Add a removeEventListener method on TSocket
๐ New Feature
- ๐ THRIFT-640 - Support deprecation
- ๐ THRIFT-948 - SSL socket support for PHP
- ๐ THRIFT-764 - add Support for Vala language
- THRIFT-3046 - Allow PSR4 class loading for generated classes (PHP)
- ๐ THRIFT-2113 - Erlang SSL Socket Support
- ๐ THRIFT-1482 - Unix domain socket support under PHP
- ๐ THRIFT-519 - Support collections of types without having to explicitly define it
- ๐ THRIFT-468 - Rack Middleware Application for Rails
- THRIFT-1708 - Add event handlers for processor events
- ๐ THRIFT-3834 - Erlang namespacing and exception metadata
- THRIFT-2510 - Implement TNonblockingServer's ability to listen on unix domain sockets
- THRIFT-3397 - Implement TProcessorFactory in C# to enable per-client processors
- THRIFT-3523 - XML Generator
- THRIFT-3510 - Add HttpTaskAsyncHandler implementation
- THRIFT-3318 - PHP: SimpleJSONProtocol Implementation
- THRIFT-3299 - Dart language bindings in Thrift
- THRIFT-2835 - Add possibility to distribute generators separately from thrift core, and load them dynamically
- THRIFT-184 - Add OSGi Manifest headers to the libthrift java library to be able to use Thrift in the OSGi runtime
- ๐ป THRIFT-141 - If a required field is not present on serialization, throw an exception
- ๐ THRIFT-1891 - Add Windows ALPC transport which is right counterpart of Unix domain sockets
Question
- THRIFT-1808 - The Thrift struct should be considered self-contained?
- THRIFT-2895 - Tutorial cpp
- โ THRIFT-3860 - Elephant-bird application Test fails for Thrift
- ๐ THRIFT-3811 - HTTPS Support for C++ applications
- THRIFT-3509 - "make check" error
Story
- THRIFT-3452 - .travis.yml: Migrating from legacy to container-based infrastructure
Sub-task
- ๐ THRIFT-1811 - ruby tutorial as part of the regular build
- ๐ THRIFT-2779 - PHP TJSONProtocol encode unicode into UCS-4LE which can't be parsed by other language bindings
- ๐ THRIFT-2110 - Erlang: Support for Multiplexing Services on any Transport, Protocol and Server
- ๐ท THRIFT-3852 - A Travis-CI job fails with "write error"
- THRIFT-3740 - Fix haxelib.json classpath
- THRIFT-3653 - incorrect union serialization
- THRIFT-3652 - incorrect serialization of optionals
- THRIFT-3655 - incorrect union serialization
- THRIFT-3654 - incorrect serialization of optionals
- THRIFT-3656 - incorrect serialization of optionals
- THRIFT-3699 - Fix integer limit symbol includes in Python C extension
- ๐ THRIFT-3693 - Fix include issue in C++ TSSLSocketInterruptTest on Windows
- ๐ THRIFT-3694 - [Windows] Disable tests of a few servers that are not supported
- ๐ THRIFT-3696 - Install pip to CentOS Docker images to fix Python builds
- THRIFT-3638 - Fix haxelib.json
- THRIFT-3251 - Add http transport for server to Go lib
- THRIFT-2424 - Recursive Types
- THRIFT-2423 - THeader
- THRIFT-2413 - Python: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
- THRIFT-2409 - Java: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
- THRIFT-2412 - D: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
- THRIFT-2411 - C++: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
- THRIFT-2410 - JavaMe: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
- โ THRIFT-2668 - TestSuite: detailed result on passed tests by feature
- โ THRIFT-2659 - python Test Server fails when throwing TException
- ๐ THRIFT-3398 - Add CMake build for Haskell library and tests
- THRIFT-3396 - DART: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
- ๐ THRIFT-3364 - Fix ruby binary field encoding in TJSONProtocol
- THRIFT-3381 - Fix for misc. codegen issues with THRIFT-2905
- โ THRIFT-3573 - No rule to make target `../../../test/c_glib/src/.deps/testthrifttest-thrift_test_handler.Po'.
- THRIFT-3572 - "Unable to determine the behavior of a signed right shift"
- โ THRIFT-3542 - Add length limit support to Java test server
- ๐ THRIFT-3537 - Remove the (now obsolete) csharp:asyncctp flag
- ๐ง THRIFT-3532 - Add configurable string and container read size limit to Python protocols
- โ THRIFT-3531 - Create cross lang feature test for string and container read length limit
- THRIFT-3482 - Haskell JSON protocol does not encode binary field as Base64
- ๐ณ THRIFT-3425 - Minor fixes + simplification for CentOS Dockerfile
- โ THRIFT-3442 - Run CMake tests on Appveyor
- THRIFT-3409 - NodeJS binary field issues
- โ THRIFT-3621 - Fix lib/cpp/test/SecurityTest.cpp to use ephemeral ports
- โ THRIFT-3628 - Fix lib/cpp/test/TServerIntegrationTest.cpp to use ephemeral ports
- โ THRIFT-3625 - Kill unused #include "TestPortFixture.h" in lib/cpp/test/TServerTransportTest.cpp.
- ๐ THRIFT-3646 - Fix Python extension build warnings
- โ THRIFT-3626 - Fix lib/cpp/test/TSocketInterruptTest.cpp to use ephemeral ports.
- โ THRIFT-3624 - Fix lib/cpp/test/TServerSocketTest.cpp to use ephemeral ports
- โ THRIFT-3623 - Fix Fix cpp/lib/test/TSSLSocketInterruptTest.cpp to use ephemeral ports
- โ THRIFT-3592 - Add basic test client
- THRIFT-3980 - add TExtendedBinaryProtocol.java
Task
- ๐ THRIFT-1801 - Sync up TApplicationException codes across languages and thrift implementations
- THRIFT-1259 - Automate versioning
โ Test
- โ THRIFT-3400 - Add Erlang to cross test
- โ THRIFT-3504 - Fix FastbinaryTest.py
Wish
- ๐ THRIFT-3923 - Maybe remove Aereo from the "Powered by" list
- 0๏ธโฃ THRIFT-2149 - Add an option to disable the generation of default operators