nanopb/nanopb
Protocol Buffers with small code size observed · 2026-08-28
Health v2 · maintenance only
88/100
- Activity 99
- Release rhythm 67
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: 376
- age_days: 4144
- days_rel: 8
- days_push: 7
- n_releases_24m: 2
Adoption not part of the score
5537 stars · 1037 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
Nanopb is a small code-size Protocol Buffers implementation in plain ANSI C, designed for microcontrollers and other memory-constrained systems (<10 kB ROM, <1 kB RAM). It includes a Python-based code generator that compiles standard .proto files into static C structures with no malloc requirement.
Use cases
- encode and decode protobuf messages on a microcontroller
- use protocol buffers in embedded C with no dynamic memory allocation
- communicate with a protobuf-based API from an IoT device
- generate C code from .proto files for firmware
- fit protobuf serialization into under 10 kB of ROM
- decode untrusted protobuf data safely on an embedded device
When to choose
- you need Protocol Buffers in C on a memory-restricted embedded system or microcontroller
- you want static allocation with no malloc and predictable RAM usage
- you need a mature, widely deployed C protobuf runtime with a documented security model
When to avoid
- you need full protobuf features like reflection, dynamic messages, or gRPC on a resource-rich platform
- your project is in a higher-level language with official protobuf libraries available
- you need proto3 features or very large field tags without extra compilation options
Facets
library · maturity stable
serialization parser sdk embedded-systems parsers developer-tools iot c cpp embedded cross-platform windows protocol-buffers protobuf microcontrollers code-generation no-malloc small-footprint ansi-c linux macos
7 sources
- readme: https://github.com/nanopb/nanopb · fetched 2026-08-28 · 81f920acb19b
- homepage: https://jpa.kapsi.fi/nanopb/ · fetched 2026-08-29 · 6307eb547d90
- site_page: https://jpa.kapsi.fi/nanopb/docs/security.html · fetched 2026-08-29 · a01687e4df71
- site_page: https://jpa.kapsi.fi/nanopb/docs/index.html · fetched 2026-08-29 · b535a910638f
- site_page: https://jpa.kapsi.fi/nanopb/docs/concepts.html · fetched 2026-08-29 · 5d14d79fc307
- site_page: https://jpa.kapsi.fi/nanopb/docs/reference.html · fetched 2026-08-29 · 0376f991ccce
- site_page: https://jpa.kapsi.fi/nanopb/download · fetched 2026-08-29 · 78f1f48aeb70
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| nanopb/nanopb | main | 88 |
For agents
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem