ASN1C 8.1.0 was released on September 24, 2026. New features in this release include the following:
- Added the capability to generate C encode functions for encoding ASN.1 data in Google Protocol Buffers or Apache Avro binary formats. This includes the capability to generate schemas specific to these formats.
- Added new encoding rules checkboxes to the ASN1C GUI that provide a description of each of the supported encoding rules.
- Added improved ASN.1 schema navigation through referenced types in the schema. This includes back and forward controls for backtracking through the links.
- Added text completion to the PDU selection boxes in the project settings text boxes when specifying project properties.
- Added support for space-optimized BIT STRING with extensible constraints.
- Added support for table constraints to space-optimized encoding.
- Added -gen-own-memory command-line option to provide improved memory management for character strings.
The following defects were fixed in this release:
- Improved error handling in C space-optimized decoder to avoid crashes due to invalid data (A1C-2025).
- Fixed a defect impacting raw event parser generation for character strings when using -strict. The generated code would not compile due to use of an non-existent variable (A1C-1993).
- We fixed some defects in C/C++ code generation that produced uncompilable code. These were related to the -table-unions option and the use of a SEQUENCE type as a table constraint key or the use of OID as a key with a dynamic representation (as when using -dynamic) (A1C-1967).
- We fixed a bug in C/C++ code generation where the -x64 option would cause an ENUMERATED type to be represented using an unsigned 32-bit integer, which was not the desired behavior. The new, desired behavior is the same behavior that was seen without the -x64 option: pick an appropriately-sized integer type based on the ENUMERATED values (A1C-1945).
- For C/C++ and Go, we fixed a design flaw in which the -noopenext option did not allow an unknown type to be present for an open type if the open type was constrained by an extensible object set having only one object. This introduces a backward compatibility issue that requires a minor update to user code under the described conditions.
- For Python and Go, we fixed some problems with the PER encoding of bit strings. In some cases the bit string might not get encoded at all, or the wrong size would be encoded. In other cases the size would be encoded unaligned when it should be aligned.
- For Python, we fixed some additional PER encoding problems. In some cases an attempt might be made to encode a value even if the value was the default value. In other cases a bit string smaller than eight bits would not get encoded.
- Also for Python, we fixed a PER decoding problem where attempting to decode a zero-length named bit string might produce an exception.
- For C#, we fixed a problem where generated OER encode logic would incorrectly throw a constraint violation exception.
- For Python, we fixed a couple of class reference problems in the generated code where a reference might be made to a class for which no code was generated or a needed reference to "self" wasn't generated.
- We fixed a bug that could cause an error message from the SDK to be empty or contain garbage on Windows or macOS systems.