Any new bugs, requests, or missing features should be reported as Github issues.
- Add more support for hexadecimal/octal/binary numbers in CDDL. E.g. in size ranges or value limits
- Add support for ranges with three dots in CDDL files
- Change CDDL quantifier syntax from
x**y
tox*y
- Add support for
$$
and$
- Add support for the
.bits
operator.
- Change command line name from
cddl_gen
tocddl-gen
- Add
--dq
as a shorthand for--default-max-qty
- Allow passing multiple cddl files via command line
- Allow adding the current git sha to generated file headers.
- Various changes to the logic for naming in code generation
- This can give different names of e.g. struct members compared with previous versions of cddl-gen
- Generate a cmake file when generating code.
- The
target_cddl_source()
Cmake function has been removed. - See README.md for more info.
- The
- Improve tags support in DataTranslator
- Improve decoding of cbor bstrs in DataTranslator
- Provide the raw string along with the decoded object.
- Refactor cbor_common.c
- Add support for indeterminate length arrays in cbor_decode.c.
- Move all cddl files into tests/cases
- Run tests with twister instead of custom bash scripts
- Add tests for draft-ietf-suit-manifest-14
- cbor_encode.h: Add missing
.
intstrx_put
andtstrx_put_term
- cbor_encode.c: Fix
get_result_len
and add big-endian support - cddl_gen.py: Fix bug where range checks were dropped
- cbor_decode.c: Fix bug where a
nil
could be interpreted astrue
- cddl_gen.py: Fix parsing of ranges with no max (
n*
orn**
) - cbor_encode.c: Fix bug where minimum quantity restrictions were ignored
- cddl_gen: Fix generation of map-within-map
- cbor_decode.c: Add overflow checks and fix assert in
any_decode()
.
Not all features outlined in the CDDL spec are supported by cddl-gen. The following is a list of limitiations and missing features:
- Map elements in data must appear in the same order as they appear in the CDDL.
- Floating point numbers.
undefined
.- Using
&()
to turn groups into choices (unions).&()
is supported when used with.bits
. - Representation Types (
#x.y
), except for tags (#6.y(foo)
) which are supported. - Unwrapping (
~
) - The control operator
.regexp
. - The control operator
.ne
. - The control operator
.default
. - Generics (
foo<a, b>
). - Not all types from the "standard prelude" are supported.
- Most of the "Extended Diagnostic Notation" is unsupported.