Greplin (YC W10) open sources 10-15x faster protocol buffers for Python
For a long time (much longer than I expected it would take) I've been working on a protobuf implementation in C that does <i>not</i> use Google's C++ implementation at all.  I've been through about three rewrites and I finally have the interface right.  I'm hoping it will be usable with Python soon (weeks).<p><a href="https://github.com/haberman/upb/wiki" rel="nofollow">https://github.com/haberman/upb/wiki</a><p>(if anyone's looking at the code, I'm working on the src-refactoring branch at the moment)<p>The benefits of my approach are:<p>* you can avoid depending on a 1MB C++ library.  upb is more like 30k compiled.<p>* you can avoid doing any code generation.  instead you just load the .proto schema at runtime, so you don't have to get a C++ compiler involved.<p>* Google's protobuf library does have a dynamic/reflection option that avoids my previous point, but it is ~10x slower than generating C++ code.  My library, last time I benchmarked it, was 70-90% of the speed of generated C++.