CHANGES.rst 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. Changelog
  2. =========
  3. 0.3.x
  4. ~~~~~
  5. Version 0.3.9
  6. -------------
  7. Released on August 26, 2016.
  8. - add support for timeout and ssl in `make_server` / `make_client` helper
  9. funcs, via `#204`_, `#205`_ and `#229`_.
  10. - add support for `thrift_file` path in http protocol, via `#225`_.
  11. - preserve traceback when re-raise undeclared exception, via `#206`_.
  12. - performance improvement by dynamically compile spec'd `__init__`
  13. functions, via `#210`_ and `#227`_.
  14. - performance improvement by refine cython encoding/decoding,
  15. via `#211`_ and `#212`_.
  16. - bugfix for type error in `cast_byte` parser and improve include dirs
  17. function, via `#214`_.
  18. - bugfix for parse error when field begin with true/false keyword,
  19. via `#215`_ and `#218`_.
  20. - bugfix for `is_open` not return false when socket closed after open,
  21. via `#230`_.
  22. .. _`#204`: https://github.com/eleme/thriftpy/pull/204
  23. .. _`#205`: https://github.com/eleme/thriftpy/pull/205
  24. .. _`#206`: https://github.com/eleme/thriftpy/pull/206
  25. .. _`#210`: https://github.com/eleme/thriftpy/pull/210
  26. .. _`#211`: https://github.com/eleme/thriftpy/pull/211
  27. .. _`#212`: https://github.com/eleme/thriftpy/pull/212
  28. .. _`#214`: https://github.com/eleme/thriftpy/pull/214
  29. .. _`#215`: https://github.com/eleme/thriftpy/pull/215
  30. .. _`#218`: https://github.com/eleme/thriftpy/pull/218
  31. .. _`#225`: https://github.com/eleme/thriftpy/pull/225
  32. .. _`#227`: https://github.com/eleme/thriftpy/pull/227
  33. .. _`#229`: https://github.com/eleme/thriftpy/pull/229
  34. .. _`#230`: https://github.com/eleme/thriftpy/pull/230
  35. Version 0.3.8
  36. -------------
  37. Released on May 3, 2016.
  38. - add propagate decode_response to nested structs, via `#194`_.
  39. - add support for tornado ssl, via `#196`_.
  40. .. _`#194`: https://github.com/eleme/thriftpy/pull/194
  41. .. _`#196`: https://github.com/eleme/thriftpy/pull/196
  42. Version 0.3.7
  43. -------------
  44. Released on Mar 24, 2016.
  45. - bugfix for a possible unicode decode error in cybin.
  46. - use a better unhashable implementation for payload.
  47. Version 0.3.6
  48. -------------
  49. Released on Mar 24, 2016.
  50. - add compact protocol support, via `#159`_.
  51. - add option to force return bytes on response, via `#190`_.
  52. - bugfix for ssl socket can't be init without certfile and keyfile,
  53. and add additional `capath` argument for SSLContext. via `#186`_.
  54. - bugfix for set_timeout only works before socket open, via `#188`_.
  55. .. _`#159`: https://github.com/eleme/thriftpy/pull/159
  56. .. _`#186`: https://github.com/eleme/thriftpy/pull/186
  57. .. _`#188`: https://github.com/eleme/thriftpy/pull/188
  58. .. _`#190`: https://github.com/eleme/thriftpy/pull/190
  59. Version 0.3.5
  60. -------------
  61. Released on Feb 16, 2016.
  62. - fix another set_timeout backward compat issue introduced in last version.
  63. - make thrift container struct unhashable, via `#184`_.
  64. .. _`#184`: https://github.com/eleme/thriftpy/pull/184
  65. Version 0.3.4
  66. -------------
  67. Released on Feb 3, 2016.
  68. - fix backward compat issue introduced in last version, add back
  69. `set_timeout` api in socket.
  70. Version 0.3.3
  71. -------------
  72. Released on Jan 21, 2016.
  73. - add support for ssl transport.
  74. - add named loggers, via `#169`_.
  75. - refine socket and serversocket implementation with more configure options.
  76. - bugfix for parser failure on windows under python3.2 caused by samefile
  77. method, via `#172`_.
  78. .. _`#169`: https://github.com/eleme/thriftpy/pull/169
  79. .. _`#172`: https://github.com/eleme/thriftpy/pull/172
  80. Version 0.3.2
  81. -------------
  82. Released on Oct 12, 2015.
  83. - add `__thrift_meta__` attribute to loaded module, via `#138`_.
  84. - add type validation before write data to transport, via `#149`_ and `#150`_.
  85. - add load_fp api to load thrift from file like object, via `#154`_.
  86. - add support for recursive struct definition, via `#155`_.
  87. - add support for integer boolean constants, via `#161`_.
  88. - simplify the read_i08() bool result cast, via `#162`_.
  89. - performance improvements on payload `init()` func, via `#163`_.
  90. - bugfix for parsing of duplicate field name or id, now will raise error
  91. when duplicates detected, via `#139`_.
  92. - bugfix for server side transport not connected error when closing socket,
  93. via `#143`_.
  94. - bugfix for a typo error in `default_spec` generation, via `#145`_.
  95. - bugfix for i16 byte swap bug in OS X, via `#148`_.
  96. .. _`#138`: https://github.com/eleme/thriftpy/pull/138
  97. .. _`#139`: https://github.com/eleme/thriftpy/pull/139
  98. .. _`#143`: https://github.com/eleme/thriftpy/pull/143
  99. .. _`#145`: https://github.com/eleme/thriftpy/pull/145
  100. .. _`#148`: https://github.com/eleme/thriftpy/pull/148
  101. .. _`#149`: https://github.com/eleme/thriftpy/pull/149
  102. .. _`#150`: https://github.com/eleme/thriftpy/pull/150
  103. .. _`#154`: https://github.com/eleme/thriftpy/pull/154
  104. .. _`#155`: https://github.com/eleme/thriftpy/pull/155
  105. .. _`#161`: https://github.com/eleme/thriftpy/pull/161
  106. .. _`#162`: https://github.com/eleme/thriftpy/pull/162
  107. .. _`#163`: https://github.com/eleme/thriftpy/pull/163
  108. Version 0.3.1
  109. -------------
  110. Released on May 29, 2015.
  111. - lock down to use pure python only in windows env. (this avoid the cython
  112. stuffs on windows totally)
  113. - enable multiple include dirs, via `#131`_.
  114. - bugfix for parsing of constants with separators, via `#134`_.
  115. .. _`#131`: https://github.com/eleme/thriftpy/pull/131
  116. .. _`#134`: https://github.com/eleme/thriftpy/pull/134
  117. Version 0.3.0
  118. -------------
  119. Released on April 15, 2015.
  120. Non-Backward Compatible changes:
  121. - migrate multiplexed protocol implementation to the same with upstream,
  122. via `#117`_.
  123. .. _`#117`: https://github.com/eleme/thriftpy/pull/117
  124. 0.2.x
  125. ~~~~~
  126. Version 0.2.1
  127. -------------
  128. Released on April 15, 2015.
  129. - add an experimental tracking feature in `thriftpy.contrib`, via `#96`_.
  130. - add limitation on thrift reserved keyword for compatible with upstream, via
  131. `#115`_.
  132. - bugfix EOF grammar error, via `#103`_.
  133. - bugfix for mis-mach transport in client caused server crash, via `#119`_.
  134. - bugfix for typedef on included thrift files, via `#121`_.
  135. .. _`#96`: https://github.com/eleme/thriftpy/pull/96
  136. .. _`#103`: https://github.com/eleme/thriftpy/pull/103
  137. .. _`#115`: https://github.com/eleme/thriftpy/pull/115
  138. .. _`#119`: https://github.com/eleme/thriftpy/pull/119
  139. .. _`#121`: https://github.com/eleme/thriftpy/pull/121
  140. Version 0.2.0
  141. -------------
  142. Released on March 3, 2015.
  143. - support for default enum values that reference the original enum, via
  144. `#69`_.
  145. - support for `require` keyword, via `#72`_.
  146. - support for allow use and definition of types in the same file, via
  147. `#77`_.
  148. - support for multiplexing for services, via `#88`_.
  149. - support for cython accelerated memory transport and framed transport,
  150. via `#93`
  151. - bugfix for transport clean in read_struct in cybin, via `#70`_.
  152. - bugfix for large reading size in framed transport, via `#73`_.
  153. - bugfix for cython build failed in older CentOS, via `#92`_.
  154. - bugfix for thrift file version mis-match caused message corrupt in
  155. `read_struct`, via `#95`_.
  156. Non-Backward Compatible changes:
  157. - refined new parser, the parser now behaves very similar to Apache Thrift,
  158. and supports a lot more features than the old one, via `#80`_. Refer to the
  159. pull request for more detailed changes.
  160. - refined transport, all transports have cython accelerated version. The
  161. cython version of protocol and transport are enabled by default now.
  162. .. _`#69`: https://github.com/eleme/thriftpy/pull/69
  163. .. _`#70`: https://github.com/eleme/thriftpy/pull/70
  164. .. _`#72`: https://github.com/eleme/thriftpy/pull/72
  165. .. _`#73`: https://github.com/eleme/thriftpy/pull/73
  166. .. _`#77`: https://github.com/eleme/thriftpy/pull/77
  167. .. _`#80`: https://github.com/eleme/thriftpy/pull/80
  168. .. _`#88`: https://github.com/eleme/thriftpy/pull/88
  169. .. _`#91`: https://github.com/eleme/thriftpy/pull/91
  170. .. _`#92`: https://github.com/eleme/thriftpy/pull/92
  171. .. _`#93`: https://github.com/eleme/thriftpy/pull/93
  172. .. _`#95`: https://github.com/eleme/thriftpy/pull/95
  173. 0.1.x
  174. ~~~~~
  175. Version 0.1.15
  176. --------------
  177. Released on December 12, 2014.
  178. - add MIT `LICENSE` file as requested.
  179. - tests refines with tox and pytest fixtures.
  180. - support for a mostly cythonized version of framed transport, via `#66`_.
  181. - bugfix for unix socket param in rpc.
  182. - bugfix for receiving 0-length strings & framed transport, via `#63`_.
  183. - bugfix for json protocol unicode decode error, via `#65`_.
  184. - bugfix for operator `__ne__` implementation error, via `#68`_.
  185. .. _`#66`: https://github.com/eleme/thriftpy/pull/66
  186. .. _`#63`: https://github.com/eleme/thriftpy/pull/63
  187. .. _`#65`: https://github.com/eleme/thriftpy/pull/65
  188. .. _`#68`: https://github.com/eleme/thriftpy/pull/68
  189. Version 0.1.14
  190. --------------
  191. Released on November 8, 2014.
  192. - support for python2.6.
  193. - support for testing by tox.
  194. - support for oneway keyword, via `#49`_.
  195. - bugfix for wrong type args, via `#48`_.
  196. - bugfix for thrift file include keyword, via `#53`_.
  197. - bugfix for skip method not found in protocol, via `#55`_.
  198. - bugfix for set type support, via `#59`_.
  199. - bugfix for 'api' arg name collision in client.
  200. .. _`#48`: https://github.com/eleme/thriftpy/pull/48
  201. .. _`#49`: https://github.com/eleme/thriftpy/pull/49
  202. .. _`#53`: https://github.com/eleme/thriftpy/pull/53
  203. .. _`#55`: https://github.com/eleme/thriftpy/pull/55
  204. .. _`#59`: https://github.com/eleme/thriftpy/pull/59
  205. Version 0.1.13
  206. --------------
  207. Released on September 24, 2014.
  208. - bugfix for TPayload not able to be hashed in py3, via `#44`_.
  209. - bugfix for cython buffered transport read issue, via `#46`_.
  210. .. _`#44`: https://github.com/eleme/thriftpy/pull/44
  211. .. _`#46`: https://github.com/eleme/thriftpy/pull/46
  212. Version 0.1.12
  213. --------------
  214. Released on September 18, 2014.
  215. - bugfix for lack of `skip` func in cython binary protocol, via `#43`_.
  216. .. _`#43`: https://github.com/eleme/thriftpy/pull/43
  217. Version 0.1.11
  218. --------------
  219. Released on September 16, 2014.
  220. - bugfix for init func generator for TStruct.
  221. - bugfix for set constants in parser, via `#39`_.
  222. - add support for "includes" and service "extends", via `#37`_.
  223. - add close() to servers, via `#38`_.
  224. - implement non-strict mode for binary protocol, via `#40`_.
  225. - removed cython ext in pypy, and add pypy3 support.
  226. - some args updates:
  227. * add `trans_factory` arg to `make_server`
  228. * rename `rbuf_size` in buffered transport to `buf_size`.
  229. * rename `isOpen` to `is_open`, `readFrame` to `read_frame`.
  230. .. _`#37`: https://github.com/eleme/thriftpy/pull/37
  231. .. _`#38`: https://github.com/eleme/thriftpy/pull/38
  232. .. _`#39`: https://github.com/eleme/thriftpy/pull/39
  233. .. _`#40`: https://github.com/eleme/thriftpy/pull/40
  234. Version 0.1.10
  235. --------------
  236. Released on September 4, 2014.
  237. - bugfix for memory free in cython buffered transport, via `#35`_.
  238. - new thrift parser by PLY, removed cache since the performance is much more
  239. faster now, via `#36`_.
  240. .. _`#35`: https://github.com/eleme/thriftpy/pull/35
  241. .. _`#36`: https://github.com/eleme/thriftpy/pull/36
  242. Version 0.1.9
  243. -------------
  244. Released on September 1, 2014.
  245. - refine cython binary protocol, add cython buffered transport, via `#32`_.
  246. - param name change, rename transport_factory to trans_factory in rpc.
  247. .. _`#32`: https://github.com/eleme/thriftpy/pull/32
  248. Version 0.1.8
  249. -------------
  250. Released on August 28, 2014.
  251. - faster thrift file parse speed, via `#30`_.
  252. - bugfix for cybin buffer read, via `#31`_.
  253. .. _`#30`: https://github.com/eleme/thriftpy/pull/30
  254. .. _`#31`: https://github.com/eleme/thriftpy/pull/31
  255. Version 0.1.7
  256. -------------
  257. Released on August 19, 2014.
  258. - use args instead of kwargs in api calling to match upstream behavior.
  259. - cython binary protocol auto grow buffer size, via `#29`_.
  260. - bugfix for void api exception handling in processor.
  261. - bugfix for cybin protocol buffer overflow and memcpy, via `#27`_ and `#28`_.
  262. .. _`#27`: https://github.com/eleme/thriftpy/pull/27
  263. .. _`#28`: https://github.com/eleme/thriftpy/pull/28
  264. .. _`#29`: https://github.com/eleme/thriftpy/pull/29
  265. Version 0.1.6
  266. -------------
  267. Released on August 14, 2014.
  268. - json protocol, via `#21`_.
  269. - more standard module for loaded sdk, now generated TPayload objects can
  270. be pickled when module_name provided, via `#22`_.
  271. - gunicorn_thrift integration pingpong example, via `#24`_.
  272. - token cache now only checks python's major and minor version.
  273. - bugfix for exception handling in void api in RPC request.
  274. - bugfix for negative number value not recognized.
  275. - bugfix for cybin protocol to allow None value in struct.
  276. - bugfix for double free or corruption in cybin protocol, via `#26`_.
  277. .. _`#21`: https://github.com/eleme/thriftpy/pull/21
  278. .. _`#22`: https://github.com/eleme/thriftpy/pull/22
  279. .. _`#24`: https://github.com/eleme/thriftpy/pull/24
  280. .. _`#26`: https://github.com/eleme/thriftpy/pull/26
  281. Version 0.1.5
  282. -------------
  283. Released on July 25, 2014.
  284. - tornado client, server and framed transport support with tornado 4.0,
  285. via `#15`_.
  286. - immediately read from TMemoryBuffer after writing to it, via `#20`_.
  287. - cache `load` function to avoid duplicate module generation.
  288. - support client with socket timeout
  289. - enum struct now has VALUES_TO_NAMES and NAMES_TO_VALUES.
  290. .. _`#15`: https://github.com/eleme/thriftpy/pull/15
  291. .. _`#20`: https://github.com/eleme/thriftpy/pull/20
  292. Version 0.1.4
  293. -------------
  294. Released on July 17, 2014.
  295. - parser token cache, speed boost for thrift file parsing, via `#12`_.
  296. - new cython binary protocol with speed very close to c ext, via `#16`_.
  297. .. _`#12`: https://github.com/eleme/thriftpy/pull/14
  298. .. _`#16`: https://github.com/eleme/thriftpy/pull/14
  299. Version 0.1.3
  300. -------------
  301. Released on June 19, 2014.
  302. - support for union, binary fields, support for empty structs,
  303. support for Apache Storm thrift file, via `#14`_.
  304. - bugfix for import hook
  305. - bugfix for skip function in binary protocols
  306. .. _`#14`: https://github.com/eleme/thriftpy/pull/14
  307. Version 0.1.2
  308. -------------
  309. Released on June 7, 2014.
  310. - disabled the magic import hook by default. and add install/remove
  311. function to switch the hook on and off.
  312. - reworked benchmark suit and add benchmark results.
  313. - new `__init__` function code generator. get a noticable speed boost.
  314. - bug fixes
  315. Version 0.1.1
  316. -------------
  317. First public release.