Files
nanopb/ProjectHome.md
2015-03-15 10:12:06 -04:00

2.5 KiB

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.

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 releases

The 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 tracker

Benchmarks

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.

https://koti.kapsi.fi/~jpa/nanopb/benchmark/arm_code.png

Also code coverage information is available.

License

License is the zlib license. See LICENSE in the source repository.