# Nunavut

**URL:** https://forum.opencyphal.org/c/app/nunavut/13.md

[Latest](https://forum.opencyphal.org/latest.md) · [Categories](https://forum.opencyphal.org/categories.md)

---

## [About the Nunavut category](https://forum.opencyphal.org/t/about-the-nunavut-category/481)

<div class="topic-metadata">

**Author:** [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Replies:** 3\
**Last updated:** [July 21, 2021, 10:07am UTC](https://forum.opencyphal.org/t/about-the-nunavut-category/481 "2021-07-21T10:07:50Z")

</div>

Nunavut is a UAVCAN DSDL code generator that automates exposing a pydsdl abstract syntax tree to Jinja2 templates allowing authors to generate code, schemas, metadata, documentation, etc. The documentation for Nunav…

---

## [New proposed project: llvm-dsdl](https://forum.opencyphal.org/t/new-proposed-project-llvm-dsdl/2450)

<div class="topic-metadata">

**Author:** [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Replies:** 24\
**Last updated:** [August 10, 2026, 5:33pm UTC](https://forum.opencyphal.org/t/new-proposed-project-llvm-dsdl/2450 "2026-08-10T17:33:29Z")

</div>

llvm-dsdl I’m proposing replacing pydsdl and nunavut both with a new project that does all code generation using MLIR and LLVM I’ve code-generated a version that will generate c, c++, c++/pmr, Rust (std), Go, Python,…

---

## [3.0.0.dev1 is now on Pypi](https://forum.opencyphal.org/t/3-0-0-dev1-is-now-on-pypi/2358)

<div class="topic-metadata">

**Author:** [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Replies:** 1\
**Last updated:** [April 3, 2025, 5:34pm UTC](https://forum.opencyphal.org/t/3-0-0-dev1-is-now-on-pypi/2358 "2025-04-03T17:34:50Z")

</div>

As the Nunavut project prepairs for it’s 3.0 release we have started to post preview releases to Pypi. The latest can be installed as pip install nunavut==3.0.0.dev1

---

## [Nunavut 3.0 preview branch](https://forum.opencyphal.org/t/nunavut-3-0-preview-branch/2190)

<div class="topic-metadata">

**Author:** [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Replies:** 0\
**Last updated:** [August 27, 2024, 9:47pm UTC](https://forum.opencyphal.org/t/nunavut-3-0-preview-branch/2190 "2024-08-27T21:47:44Z")

</div>

I’ve pushed a new branch for Nunavut GitHub - OpenCyphal/nunavut at 3.0.preview. This is not released on Pypi yet nor has it been peer reviewed. That said, I think it’s functional (the tests all pass) and I’d love to get…

---

## [Nunavut 3.0 and 4.0](https://forum.opencyphal.org/t/nunavut-3-0-and-4-0/2167)

<div class="topic-metadata">

**Author:** [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Replies:** 0\
**Last updated:** [July 25, 2024, 4:18am UTC](https://forum.opencyphal.org/t/nunavut-3-0-and-4-0/2167 "2024-07-25T04:18:34Z")

</div>

First, I’d like to acknowledge that I’ve been neglecting Nunavut lately. Sorry. I’m currently working on a 3.0 release in concert with pydsdl 1.22.0 (as soon as @pavel.kirienko approves Allow relative target paths by thi…

---

## [Integrating Nunavut with a Makefile based build process](https://forum.opencyphal.org/t/integrating-nunavut-with-a-makefile-based-build-process/2036)

<div class="topic-metadata">

**Author:** [@ych](https://forum.opencyphal.org/u/ych)\
**Replies:** 1\
**Last updated:** [November 28, 2023, 2:42pm UTC](https://forum.opencyphal.org/t/integrating-nunavut-with-a-makefile-based-build-process/2036 "2023-11-28T14:42:54Z")

</div>

I’m working on integrating nnvg from Nunavut into our build process, which is based on Makefile. The files generated by nnvg include a disclaimer about version control, suggesting they should be generated as part of the …

---

## [Jinja: Variable length array types incorrectly appear to be fixed length in some contexts](https://forum.opencyphal.org/t/jinja-variable-length-array-types-incorrectly-appear-to-be-fixed-length-in-some-contexts/2005)

<div class="topic-metadata">

**Author:** [@willeccles](https://forum.opencyphal.org/u/willeccles)\
**Replies:** 2\
**Last updated:** [October 18, 2023, 1:46pm UTC](https://forum.opencyphal.org/t/jinja-variable-length-array-types-incorrectly-appear-to-be-fixed-length-in-some-contexts/2005 "2023-10-18T13:46:28Z")

</div>

For the sake of brevity I will provide a couple of simple data types and a snippet of Jinja to add to the default C templates. Given the following data type declarations: stuff/InnerType.1.0.dsdl: # InnerType.1.0 bool…

---

## [Windows.h clobbers public regulated data types generated code](https://forum.opencyphal.org/t/windows-h-clobbers-public-regulated-data-types-generated-code/1994)

<div class="topic-metadata">

**Author:** [@willeccles](https://forum.opencyphal.org/u/willeccles)\
**Replies:** 1\
**Last updated:** [October 10, 2023, 5:36pm UTC](https://forum.opencyphal.org/t/windows-h-clobbers-public-regulated-data-types-generated-code/1994 "2023-10-10T17:36:05Z")

</div>

While working on a project using nnvg, I discovered that my code built perfectly with GCC, but would fail to build with MSVC. The error was in the generated header file for uavcan.si.unit.pressure.Scalar.1.0. Given the f…

---

## [Nunavut v2.2 with Python code generation support is out](https://forum.opencyphal.org/t/nunavut-v2-2-with-python-code-generation-support-is-out/1965)

<div class="topic-metadata">

**Author:** [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Replies:** 0\
**Last updated:** [August 18, 2023, 7:55pm UTC](https://forum.opencyphal.org/t/nunavut-v2-2-with-python-code-generation-support-is-out/1965 "2023-08-18T19:55:02Z")

</div>

Rejoice, comrades, for Nunavut v2.2 has been released. This release brings the long-awaited Python code generation capability. Observe: nnvg --target-language py public\_regulated\_data\_types/reg --lookup-dir public\_regu…

---

## [Documentation of Nunavut migration](https://forum.opencyphal.org/t/documentation-of-nunavut-migration/1931)

<div class="topic-metadata">

**Author:** [@Niko](https://forum.opencyphal.org/u/Niko)\
**Replies:** 1\
**Last updated:** [July 6, 2023, 4:59pm UTC](https://forum.opencyphal.org/t/documentation-of-nunavut-migration/1931 "2023-07-06T16:59:22Z")

</div>

I am trying to update the Nunavut Version inside of Nunaweb from 1.3.0 to the current 2.1.1 (see: nunaserver/requirements.txt). Right now I have my difficulties with the implementation of the rewritten LanguageContextBu…

---

## [Unable to use common filters in custom templates](https://forum.opencyphal.org/t/unable-to-use-common-filters-in-custom-templates/1910)

<div class="topic-metadata">

**Author:** [@willeccles](https://forum.opencyphal.org/u/willeccles)\
**Replies:** 6\
**Last updated:** [June 14, 2023, 9:59pm UTC](https://forum.opencyphal.org/t/unable-to-use-common-filters-in-custom-templates/1910 "2023-06-14T21:59:35Z")

</div>

I intended to write my own templates for C generation, so I went ahead and copied the contents of lang/c/templates to a new directory. Before attempting to modify them, I tried to generate C headers with these new templa…

---

## [How to fill and read a nunavut::support::VariableLengthArray\<std::uint8\_t, 50\>](https://forum.opencyphal.org/t/how-to-fill-and-read-a-nunavut-variablelengtharray-std-uint8-t-50/1897)

<div class="topic-metadata">

**Author:** [@rebeccaRossRobotics](https://forum.opencyphal.org/u/rebeccaRossRobotics)\
**Replies:** 9\
**Last updated:** [May 25, 2023, 8:38am UTC](https://forum.opencyphal.org/t/how-to-fill-and-read-a-nunavut-variablelengtharray-std-uint8-t-50/1897 "2023-05-25T08:38:38Z")

</div>

Hi there! I’m currently attempting to use the .dsdl data types for the first time. I’m wondering if you could give me an example on how to fill and then read a nunavut::support::VariableLengthArray\<std::uint8\_t, 50\> Mo…

---

## [Using custom DSDL with 107-Arduino-OpenCyphal and PIO](https://forum.opencyphal.org/t/using-custom-dsdl-with-107-arduino-opencyphal-and-pio/1830)

<div class="topic-metadata">

**Author:** [@not7cd](https://forum.opencyphal.org/u/not7cd)\
**Replies:** 1\
**Last updated:** [February 23, 2023, 10:24am UTC](https://forum.opencyphal.org/t/using-custom-dsdl-with-107-arduino-opencyphal-and-pio/1830 "2023-02-23T10:24:33Z")

</div>

What is recommended way to integrate project-specific namespace to an Arduino project? I’m using PlatformIO, which also has its own dependency management. Should I generate my headers into src/types or .pio/libdeps/pico…

---

## [Nunavut Python Library to use SupportGenerator](https://forum.opencyphal.org/t/nunavut-python-library-to-use-supportgenerator/1703)

<div class="topic-metadata">

**Author:** [@pat1](https://forum.opencyphal.org/u/pat1)\
**Replies:** 3\
**Last updated:** [July 6, 2022, 8:16pm UTC](https://forum.opencyphal.org/t/nunavut-python-library-to-use-supportgenerator/1703 "2022-07-06T20:16:13Z")

</div>

I am trying to use nunavut python library to generate support includes as I do from command line like: nnvg --target-language c -O include --target-endianness little --generate-support only" I am trying code like th…

---

## [C++: Capacity of variable length array](https://forum.opencyphal.org/t/c-capacity-of-variable-length-array/1700)

<div class="topic-metadata">

**Author:** [@JustinOng](https://forum.opencyphal.org/u/JustinOng)\
**Replies:** 3\
**Last updated:** [July 5, 2022, 10:00pm UTC](https://forum.opencyphal.org/t/c-capacity-of-variable-length-array/1700 "2022-07-05T22:00:06Z")

</div>

Hello, I’ve been experimenting with the C++ language output of nunavut. I might have missed something, but I don’t see a way for an application to retrieve the maximum capacity of a variable length array from the genera…

---

## [Nunavut does not produce the data type signature](https://forum.opencyphal.org/t/nunavut-does-not-produce-the-data-type-signature/1619)

<div class="topic-metadata">

**Author:** [@FliyOvis](https://forum.opencyphal.org/u/FliyOvis)\
**Replies:** 6\
**Last updated:** [April 12, 2022, 12:47pm UTC](https://forum.opencyphal.org/t/nunavut-does-not-produce-the-data-type-signature/1619 "2022-04-12T12:47:40Z")

</div>

command: nnvg --target-language c … The output c header files do not contain the data type signature which is used for frame crc calculation, so how to use this dsdl tool ? Thanks

---

## [Nunavut 1.8 now supports Windows](https://forum.opencyphal.org/t/nunavut-1-8-now-supports-windows/1640)

<div class="topic-metadata">

**Author:** [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Replies:** 0\
**Last updated:** [April 12, 2022, 3:18am UTC](https://forum.opencyphal.org/t/nunavut-1-8-now-supports-windows/1640 "2022-04-12T03:18:08Z")

</div>

Thanks to github actions and its support for Windows builds we are able to support Windows users in Nunavut. With release 1.8 we fixed all the known problems and are open to issues specific to Windows users.

---

## [Using nunavut to generate c object](https://forum.opencyphal.org/t/using-nunavut-to-generate-c-object/1491)

<div class="topic-metadata">

**Author:** [@Cherish-forever](https://forum.opencyphal.org/u/Cherish-forever)\
**Replies:** 7\
**Last updated:** [October 21, 2021, 4:20pm UTC](https://forum.opencyphal.org/t/using-nunavut-to-generate-c-object/1491 "2021-10-21T16:20:01Z")

</div>

nunavut generate too many things with different name, and I think why not generate c object to abstract each protocol. like: typedef struct CanardBaseHandle { char \*name; char \*name\_and\_version; size\_t extent; size…

---

## [Generate rich navigable HTML docs using Nunavut](https://forum.opencyphal.org/t/generate-rich-navigable-html-docs-using-nunavut/1163)

<div class="topic-metadata">

**Author:** [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Replies:** 23\
**Last updated:** [July 23, 2021, 8:15pm UTC](https://forum.opencyphal.org/t/generate-rich-navigable-html-docs-using-nunavut/1163 "2021-07-23T20:15:24Z")

</div>

DSDL definitions in their original form are hard to read by humans which impedes the adoption of UAVCAN and DS-015. Yet DSDL is sufficient for describing behaviors of a distributed computing system (DCS) without the need…

---

## [Nunavut universal character name error](https://forum.opencyphal.org/t/nunavut-universal-character-name-error/1361)

<div class="topic-metadata">

**Author:** [@q.twisk](https://forum.opencyphal.org/u/q.twisk)\
**Replies:** 1\
**Last updated:** [July 21, 2021, 11:31am UTC](https://forum.opencyphal.org/t/nunavut-universal-character-name-error/1361 "2021-07-21T11:31:24Z")

</div>

I am currently working with the auto generated headers using Nunavut on Windows. It generates code with the following assert: static\_assert( NUNAVUT\_SUPPORT\_LANGUAGE\_OPTION\_TARGET\_ENDIANNESS == 434322821, …

---

## [Nunavut compatibility for UAVCAN v0 and v1](https://forum.opencyphal.org/t/nunavut-compatibility-for-uavcan-v0-and-v1/1110)

<div class="topic-metadata">

**Author:** [@kyle-pawlowski](https://forum.opencyphal.org/u/kyle-pawlowski)\
**Replies:** 5\
**Last updated:** [May 3, 2021, 6:10pm UTC](https://forum.opencyphal.org/t/nunavut-compatibility-for-uavcan-v0-and-v1/1110 "2021-05-03T18:10:41Z")

</div>

We are creating a battery monitor system that we already have working with UAVCAN v1. However, since Ardupilot uses UAVCAN v0, we want to make it work with that as well. The trick is, they use C++ headers generated using…

---

## [Meet Nunaweb — a web app for compiling DSDL](https://forum.opencyphal.org/t/meet-nunaweb-a-web-app-for-compiling-dsdl/1133)

<div class="topic-metadata">

**Author:** [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Replies:** 0\
**Last updated:** [February 20, 2021, 8:24pm UTC](https://forum.opencyphal.org/t/meet-nunaweb-a-web-app-for-compiling-dsdl/1133 "2021-02-20T20:24:39Z")

</div>

Tired of compiling DSDL from the terminal? Commands longer than the longcat? No time to read the docs? (╯°□°)╯︵ ┻━┻ THE STRUGGLE IS OVER, MEET NUNAWEB: nunaweb.uavcan.org :exploding\_head: Give it your data types, co…

---

## [An easy-to-use web service for compiling DSDL](https://forum.opencyphal.org/t/an-easy-to-use-web-service-for-compiling-dsdl/1074)

<div class="topic-metadata">

**Author:** [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Replies:** 50\
**Last updated:** [February 20, 2021, 1:03pm UTC](https://forum.opencyphal.org/t/an-easy-to-use-web-service-for-compiling-dsdl/1074 "2021-02-20T13:03:55Z")

</div>

Integration of custom DSDL into one’s build system presents certain difficulties that in some cases appear to be avoidable. While for a large project these are insignificant compared to the overall efforts required to ma…

---

## [Nunavut 1.0 release is defined](https://forum.opencyphal.org/t/nunavut-1-0-release-is-defined/1026)

<div class="topic-metadata">

**Author:** [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Replies:** 2\
**Last updated:** [January 30, 2021, 7:23pm UTC](https://forum.opencyphal.org/t/nunavut-1-0-release-is-defined/1026 "2021-01-30T19:23:23Z")

</div>

We are hoping to release Nunavut 1.0 before the end of the year. See github milestone 1 for the remaining list of issues. Mostly trivial issues that we know about are remaining with one major issue to resolve. This rele…

---

## [Nunavut @extent and @sealed Directives](https://forum.opencyphal.org/t/nunavut-extent-and-sealed-directives/1080)

<div class="topic-metadata">

**Author:** [@kyle-pawlowski](https://forum.opencyphal.org/u/kyle-pawlowski)\
**Replies:** 2\
**Last updated:** [January 20, 2021, 9:56am UTC](https://forum.opencyphal.org/t/nunavut-extent-and-sealed-directives/1080 "2021-01-20T09:56:54Z")

</div>

I able trying to generate C files from a PX4 fork of public\_regulated\_data\_types. It seems that whenever I try to generate the files, the CLI prints an error like the following: Either \`@sealed\` or \`@extent ...\` are req…

---

## [PermissionError with nnvg for cpp](https://forum.opencyphal.org/t/permissionerror-with-nnvg-for-cpp/1003)

<div class="topic-metadata">

**Author:** [@sdo91](https://forum.opencyphal.org/u/sdo91)\
**Replies:** 4\
**Last updated:** [November 23, 2020, 5:48pm UTC](https://forum.opencyphal.org/t/permissionerror-with-nnvg-for-cpp/1003 "2020-11-23T17:48:15Z")

</div>

When I generate C headers using nunavut the command runs without errors sdo91@p51 ~/example $ nnvg --templates nunavut/src/nunavut/lang/c --outdir output/c --target-language c public\_regulated\_data\_types/uavcan/ But …

---

## [How to generate .h just like the content of .hpp](https://forum.opencyphal.org/t/how-to-generate-h-just-like-the-content-of-hpp/946)

<div class="topic-metadata">

**Author:** [@newcomer](https://forum.opencyphal.org/u/newcomer)\
**Replies:** 3\
**Last updated:** [October 27, 2020, 2:59pm UTC](https://forum.opencyphal.org/t/how-to-generate-h-just-like-the-content-of-hpp/946 "2020-10-27T14:59:00Z")

</div>

The templates is here https://github.com/PX4/Firmware/tree/pr-uavcan-v1\_bms\_minimal/src/drivers/uavcan\_v1/templates for C++ ： nnvg --templates templates/ --outdir include --target-language cpp public\_regulated\_d…

---

## [C serialization API survey](https://forum.opencyphal.org/t/c-serialization-api-survey/943)

<div class="topic-metadata">

**Author:** [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Replies:** 14\
**Last updated:** [September 21, 2020, 5:15pm UTC](https://forum.opencyphal.org/t/c-serialization-api-survey/943 "2020-09-21T17:15:11Z")

</div>

What do people perfer for error handling in the C serialization routines we’re working on in Nunavut: Option 1 typedef struct { uint32\_t size\_bits; int32\_t status; // Negative values are errors } SerializationRe…

---

## [Announcing Nunavut](https://forum.opencyphal.org/t/announcing-nunavut/457)

<div class="topic-metadata">

**Author:** [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Replies:** 0\
**Last updated:** [April 19, 2019, 5:26pm UTC](https://forum.opencyphal.org/t/announcing-nunavut/457 "2019-04-19T17:26:36Z")

</div>

Just a quick post to announce the newest project in the UAVCAN family nunavut is now on Pypi. Nunavut is a code generator front-end to pydsdl that uses jinja templates to generate anything you want from the DSDL AST. C,…

---

## [Generating C headers of regulated DSDL](https://forum.opencyphal.org/t/generating-c-headers-of-regulated-dsdl/920)

<div class="topic-metadata">

**Author:** [@Thierry](https://forum.opencyphal.org/u/Thierry)\
**Replies:** 1\
**Last updated:** [August 22, 2020, 12:07am UTC](https://forum.opencyphal.org/t/generating-c-headers-of-regulated-dsdl/920 "2020-08-22T00:07:39Z")

</div>

Hi, So I’m having a strange problem during the compilation of the C headers for some regulated DSDL’s. Using Nunavut I will get an error stating “Maximum recursion depth exceeded”. I’ve tried increasing the maximum re…

[Next page](https://forum.opencyphal.org/c/app/nunavut/13.md?page=1)
