
nanopb
Nanopb is a plain-C implementation of Google's Protocol Buffers data format. It is targeted at 32 bit microcontrollers, but is also fit for other embedded systems with tight (2-10 kB ROM, <1 kB RAM) memory constraints. Nanopb supports static memory allocation, i.e. you don't need a malloc implementation and can be sure of the memory requirements of your code.
Nanopb project has moved
Due to Google Code closing down, nanopb project is now hosted on GitHub: https://github.com/nanopb/nanopb
Status
The nanopb core is stable, well tested and supports the following features:
- All protobuf data types
- Required, repeated and optional fields
- Packed arrays
- Nested submessages
- Default values for fields
- Extension fields
Releases
Stable releases of the library are released approximately once a month, unless there are no new developments:
Download stable releasesThe newest git master is also relatively stable. Any breaking development happens in separate branches. For testing the newest features, check out the repository:
git clone https://code.google.com/p/nanopb/
Documentation and support
Read the latest documentation online Ask questions on the discussion forum Report bugs on the issue trackerBenchmarks
Here are some benchmarks of nanopb against other C-based protobuf libraries. Accuracy nor fairness is guaranteed, but full set of scripts to run the benchmarks are provided.
Also code coverage information is available.
License
License is the zlib license. See LICENSE in the source repository.
Project Information
The project was created on Jan 5, 2012.
- License: Other Open Source
- 67 stars
- git-based source control
Labels:
ProtocolBuffers
C
Embedded
Microcontroller
Python