Mass API rename and clang-reformat (#485) * Wave 1: upb_fielddef. * upb_fielddef itself. * upb_oneofdef. * upb_msgdef. * ExtensionRange. * upb_enumdef * upb_enumvaldef * upb_filedef * upb_methoddef * upb_servicedef * upb_symtab * upb_defpool_init * upb_wellknown and upb_syntax_t * Some constants. * upb_status * upb_strview * upb_arena * upb.h constants * reflection * encode * JSON decode. * json encode. * msg_internal. * Formatted with clang-format. * Some naming fixups and comment reformatting. * More refinements. * A few more stragglers. * Fixed PyObject_HEAD with semicolon. Removed TODO entries.
μpb (often written ‘upb’) is a small protobuf implementation written in C.
upb is the core runtime for protobuf languages extensions in Ruby, PHP, and (soon) Python.
While upb offers a C API, the C API & ABI are not stable. For this reason, upb is not generally offered as a C library for direct consumption, and there are no releases.
upb has comparable speed to protobuf C++, but is an order of magnitude smaller in code size.
Like the main protobuf implementation in C++, it supports:
upb also supports some features that C++ does not:
However there are a few features it does not support:
protoc.For Ruby, use RubyGems:
$ gem install google-protobuf
For PHP, use PECL:
$ sudo pecl install protobuf
Please see CONTRIBUTING.md.