nanopb-0.3.8 (2016-03-xx) Fix problems with multiple oneofs in same message (#229) Zero-valued extension fields were mistakenly ignored by encoder (#242) Multiple fixes related to proto3 mode (#242, #245, #247, #249) Fix potential unaligned access (#226, #227) Fix documentation for protoc --plugin argument (#239) Extend inline / fixed length bytes array support (#244) Add new option max_length for strings (#107) Make string substream API more robust (#230) Make pb_decode_varint32 public API (#231) Allow overriding proto3 mode (#228) Add optional enum->string mapping function (#223) Add transitional options.proto file (#241) Add better error message on Python library version imcompatibility (#240) Include version number in PlatformIO library.json (#222) CMake build script changes (#236, #237) Change download links to https Improvements to test cases. nanopb-0.3.7 (2016-10-30) Add support for proto3-style singular fields (#182, #206, #216) Updated binary package protoc to version 3.1.0 Add FT_INLINE allocation of bytes fields (#211) Include package name in include guard (#207) Fix missing warning with large bytes fields (issue #220) Added CMake project (#208) Add bazel BUILD file for nanopb (#209) Added an AUTHORS file (#211) Documentation updates Improvements to test cases. nanopb-0.3.6 (2016-06-19) Protect against corrupted _count fields in pb_release (#205) Fix error in STATIC_ASSERT with multiple files (#203) Add -D option to specify output directory (#193) Generate MIN/MAX/ARRAYSIZE defines for enums (#194) Generate comments about uncalculable message sizes (#195) Documentation updates (#196, #201) Improvements to test cases. nanopb-0.3.5 (2016-02-13) NOTE: If you are using pb_syshdr.h, you will need to add uint_least8_t definition. See docs/migration.rst for details. Fix generator crash with Enum inside Oneof (#188) Fix some generator regressions related to .options file path (#172) Add support for platforms without uint8_t (#191) Allow const parameter to pb_istream_from_buffer (#152) Ignore null pointers in pb_release() (#183) Add support for anonymous unions (#184) Add Python3 support to the generator (#169) Add code generator insertion points to generated files (#178) Improvements to CMake script (#181) Improvements to test cases. nanopb-0.3.4 (2015-09-26) Fix handling of unsigned 8- and 16-bit enums (issue 164) Fix generator on systems where python = python3. (issue 155) Fix compiler warning on GCC 5.x (issue 171) Make the generator better handle imported .protos (issue 165) Add packed_enum option to generator. Add syntax= line to .proto files (issue 167) Add PlatformIO registry manifest file. (pr 156) nanopb-0.3.3 (2015-04-10) Fix missing files in Linux binary package (issue 146) Fix generator bug when oneof is first field in a message. (issue 142) Fix generator error when long_names:false is combined with Oneofs. (issue 147) Fix oneof submessage initialization bug. (issue 149) Fix problem with plugin options on Python 2.7.2 and older. (issue 153) Fix crash when callback is inside oneof field. (issue 148) Switch to .tar.gz format for Mac OS X packages. (issue 154) Always define enum long names so that cross-file references work. (issue 118) Add msgid generator option. (issue 151) Improve comment support in .options files. (issue 145) Updates for the CMake rule file, add cmake example. Better error messages for syntax errors in .options file nanopb-0.3.2 (2015-01-24) Fix memory leaks with PB_ENABLE_MALLOC with some submessage hierarchies (issue 138) Implement support for oneofs (C unions). (issues 131, 141) Add int_size option for generator (issue 139) Add compilation option to disable struct packing. (issue 136) Change PB_RETURN_ERROR() macro to avoid compiler warnings (issue 140) Fix build problems with protoc 3.0.0 Add support for POINTER type in extensions Initialize also extension fields to defaults in pb_decode(). Detect too large varint values when decoding. nanopb-0.3.1 (2014-09-11) Fix security issue due to size_t overflows. (issue 132) Fix memory leak with duplicated fields and PB_ENABLE_MALLOC Fix crash if pb_release() is called twice. Fix cyclic message support (issue 130) Fix error in generated initializers for repeated pointer fields. Improve tests (issues 113, 126) nanopb-0.3.0 (2014-08-26) NOTE: See docs/migration.html or online at http://koti.kapsi.fi/~jpa/nanopb/docs/migration.html for changes in this version. Most importantly, you need to add pb_common.c to the list of files to compile. Separated field iterator logic to pb_common.c (issue 128) Change the _count fields to use pb_size_t datatype (issue 82) Added PB_ prefix to macro names (issue 106) Added #if version guard to generated files (issue 129) Added migration document nanopb-0.2.9 (2014-08-09) NOTE: If you are using the -e option with the generator, you have to prepend . to the argument to get the same behaviour as before. Do not automatically add a dot with generator -e option. (issue 122) Fix problem with .options file and extension fields. (issue 125) Don't use SIZE_MAX macro, as it is not in C89. (issue 120) Generate #defines for initializing message structures. (issue 79) Add skip_message option to generator. (issue 121) Add PB_PACKED_STRUCT support for Keil MDK-ARM toolchain (issue 119) Give better messages about the .options file path. (issue 124) Improved tests nanopb-0.2.8 (2014-05-20) Fix security issue with PB_ENABLE_MALLOC. (issue 117) Add option to not add timestamps to .pb.h and .pb.c preambles. (issue 115) Documentation updates Improved tests nanopb-0.2.7 (2014-04-07) Fix bug with default values for extension fields (issue 111) Fix some MISRA-C warnings (issue 91) Implemented optional malloc() support (issue 80) Changed pointer-type bytes field datatype Add a "found" field to pb_extension_t (issue 112) Add convenience function pb_get_encoded_size() (issue 16) nanopb-0.2.6 (2014-02-15) Fix generator error with bytes callback fields (issue 99) Fix warnings about large integer constants (issue 102) Add comments to where STATIC_ASSERT is used (issue 96) Add warning about unknown field names on .options (issue 105) Move descriptor.proto to google/protobuf subdirectory (issue 104) Improved tests nanopb-0.2.5 (2014-01-01) Fix a bug with encoding negative values in int32 fields (issue 97) Create binary packages of the generator + dependencies (issue 47) Add support for pointer-type fields to the encoder (part of issue 80) Fixed path in FindNanopb.cmake (issue 94) Improved tests nanopb-0.2.4 (2013-11-07) Remove the deprecated NANOPB_INTERNALS functions from public API. Document the security model. Check array and bytes max sizes when encoding (issue 90) Add #defines for maximum encoded message size (issue 89) Add #define tags for extension fields (issue 93) Fix MISRA C violations (issue 91) Clean up pb_field_t definition with typedefs. nanopb-0.2.3 (2013-09-18) Improve compatibility by removing ternary operator from initializations (issue 88) Fix build error on Visual C++ (issue 84, patch by Markus Schwarzenberg) Don't stop on unsupported extension fields (issue 83) Add an example pb_syshdr.h file for non-C99 compilers Reorganize tests and examples into subfolders (issue 63) Switch from Makefiles to scons for building the tests Make the tests buildable on Windows nanopb-0.2.2 (2013-08-18) Add support for extension fields (issue 17) Fix unknown fields in empty message (issue 78) Include the field tags in the generated .pb.h file. Add pb_decode_delimited and pb_encode_delimited wrapper functions (issue 74) Add a section in top of pb.h for changing compilation settings (issue 76) Documentation improvements (issues 12, 77 and others) Improved tests nanopb-0.2.1 (2013-04-14) NOTE: The default callback function signature has changed. If you don't want to update your code, define PB_OLD_CALLBACK_STYLE. Change the callback function to use void