9 comments

[ 55.0 ms ] story [ 185 ms ] thread
Great to see some competition to the official (and slightly unloved) implementation, especially since you're working on accelerated binary protocol, which the official implementation lacks (at least last I checked!). One thing I'd suggest, though:

> Can import thrift file as normal py modules. The sdk code is generated on the fly.

This kind of thing immediately puts me off using the module. Messing with process-global state just for the sake of convenience really isn't worth the risk, if your intention is to develop serious software, where lives and livelihoods might at some point depend on its reliability. As "import this" puts it, "special cases aren't special enough to break the rules."

Would rather see the module import hook stuff removed, or at least easily disabled. (e.g. have you tried to see how it works in combination with something like py2exe? I suspect it will break)

I just updated the code, now the magic import hook is disabled by default, and can be install/remove by func.
Thrift does have an accelerated binary protocol for Python, written in C and wrapped as a python module.
I like the fact that its pure python. This makes it perfect for use on PyPy or Jython. +1
The support for Python3 here is killer; Thrift amazingly has yet to merge a number of patches that would enable py3 support despite many requests.
No support for SSL/TLS transport? Or am I just not finding it in the sources? :-/
Interesting. There is a similar project for Go with an alternative compiler and implementation: https://github.com/samuel/go-thrift

Last I checked, the state of the default thrift Go bindings was very lacking, so I'm using this library instead.