1nanopb-0.4.7 (2022-12-xx)
2 Fix comments generation for submessages (#788)
3 Fix handling of spaces in arguments passed through protoc (#810)
4 Fix problems with multiple files and mangle_names option (#783, #820)
5 Fix generator error when using M_STRIP_PACKAGE without package name (#795)
6 Fix compilation error with fixed size array and FT_POINTER (#630)
7 Fix wrong format in Python Poetry project file (#811)
8 Fix unnecessary generator message when using --quiet (#831)
9 Fix enum_to_string with C++ (#838)
10 Fix /* */ inside .proto file comment
11 Workaround python-protobuf version issues (#787)
12 Safeguard substraction in pb_read() with custom streams (#697)
13 Always include pb_release() as function, instead of macro. (#802)
14 Allow using = instead of : with generator option -s
15 Allow specifying include format without special characters (#810)
16 Allow including headers from inside of extern C (#814)
17 Add option NANOPB_PB2_TEMP_DIR to store nanopb_pb2.py in a temporary dir (#601)
18 Add compile-time error message for when PB_FIELD_32BIT is needed (#680, #827)
19 Add --c-style command line option for naming style (#199, #533, #791)
20 Add --protoc-opt to nanopb_generator.py (#628)
21 Add ENUMTYPE convenience macros (#803)
22 Add Bazel build rules (#360, #500)
23 Generator: keep order of messages when possible
24 Test case improvements (#792)
25 PlatformIO build rule improvements (#808, #809, #819, #834, #839, #840)
26 CMake build rule improvements (#822)
27 CMakeLists: use protoc wrapper script by default (#769)
28
29nanopb-0.4.6 (2022-05-30)
30 Fix passing of error message from substream callback (#703)
31 Fix comments going to wrong member variables (#701)
32 Fix regression in 0.4.3 where generator did not find all dependencies (#720)
33 Fix FindNanopb.cmake not finding options file (#659)
34 Fix double-definition errors with size_union (#692)
35 Fix generator error with same inner message name (#746)
36 Fix infinite recursion in generator/protoc script (#762)
37 Fix unicode comment handling for Python 2 (#740)
38 Fix compiler warnings with PB_BUFFER_ONLY (#717)
39 Fix options dependency in nanopb.mk (#666)
40 Fix handling of filenames with dot in them in FindNanopb.cmake (#756)
41 Add fallback_type option (#772, #773)
42 Use C11 static assert mechanism by default (#761, #766)
43 Use 'static_assert'  keyword for iar (#679)
44 Explicitly check for pItem == NULL to satisfy Xcode analyzer (#667, #674)
45 Support --proto-path as alias to -I (#749)
46 Refactor name mangling to separate class, improve error messages (#735)
47 Move PB_WT_PACKED definition to the header to fix compiler warnings (#671)
48 FindNanopb.cmake: use --nanopb_opt for option passing by default (#752)
49 FindNanopb.cmake: Add option NANOPB_GENERATE_CPP_STANDALONE (#741)
50 FindNanopb.cmake: Add PROTOC_OPTIONS variable (#768, #771)
51 CMakeLists: add build interface for using as a submodule (#669)
52 CMakeLists: fix error with nanopb_BUILD_GENERATOR=OFF (#764)
53 CMakeLists: make more uniform (#676)
54 CMakeLists: Fix uninitialized PYTHON_INSTDIR (#652)
55 Clean up CMake examples (#741)
56 Rebuild nanopb_pb2.py and print version numbers on import failure (#733, #742)
57 Use memcpy instead of iterating on buf_read/write (#751)
58 Add generator support for PlatformIO (#718)
59 Add clean target to generator/proto/Makefile (#681)
60 Windows .bats: use standard python invocation instead of py.exe launcher (#657)
61 Fix problems running tests with newer SCons version
62 Improve handling of varint overflows
63 Improve optimization for little-endian platforms
64
65NOTE: During development, prereleases were published on PlatformIO registry
66as versions 0.4.6 - 0.4.6.3. The version 0.4.6.4 on PlatformIO corresponds
67to the real final 0.4.6 release.
68
69nanopb-0.4.5 (2021-03-22)
70 Fix invalid free() with oneof (#647, GHSA-7mv5-5mxh-qg88)
71 Fix unordered field numbers inside oneof causing fields to be ignored (#617)
72 Fix pb_decode() not initializing fields inside oneof (#635
73 Fix compiler errors with complex oneof hierarchy and sizeof() (#610)
74 Fix descriptor width calculation for 64-bit types (#644)
75 Fix compiler error in generated initializer for submessage callback (#631)
76 Fix duplicate union definition in generated file (#637)
77 Fix test case build error on SCons 4.1.0
78 Pip package: include nanopb_pb2.py (#629)
79 Make generator consider dependencies recursively (#610)
80 Bazel build system updates (#633)
81 Add support for including comments from .proto file (#85, #645)
82
83nanopb-0.4.4 (2020-11-25)
84 Fix memory leak with oneofs and PB_ENABLE_MALLOC (#615, GHSA-85rr-4rh9-hhwh)
85 Fix generator error when oneof contains a single unresolved field size (#610)
86 Fix unsigned enums not working correctly inside OneOf (#611)
87 Fix recursion depth exceeded error in generator (#493)
88 Add '--version' option to nanopb_generator.py (#607)
89 Add support for proto3 optional fields introduced in protoc 3.12 (#591)
90 Add better error message when enum type is not found (#592)
91 Allow specifying descriptorsize on field level also (#546)
92 Allow multiple targets to be created by calling NANOPB_GENERATE_CPP() (#596)
93 Conanfile: Add protobuf-nanopb library to cpp_info.libs (#605)
94 Include version number in generator verbose output
95 Convert documentation to markdown format (#587)
96 Remove outdated transitional generator/nanopb/options.proto.
97 Test case improvements
98 Documentation improvements
99
100nanopb-0.4.3 (2020-09-21)
101 Fix generator error when output is in current directory (#553)
102 Fix issue with unknown message sizes being referred inside oneof encoded size calculation (#569)
103 Fix problem with [default=xxxx, (nanopb).proto3=true] field option combination (#558)
104 Fix cross compilation with Conan build system (#568)
105 Better support C++ types in generated structs (#577)
106 CMake rule improvements (#554, #555, #556, #561, #564)
107 Generator: fix compatibility bug with Python 3.1 and earlier
108 Make Linux and Mac packages use grpcio protoc
109 Make pb_decode_varint32() reject overlong varint encodings.
110 Performance optimizations
111 Test case improvements
112 Documentation improvements
113
114NOTE: version 0.4.3 changes layout of pb_msgdesc_t. It requires recompiling .pb.c files and
115thus breaks ABI compatibility. In general, ABI compatibility is not currently maintained
116between any nanopb versions.
117
118NOTE: There was an apparent false positive virus identification by Windows Defender of the
119PyInstaller 3.6 based Windows package nanopb-0.4.3-windows-x86.zip. The package was replaced
120by nanopb-0.4.3-p1-windows-x86.zip with rebuilt PyInstaller 4.0, which seems to avoid the problem.
121Actual nanopb code is unchanged between the packages.
122
123nanopb-0.4.2 (2020-06-23)
124 Fix buffer overflow when encoding bytes with size set to 65535 (#547, GHSA-3p39-mfxg-hrq4)
125 Fix segfault with pointer fields and proto3_singular_msgs = true. (#504,#505)
126 Fix Windows 10 temp file handling (#486)
127 Fix macro name conflicts (ATMEGA32U4 UENUM and more) (#522)
128 Fix generator error with nested messages and default values (#487)
129 Fix nanopb_generator exception on enums with aliases (#535)
130 Fix compile error when struct members are called X or a (#492)
131 Fix sizeof(union ...) fallback not compiling with C++ (#415, #494)
132 Fix "missing required field" error with submessage callback (#544)
133 Fix field descriptor sizing with submsg_callback option (#545)
134 Fix protoc calling on Python 2 (#503)
135 Fix handling of varying NaN representations in PB_CONVERT_DOUBLE_FLOAT (#543)
136 Fix clang undefined behavior sanitizer errors.
137 Change generator to use Python 3 by default (#441, #509)
138 Binary packages updated to use Python 3 and grpcio-tools
139 Add support for infinity and nan floating-point defaults (#530, #538)
140 Add generator option sort_by_tag (#542)
141 Add type_override option to override type defined in .proto (#497)
142 Set proto2 enum fields to first value when no default is given, even if nonzero (#532,#539)
143 Include protoc-gen-nanopb in path in protoc wrapper script
144 Properly pass error status from protoc wrapper when calling binary protoc
145 Generator: pass --include_imports when calling protoc (#494)
146 Create intermediate directories when writing files to relative path (#512)
147 Add current directory to include path for protoc (#499)
148 Update readme to use nanopb_generator.py directly
149 Regression test for proto3 incorrectly considered empty (#504)
150 CMake: change package name to Nanopb for cmake 3.17 compatibility (#506)
151 CMake: remove find_package(PythonInterp) (#508)
152 CMake: use split --nanopb_opt only on protoc >= 3.6 (#515)
153 CMake: Relax python version spec, allowing Python3. (#534)
154 Swift package manager (#549)
155 Rename BUILD as BUILD.bazel (#537)
156
157Note: Windows binary packages in 0.4.2 and later require Windows 7 or newer.
158
159nanopb-0.4.1 (2020-02-02)
160 Fix invalid free() after failed realloc() (GHSA-gcx3-7m76-287p)
161 Avoid overflows in allocation for packed fields.
162 Verify stream size before allocating string / bytes.
163 Add workaround for avr-libc realloc() bug (#475)
164 Fix bug with field numbers >255 (#407)
165 Fix compilation error on platforms without uint8_t (#485)
166 Fix warnings on Python3.8 (#399, #467)
167 Make fixed_count option work when combined with FT_POINTER.
168 Add missing #define for submsg callbacks, add regression test (#472)
169 Fix ImportError when using generator/protoc with Python 3
170 Remove accidental debug code in generator
171 Reduce stack usage (#484)
172 Remove PB_FIELDINFO_WIDTH option (#473)
173 Add nanopb-specific package name option (#422)
174 Add testcase for Any type (#163)
175 Add exclude option also from .proto/.options
176 Set default include path in the grpc_tools protoc wrapper.
177 Add workaround for python-protobuf 3.6.1 bug (#478)
178 Detect invalid wire type when decoding fields.
179 Improved fuzz testing
180
181nanopb-0.4.0 (2019-12-20)
182 New field descriptor format.
183 Make nanopb_generator automatically compile .proto files (#462)
184 Allow installing as Python package from pip (#460)
185 Use protoc from grpcio-tools Python package if available (#463)
186 Change proto3 message types to be optional (#308, #452)
187 Add pb_decode_ex(), pb_encode_ex() functions.
188 Automatically rebuild nanopb_pb2.py
189 Use plugin.proto that comes with python-protobuf (#234)
190
191 Allow specifying a per-message callback. (#175)
192 Improve callback handling inside oneofs. (#175)
193
194 Introduce new compile time flag: PB_VALIDATE_UTF8 (#437)
195 Add TypenameMangling.M_PACKAGE_INITIALS (#394)
196 Introduce new compile time flag: PB_ENCODE_ARRAYS_UNPACKED (#427)
197 Add default_has option (#423)
198 Add option for including extra files from .pb.h
199 Add generator option to error out on unmatched options (#458)
200 Generator: Allow comma separated options in plugin mode (#343)
201 Allow comma-separated option parsing to handle `#include` (#450)
202 Remove timestamp from generated files by default, add -t to keep it.
203 Make --no-strip-path default (#326)
204 Fix .options file case sensitivity on Windows.
205 Fix generator error with mangle_names option (#380)
206 Take int_size setting into account in calculating message sizes (#373)
207 .gitignore: don't ignore generator-bin files (#419)
208 Cleanup .pb.h header format
209
210 Make tests run on AVR and STM32
211 Add PB_CONVERT_DOUBLE_FLOAT setting to convert doubles on AVR.
212 Store field descriptor constants in flash on AVR (#464)
213 Added "f" suffix to const float declarations. (#453)
214 Fix clang-tidy warnings about using signed integers in binary bitwise operations (#451)
215 Add C++ message descriptors helper (#384)
216 Implement conan recipe (#378)
217 CMake: Split nanopb_out command (#454)
218 CMake: install created shared library(dll) in windows to the binary folder (#447)
219
220nanopb-0.3.9.9 (2022-04-23)
221 Fix Xcode analyzer warnings (#667, #674)
222 Fix clang sanitizer warnings
223
224Note: there are no known functional differences between 0.3.9.8 and 0.3.9.9.
225The changes are merely to fix warnings introduced by new compiler versions.
226
227nanopb-0.3.9.8 (2021-03-22)
228 Fix invalid free() with oneof (#647, GHSA-7mv5-5mxh-qg88)
229 Don't generate lines with trailing spaces (#622)
230 Verify stream size before allocating string / bytes (#620)
231
232nanopb-0.3.9.7 (2020-11-25)
233 Fix memory leak with oneofs and PB_ENABLE_MALLOC (#615, GHSA-85rr-4rh9-hhwh)
234 Fix unsigned enums not working correctly inside OneOf (#611)
235 Add '--version' option to nanopb_generator.py (#607)
236 SwiftPM rule updates (#567, #585)
237
238nanopb-0.3.9.6 (2020-06-23)
239 Fix buffer overflow when encoding bytes with size set to 65535 (#547, GHSA-3p39-mfxg-hrq4)
240 Fix proto3 submessage improperly considered empty (#504)
241 Fix ImportError when using generator/protoc with Python 3
242 Add build rules for Swift package manager (#549)
243
244nanopb-0.3.9.5 (2020-02-02)
245 Fix invalid free() after failed realloc() (GHSA-gcx3-7m76-287p)
246 Add workaround for avr-libc realloc() bug (#475)
247 Fix empty submessages getting encoded in proto3 mode (#395)
248 Avoid overflows in allocation for packed fields.
249
250nanopb-0.3.9.4 (2019-10-13)
251 Fix undefined behavior with bool fields (#434)
252 Fix enum min/max defines when values are not in order (#405)
253 Fix network_server socket example with zero-length strings (#421)
254 Don't call stream read callback with count=0 (#421)
255 Add compile time flag PB_ENCODE_ARRAYS_UNPACKED (#427)
256
257nanopb-0.3.9.3 (2019-03-08)
258 NOTE: nanopb-0.3.9.3.tar.gz before 2019-03-21 was accidentally from 0.4 branch (#388)
259 Fix fixed size and callback repeated fields inside proto3 submessages (#376, #382, #386)
260 Fix incorrect PB_STATIC_ASSERT for bytes inside oneof (#363)
261 Fix generator error with mangle_names option (#380)
262 Generator: Allow comma separated options in plugin mode (#343)
263
264nanopb-0.3.9.2 (2018-11-10)
265 Erroneous free() when using callbacks combined with PB_ENABLE_MALLOC (#346)
266 Fix possible null-pointer dereference in decode_callback_field (#342)
267 Fix FindNanopb.cmake on Windows (#335)
268 Fix large generator memory usage with oneof fields (#338)
269 Fix error in splint test (#359)
270 Allow cmake to build as a shared library (#352, #353)
271 Add --no-strip-path command line option (#326)
272 Option for flattening nested protobuf names (#333)
273 Documentation fixes (#329, #350, #358)
274 Better error messages (#351)
275
276nanopb-0.3.9.1 (2018-04-14)
277 Fix handling of special characters in string/bytes default values (issue #322)
278 Fix encoding of negative numbers with PB_WITHOUT_64BIT (#285)
279 Fix _zero initializer for enums that don't begin at 0. (#295)
280 Multiple CMake fixes (#296, #299, #304, #312, #320)
281 Fix compiler warnings (#305)
282 Fix scons rules for Python 3
283 Add check for large extension field number (issue #306)
284 Updated included descriptor.proto version (#314)
285 Resolve oneof sizes symbolically when needed (#311)
286 Add fixed_count option (#260)
287 Add some verbose prints in generator (issue #238)
288 Add test/example of using 'map' type. (#289)
289
290nanopb-0.3.9 (2017-09-23)
291 Fix bugs in proto3 encoding of submessages (#256)
292 Fix message size calculation for arrays of size 1 (#253)
293 Fix segfault with FT_CALLBACK inside FT_POINTER (#259)
294 Properly detect truncated tags in corrupted messages (#277)
295 Make pb_decode_varint32 overflow checks exact (#258)
296 Add option to build without 64-bit support (#86)
297 Add options to define source and header file extensions (#264)
298 Add pb_en/decode_nullterminated() (part of #278)
299 Add pb_decode_delimited_noinit (#284)
300 CMake: add dependency for .options file (#265)
301 CMake: change use of relative paths (#250,#271,#273)
302 Better error message for missing max_size option (#281)
303 Travis-CI build fixes (#283)
304 Add Bazel build system file (#266)
305
306nanopb-0.3.8 (2017-03-05)
307 Fix problems with multiple oneofs in same message (#229)
308 Zero-valued extension fields were mistakenly ignored by encoder (#242)
309 Multiple fixes related to proto3 mode (#242, #245, #247, #249)
310 Fix potential unaligned access (#226, #227)
311 Fix documentation for protoc --plugin argument (#239)
312 Extend inline / fixed length bytes array support (#244)
313 Add new option max_length for strings (#107)
314 Make string substream API more robust (#230)
315 Make pb_decode_varint32 public API (#231)
316 Allow overriding proto3 mode (#228)
317 Add optional enum->string mapping function (#223)
318 Add transitional options.proto file (#241)
319 Add better error message on Python library version incompatibility (#240)
320 Include version number in PlatformIO library.json (#222)
321 CMake build script changes (#236, #237)
322 Change download links to https
323 Improvements to test cases.
324
325nanopb-0.3.7 (2016-10-30)
326 Add support for proto3-style singular fields (#182, #206, #216)
327 Updated binary package protoc to version 3.1.0
328 Add FT_INLINE allocation of bytes fields (#211)
329 Include package name in include guard (#207)
330 Fix missing warning with large bytes fields (issue #220)
331 Added CMake project (#208)
332 Add bazel BUILD file for nanopb (#209)
333 Added an AUTHORS file (#211)
334 Documentation updates
335 Improvements to test cases.
336
337nanopb-0.3.6 (2016-06-19)
338 Protect against corrupted _count fields in pb_release (#205)
339 Fix error in STATIC_ASSERT with multiple files (#203)
340 Add -D option to specify output directory (#193)
341 Generate MIN/MAX/ARRAYSIZE defines for enums (#194)
342 Generate comments about uncalculable message sizes (#195)
343 Documentation updates (#196, #201)
344 Improvements to test cases.
345
346nanopb-0.3.5 (2016-02-13)
347 NOTE: If you are using pb_syshdr.h, you will need to add uint_least8_t
348 definition. See docs/migration.rst for details.
349
350 Fix generator crash with Enum inside Oneof (#188)
351 Fix some generator regressions related to .options file path (#172)
352 Add support for platforms without uint8_t (#191)
353 Allow const parameter to pb_istream_from_buffer (#152)
354 Ignore null pointers in pb_release() (#183)
355 Add support for anonymous unions (#184)
356 Add Python3 support to the generator (#169)
357 Add code generator insertion points to generated files (#178)
358 Improvements to CMake script (#181)
359 Improvements to test cases.
360
361nanopb-0.3.4 (2015-09-26)
362 Fix handling of unsigned 8- and 16-bit enums (issue 164)
363 Fix generator on systems where python = python3. (issue 155)
364 Fix compiler warning on GCC 5.x (issue 171)
365 Make the generator better handle imported .protos (issue 165)
366 Add packed_enum option to generator.
367 Add syntax= line to .proto files (issue 167)
368 Add PlatformIO registry manifest file. (pr 156)
369
370nanopb-0.3.3 (2015-04-10)
371 Fix missing files in Linux binary package (issue 146)
372 Fix generator bug when oneof is first field in a message. (issue 142)
373 Fix generator error when long_names:false is combined with Oneofs. (issue 147)
374 Fix oneof submessage initialization bug. (issue 149)
375 Fix problem with plugin options on Python 2.7.2 and older. (issue 153)
376 Fix crash when callback is inside oneof field. (issue 148)
377 Switch to .tar.gz format for Mac OS X packages. (issue 154)
378 Always define enum long names so that cross-file references work. (issue 118)
379 Add msgid generator option. (issue 151)
380 Improve comment support in .options files. (issue 145)
381 Updates for the CMake rule file, add cmake example.
382 Better error messages for syntax errors in .options file
383
384nanopb-0.3.2 (2015-01-24)
385 Fix memory leaks with PB_ENABLE_MALLOC with some submessage hierarchies (issue 138)
386 Implement support for oneofs (C unions). (issues 131, 141)
387 Add int_size option for generator (issue 139)
388 Add compilation option to disable struct packing. (issue 136)
389 Change PB_RETURN_ERROR() macro to avoid compiler warnings (issue 140)
390 Fix build problems with protoc 3.0.0
391 Add support for POINTER type in extensions
392 Initialize also extension fields to defaults in pb_decode().
393 Detect too large varint values when decoding.
394
395nanopb-0.3.1 (2014-09-11)
396 Fix security issue due to size_t overflows. (issue 132)
397 Fix memory leak with duplicated fields and PB_ENABLE_MALLOC
398 Fix crash if pb_release() is called twice.
399 Fix cyclic message support (issue 130)
400 Fix error in generated initializers for repeated pointer fields.
401 Improve tests (issues 113, 126)
402
403nanopb-0.3.0 (2014-08-26)
404 NOTE: See docs/migration.html or online at
405 http://koti.kapsi.fi/~jpa/nanopb/docs/migration.html
406 for changes in this version. Most importantly, you need to add
407 pb_common.c to the list of files to compile.
408
409 Separated field iterator logic to pb_common.c (issue 128)
410 Change the _count fields to use pb_size_t datatype (issue 82)
411 Added PB_ prefix to macro names (issue 106)
412 Added #if version guard to generated files (issue 129)
413 Added migration document
414
415nanopb-0.2.9.5 (2020-06-23)
416 Fix buffer overflow when encoding bytes with size set to 65535 (#547, GHSA-3p39-mfxg-hrq4)
417 Backport Python 3 and protoc 3.x fixes to test cases
418
419nanopb-0.2.9.4 (2020-02-02)
420 Fix invalid free() after failed realloc() (GHSA-gcx3-7m76-287p)
421 Add workaround for avr-libc realloc() bug (#475)
422
423nanopb-0.2.9.3 (2016-06-19)
424 Protect against corrupted _count fields in pb_release (#205)
425
426nanopb-0.2.9.2 (2015-01-24)
427 Fix memory leaks with PB_ENABLE_MALLOC with some submessage hierarchies (issue 138)
428 Fix compilation error with generated initializers for repeated pointer fields
429
430nanopb-0.2.9.1 (2014-09-11)
431 Fix security issue due to size_t overflows. (issue 132)
432 Fix memory leak with duplicated fields and PB_ENABLE_MALLOC
433 Fix crash if pb_release() is called twice.
434
435nanopb-0.2.9 (2014-08-09)
436 NOTE: If you are using the -e option with the generator, you have
437 to prepend . to the argument to get the same behaviour as before.
438
439 Do not automatically add a dot with generator -e option. (issue 122)
440 Fix problem with .options file and extension fields. (issue 125)
441 Don't use SIZE_MAX macro, as it is not in C89. (issue 120)
442 Generate #defines for initializing message structures. (issue 79)
443 Add skip_message option to generator. (issue 121)
444 Add PB_PACKED_STRUCT support for Keil MDK-ARM toolchain (issue 119)
445 Give better messages about the .options file path. (issue 124)
446 Improved tests
447
448nanopb-0.2.8 (2014-05-20)
449 Fix security issue with PB_ENABLE_MALLOC. (issue 117)
450 Add option to not add timestamps to .pb.h and .pb.c preambles. (issue 115)
451 Documentation updates
452 Improved tests
453
454nanopb-0.2.7 (2014-04-07)
455 Fix bug with default values for extension fields (issue 111)
456 Fix some MISRA-C warnings (issue 91)
457 Implemented optional malloc() support (issue 80)
458 Changed pointer-type bytes field datatype
459 Add a "found" field to pb_extension_t (issue 112)
460 Add convenience function pb_get_encoded_size() (issue 16)
461
462nanopb-0.2.6 (2014-02-15)
463 Fix generator error with bytes callback fields (issue 99)
464 Fix warnings about large integer constants (issue 102)
465 Add comments to where STATIC_ASSERT is used (issue 96)
466 Add warning about unknown field names on .options (issue 105)
467 Move descriptor.proto to google/protobuf subdirectory (issue 104)
468 Improved tests
469
470nanopb-0.2.5 (2014-01-01)
471 Fix a bug with encoding negative values in int32 fields (issue 97)
472 Create binary packages of the generator + dependencies (issue 47)
473 Add support for pointer-type fields to the encoder (part of issue 80)
474 Fixed path in FindNanopb.cmake (issue 94)
475 Improved tests
476
477nanopb-0.2.4 (2013-11-07)
478 Remove the deprecated NANOPB_INTERNALS functions from public API.
479 Document the security model.
480 Check array and bytes max sizes when encoding (issue 90)
481 Add #defines for maximum encoded message size (issue 89)
482 Add #define tags for extension fields (issue 93)
483 Fix MISRA C violations (issue 91)
484 Clean up pb_field_t definition with typedefs.
485
486nanopb-0.2.3 (2013-09-18)
487 Improve compatibility by removing ternary operator from initializations (issue 88)
488 Fix build error on Visual C++ (issue 84, patch by Markus Schwarzenberg)
489 Don't stop on unsupported extension fields (issue 83)
490 Add an example pb_syshdr.h file for non-C99 compilers
491 Reorganize tests and examples into subfolders (issue 63)
492 Switch from Makefiles to scons for building the tests
493 Make the tests buildable on Windows
494
495nanopb-0.2.2 (2013-08-18)
496 Add support for extension fields (issue 17)
497 Fix unknown fields in empty message (issue 78)
498 Include the field tags in the generated .pb.h file.
499 Add pb_decode_delimited and pb_encode_delimited wrapper functions (issue 74)
500 Add a section in top of pb.h for changing compilation settings (issue 76)
501 Documentation improvements (issues 12, 77 and others)
502 Improved tests
503
504nanopb-0.2.1 (2013-04-14)
505 NOTE: The default callback function signature has changed.
506       If you don't want to update your code, define PB_OLD_CALLBACK_STYLE.
507
508 Change the callback function to use void** (issue 69)
509 Add support for defining the nanopb options in a separate file (issue 12)
510 Add support for packed structs in IAR and MSVC (in addition to GCC) (issue 66)
511 Implement error message support for the encoder side (issue 7)
512 Handle unterminated strings when encoding (issue 68)
513 Fix bug with empty strings in repeated string callbacks (issue 73)
514 Fix regression in 0.2.0 with optional callback fields (issue 70)
515 Fix bugs with empty message types (issues 64, 65)
516 Fix some compiler warnings on clang (issue 67)
517 Some portability improvements (issues 60, 62)
518 Various new generator options
519 Improved tests
520
521nanopb-0.2.0 (2013-03-02)
522 NOTE: This release requires you to regenerate all .pb.c
523       files. Files generated by older versions will not
524       compile anymore.
525
526 Reformat generated .pb.c files using macros (issue 58)
527 Rename PB_HTYPE_ARRAY -> PB_HTYPE_REPEATED
528 Separate PB_HTYPE to PB_ATYPE and PB_HTYPE
529 Move STATIC_ASSERTs to .pb.c file
530 Added CMake file (by Pavel Ilin)
531 Add option to give file extension to generator (by Michael Haberler)
532 Documentation updates
533
534nanopb-0.1.9 (2013-02-13)
535 Fixed error message bugs (issues 52, 56)
536 Sanitize #ifndef filename (issue 50)
537 Performance improvements
538 Add compile-time option PB_BUFFER_ONLY
539 Add Java package name to nanopb.proto
540 Check for sizeof(double) == 8 (issue 54)
541 Added generator option to ignore some fields. (issue 51)
542 Added generator option to make message structs packed. (issue 49)
543 Add more test cases.
544
545nanopb-0.1.8 (2012-12-13)
546 Fix bugs in the enum short names introduced in 0.1.7 (issues 42, 43)
547 Fix STATIC_ASSERT macro when using multiple .proto files. (issue 41)
548 Fix missing initialization of istream.errmsg
549 Make tests/Makefile work for non-gcc compilers (issue 40)
550
551nanopb-0.1.7 (2012-11-11)
552 Remove "skip" mode from pb_istream_t callbacks. Example implementation had a bug. (issue 37)
553 Add option to use shorter names for enum values (issue 38)
554 Improve options support in generator (issues 12, 30)
555 Add nanopb version number to generated files (issue 36)
556 Add extern "C" to generated headers (issue 35)
557 Add names for structs to allow forward declaration (issue 39)
558 Add buffer size check in example (issue 34)
559 Fix build warnings on MS compilers (issue 33)
560
561nanopb-0.1.6 (2012-09-02)
562 Reorganize the field decoder interface (issue 2)
563 Improve performance in submessage decoding (issue 28)
564 Implement error messages in the decoder side (issue 7)
565 Extended testcases (alltypes test is now complete).
566 Fix some compiler warnings (issues 25, 26, 27, 32).
567
568nanopb-0.1.5 (2012-08-04)
569 Fix bug in decoder with packed arrays (issue 23).
570 Extended testcases.
571 Fix some compiler warnings.
572
573nanopb-0.1.4 (2012-07-05)
574 Add compile-time options for easy-to-use >255 field support.
575 Improve the detection of missing required fields.
576 Added example on how to handle union messages.
577 Fix generator error with .proto without messages.
578 Fix problems that stopped the code from compiling with some compilers.
579 Fix some compiler warnings.
580
581nanopb-0.1.3 (2012-06-12)
582 Refactor the field encoder interface.
583 Improve generator error messages (issue 5)
584 Add descriptor.proto into the #include exclusion list
585 Fix some compiler warnings.
586
587nanopb-0.1.2 (2012-02-15)
588 Make the generator to generate include for other .proto files (issue 4).
589 Fixed generator not working on Windows (issue 3)
590
591nanopb-0.1.1 (2012-01-14)
592 Fixed bug in encoder with 'bytes' fields (issue 1).
593 Fixed a bug in the generator that caused a compiler error on sfixed32 and sfixed64 fields.
594 Extended testcases.
595
596nanopb-0.1.0 (2012-01-06)
597 First stable release.
598