Released on Jul 5, 2024.
- Fix an issue where loading a thrift file in a sub-thread will cause an error with
load_fp
. - Move static metadata from
setup.py
topyproject.toml
. - Using a thread pool to avoid
TAsyncSocket.open
block the event loop.
Released on Jun 24, 2024.
- Fix an issue where loading a thrift file in a sub-thread will cause an error.
- Some typo fixes.
Released on May 7, 2024.
- Dropped Python2 and Python3.5 Support.
- Added SASL transport client.
- Add submodule to sys.path when loading child idl file.
- Support cythonized module on Windows.
- Support using ipv6 in make_client/make_server method.
- Basic multi-thread support in parser.
- Fix another compatibility issue with legacy Python.
- Fix a compatibility issue with legacy Python.
- Make the import hook compatible with Python3.12.
- Added a
strict_decode
option to all protocols to force all strings in the response to be decoded tostr
. - Allow annotations in the
Union
type. - Fixed the
message_type
in oneway request.
Released on Sep 27, 2023.
- Fix Cython build error in latest Python3 version
Released on Nov 15, 2022.
- Fix unexpected binary type id in TBinaryTransport serialization
Released on Nov 8, 2021.
- Support Apache JSON protocol and binary type
- Replace "yield from" syntax to "await"
- Fix some socket leaking cases in aio support
Released on Jan 21, 2021.
- revert support Apache JSON protocol and binary type, via 2-#157.
Released on Jan 19, 2021.
- Support Apache JSON protocol and binary type, via 2-#139.
- Fix HTTP_URI typo in http.py, via 2-#148.
- Support custom headers for HTTP, via 2-#149.
- Support raising TApplicationException in user handlers, via 2-#154.
Released on Oct 13, 2020.
- Support include files with dot in name, via 2-#125.
Released on Mar 17, 2020.
- Support Cython in HTTP and fix TCyBufferedTransport early flush issue, via 2-#129.
- Fix exception handling in TProcessor, via 2-#128.
- Rename socket_timeout to timeout for compatibility, via 2-#115.
Released on Jan 1, 2020.
- Add TAsyncCompactProtocol and TAsyncFramedTransport, via 2-#103.
- Add TAsyncProtocolBase and TAsyncTransportBase, via 2-#108.
- Add __str__ on TProtocolException, via 2-#109.
- Support passing socket_family in make_client, via 2-#110.
Released on November 27, 2019.
- Fix unexpected data length in aio buffer transport, via 2-#102.
Released on October 27, 2019.
- Fix NoneType TypeError happened when calling method struct_to_obj, via 2-#94.
Released on October 4, 2019.
- Fix loading remote IDL file failed on Python 3, via 2-#88.
Released on September 24, 2019.
- Follow strict datatype in TJsonProtocol, via 2-#85.
- Add timeout support to asyncio contrib, via 2-#84.
- Enable socket_timeout on unix_socket, via 2-#83.
- Add url support as optional argument to make_client, via 2-#80.
- Enforce required arguments, fixes #72, via 2-#81.
Released on August 27, 2019.
- Support kwargs style parameters passing in TSimpleServer, via 2-#67.
- Fix #65 allow double const to omit integer part, via 2-#66.
Released on June 11, 2019.
- Enable include_package_data in setup.py, via 2-#44.
- Fix parse error on empty set field value, via 2-#43.
Released on May 24, 2019.
- Fix cannot call thrift method which name's close, via 2-#42.
Released on February 25, 2019.
- Fix parser handling out-of-order definition bugs, via 2-#41.
Released on February 18, 2019.
- Close socket when got a connect error, via 2-#37.
- Add i8 as alias for 'byte', via 2-#38.
- Fix error when loading object which is dumped before changing the IDL, via 2-#34.
Released on December 10, 2018.
Non-Backward Compatible changes:
Released on November 14, 2018.
- handle EINTER signal
Released on September 26, 2018.
- support asyncio
- support tornado 5.x
Released on September 26, 2018.
- update cython version.
Released on August 26, 2016.
- add support for timeout and ssl in make_server / make_client helper funcs, via #204, #205 and #229.
- add support for thrift_file path in http protocol, via #225.
- preserve traceback when re-raise undeclared exception, via #206.
- performance improvement by dynamically compile spec'd __init__ functions, via #210 and #227.
- performance improvement by refine cython encoding/decoding, via #211 and #212.
- bugfix for type error in cast_byte parser and improve include dirs function, via #214
- bugfix for parse error when field begin with true/false keyword, via #215 and #218.
- bugfix for is_open not return false when socket closed after open, via #230.
Released on May 3, 2016.
Released on Mar 24, 2016.
- bugfix for a possible unicode decode error in cybin.
- use a better unhashable implementation for payload.
Released on Mar 24, 2016.
- add compact protocol support, via #159.
- add option to force return bytes on response, via #190.
- bugfix for ssl socket can't be init without certfile and keyfile, and add additional capath argument for SSLContext. via #186.
- bugfix for set_timeout only works before socket open, via #188.
Released on Feb 16, 2016.
- fix another set_timeout backward compat issue introduced in last version.
- make thrift container struct unhashable, via #184.
Released on Feb 3, 2016.
- fix backward compat issue introduced in last version, add back set_timeout api in socket.
Released on Jan 21, 2016.
- add support for ssl transport.
- add named loggers, via #169.
- refine socket and serversocket implementation with more configure options.
- bugfix for parser failure on windows under python3.2 caused by samefile method, via #172.
Released on Oct 12, 2015.
- add __thrift_meta__ attribute to loaded module, via #138.
- add type validation before write data to transport, via #149 and #150.
- add load_fp api to load thrift from file like object, via #154.
- add support for recursive struct definition, via #155.
- add support for integer boolean constants, via #161.
- simplify the read_i08() bool result cast, via #162.
- performance improvements on payload init() func, via #163.
- bugfix for parsing of duplicate field name or id, now will raise error when duplicates detected, via #139.
- bugfix for server side transport not connected error when closing socket, via #143.
- bugfix for a typo error in default_spec generation, via #145.
- bugfix for i16 byte swap bug in OS X, via #148.
Released on May 29, 2015.
- lock down to use pure python only in windows env. (this avoid the cython stuffs on windows totally)
- enable multiple include dirs, via #131.
- bugfix for parsing of constants with separators, via #134.
Released on April 15, 2015.
Non-Backward Compatible changes:
- migrate multiplexed protocol implementation to the same with upstream, via #117.
Released on April 15, 2015.
- add an experimental tracking feature in thriftpy.contrib, via #96.
- add limitation on thrift reserved keyword for compatible with upstream, via #115.
- bugfix EOF grammar error, via #103.
- bugfix for mismatch transport in client caused server crash, via #119.
- bugfix for typedef on included thrift files, via #121.
Released on March 3, 2015.
- support for default enum values that reference the original enum, via #69.
- support for require keyword, via #72.
- support for allow use and definition of types in the same file, via #77.
- support for multiplexing for services, via #88.
- support for cython accelerated memory transport and framed transport, via #93
- bugfix for transport clean in read_struct in cybin, via #70.
- bugfix for large reading size in framed transport, via #73.
- bugfix for cython build failed in older CentOS, via #92.
- bugfix for thrift file version mismatch caused message corrupt in read_struct, via #95.
Non-Backward Compatible changes:
- refined new parser, the parser now behaves very similar to Apache Thrift, and supports a lot more features than the old one, via #80. Refer to the pull request for more detailed changes.
- refined transport, all transports have cython accelerated version. The cython version of protocol and transport are enabled by default now.
Released on December 12, 2014.
- add MIT LICENSE file as requested.
- tests refines with tox and pytest fixtures.
- support for a mostly cythonized version of framed transport, via #66.
- bugfix for unix socket param in rpc.
- bugfix for receiving 0-length strings & framed transport, via #63.
- bugfix for json protocol unicode decode error, via #65.
- bugfix for operator __ne__ implementation error, via #68.
Released on November 8, 2014.
- support for python2.6.
- support for testing by tox.
- support for oneway keyword, via #49.
- bugfix for wrong type args, via #48.
- bugfix for thrift file include keyword, via #53.
- bugfix for skip method not found in protocol, via #55.
- bugfix for set type support, via #59.
- bugfix for 'api' arg name collision in client.
Released on September 24, 2014.
- bugfix for TPayload not able to be hashed in py3, via #44.
- bugfix for cython buffered transport read issue, via #46.
Released on September 18, 2014.
- bugfix for lack of skip func in cython binary protocol, via #43.
Released on September 16, 2014.
- bugfix for init func generator for TStruct.
- bugfix for set constants in parser, via #39.
- add support for "includes" and service "extends", via #37.
- add close() to servers, via #38.
- implement non-strict mode for binary protocol, via #40.
- removed cython ext in pypy, and add pypy3 support.
- some args updates: * add trans_factory arg to make_server * rename rbuf_size in buffered transport to buf_size. * rename isOpen to is_open, readFrame to read_frame.
Released on September 4, 2014.
- bugfix for memory free in cython buffered transport, via #35.
- new thrift parser by PLY, removed cache since the performance is much more faster now, via #36.
Released on September 1, 2014.
- refine cython binary protocol, add cython buffered transport, via #32.
- param name change, rename transport_factory to trans_factory in rpc.
Released on August 28, 2014.
Released on August 19, 2014.
- use args instead of kwargs in api calling to match upstream behavior.
- cython binary protocol auto grow buffer size, via #29.
- bugfix for void api exception handling in processor.
- bugfix for cybin protocol buffer overflow and memcpy, via #27 and #28.
Released on August 14, 2014.
- json protocol, via #21.
- more standard module for loaded sdk, now generated TPayload objects can be pickled when module_name provided, via #22.
- gunicorn_thrift integration pingpong example, via #24.
- token cache now only checks python's major and minor version.
- bugfix for exception handling in void api in RPC request.
- bugfix for negative number value not recognized.
- bugfix for cybin protocol to allow None value in struct.
- bugfix for double free or corruption in cybin protocol, via #26.
Released on July 25, 2014.
- tornado client, server and framed transport support with tornado 4.0, via #15.
- immediately read from TMemoryBuffer after writing to it, via #20.
- cache load function to avoid duplicate module generation.
- support client with socket timeout
- enum struct now has VALUES_TO_NAMES and NAMES_TO_VALUES.
Released on July 17, 2014.
- parser token cache, speed boost for thrift file parsing, via #12.
- new cython binary protocol with speed very close to c ext, via #16.
Released on June 19, 2014.
- support for union, binary fields, support for empty structs, support for Apache Storm thrift file, via #14.
- bugfix for import hook
- bugfix for skip function in binary protocols
Released on June 7, 2014.
- disabled the magic import hook by default. and add install/remove function to switch the hook on and off.
- reworked benchmark suit and add benchmark results.
- new __init__ function code generator. get a noticeable speed boost.
- bug fixes
First public release.