21–25 Sept 2026
Talley Student Union
America/New_York timezone
GRCon26 Call for Participation is Now Open

Automatic Python Bindings for GNU Radio 4 Blocks via nanobind

22 Sept 2026, 11:00
15m
Mountain Ballroom (Talley Student Union)

Mountain Ballroom

Talley Student Union

Talk Packaging GNU Radio for improved end user experience Main Track

Speakers

Anthony GravierMr Carlos DelValle Rivera (KBR)

Description

GNU Radio 3's Python API, while functional, leaves much to be desired for developer ergonomics. Block properties are sparsely documented in Python, forcing developers to cross-reference C++ headers to understand block inputs, outputs, and parameters. This friction-heavy workflow undermines productivity and discourages adoption.

With the arrival of GNU Radio 4, our team saw an opportunity to close this gap from the start. Rather than replicate GR3's ad hoc binding situation, we developed a code generation script that automatically discovers block metadata from GR4's C++ core and emits nanobind-backed Python data classes for every block in the standard library. The result is a Python API where block parameters, port types, and configuration options are first-class, introspectable objects fully visible to language servers and linters.

This talk walks through the design of the discovery script, the nanobind binding strategy, the tradeoffs encountered generating bindings at scale, and the developer experience improvements that motivated the work. We will demonstrate flowgraph authoring in Python with full LSP support, autocomplete, and type checking, capabilities that were effectively unavailable in GR3 and are now table stakes for modern RF development workflows.

Talk Length 15 Minutes
Acknowledge Acknowledge In-Person

Authors

Presentation materials

There are no materials yet.