nanopb/nanopb

Protocol Buffers with small code size

View on GitHub ↗Jump to charts ↓Open shareable report →

nanopb/nanopb has 5.5k+ stars and 1k+ forks on GitHub, is written in C, and was last pushed on Oct 16, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 52 minutes ago
Added to GitGenius on September 12th, 2026
Created on April 29th, 2015
Open Issues & Pull Requests: 78 (+0)
GitHub issues: Enabled
Number of forks: 1,053
Total Stargazers: 5,584 (+0)
Total Subscribers: 121 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 1.9 hours
Mean response time: 47.6 days
90th percentile: 11.2 days
Tracked items: 127

Maintainer activity

1 person did triage or write work on this repository in the last 12 months.

Counts unlabeled, assigned, unassigned, milestoned, demilestoned, locked, unlocked over the last 12 months. These are issue and pull request events that require triage or write permission. Commits and code review are not counted. labeled and renamed are excluded because GitHub issue forms record the issue author as the actor. Figures from October 11, 2026. This count is not comparable across projects: each project's automation decides which of these events a person emits. How this is counted.

How this project is maintained

75% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 58% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 44
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 931 days
Stale 30+ days: 44
Stale 90+ days: 30

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Priority-Low (32)
  • Component-Generator (26)
  • FixedInGit (25)
  • Type-Review (23)
  • Type-Enhancement (22)
  • Priority-Medium (18)
  • Component-BuildRules (17)
  • Type-Defect (14)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

Nanopb is a Protocol Buffers implementation in ANSI C designed for embedded systems and memory-constrained environments.

Protocol Buffers provide a method for serializing structured data, but the standard implementation carries significant overhead unsuitable for microcontrollers. Nanopb solves this by offering a minimal code-size implementation that generates C code from .proto files. The approach uses a code generator that produces .pb.c and .pb.h files from standard Protocol Buffer definitions, which are then compiled alongside three core library files: pb_encode.c, pb_decode.c, and pb_common.c. This allows developers to use the Protocol Buffers format while keeping the footprint small enough for resource-constrained systems.

Nanopb suits projects targeting microcontrollers or any system with strict memory limitations where standard Protocol Buffers would be impractical. It maintains compatibility with the standard .proto file format, so message definitions work across different Protocol Buffers implementations. The tool includes an options file mechanism for customizing code generation behavior. Developers should expect to use the Python-based generator to compile their protocol definitions and then integrate the resulting C code into their build system. The project provides a simple example in examples/simple to demonstrate the workflow.

The project maintains automated testing across multiple platforms, including embedded targets such as STM32 discovery boards and AVR simulators via Scons-based test infrastructure. Development activity includes both scheduled weekly builds and builds triggered by code changes, indicating ongoing maintenance and verification of functionality across different compiler and platform combinations.