Apache Daffodil 3.8.0


Javadoc | Scaladoc

Get Release



The above release files should be verified using the PGP signatures and the project release KEYS. See verification instructions for a description of using the PGP and KEYS files for verification. A SHA512 checksum is also provided as an alternative verification method.

libraryDependencies += "org.apache.daffodil" %% "daffodil-sapi" % "3.8.0"
Create the file /etc/yum.repos.d/apache-daffodil.repo with the following content:
name=Apache Daffodil
Run the folllowing command:
sudo dnf install apache-daffodil

Release Notes

This release focused on providing a supported API for creating Daffodil Layers.

Layers Feature

A layer is an algorithmic transformation of the data stream that cannot be expressed using regular DFDL properties. Daffodil provides a DFDL language extension using the property name dfdlx:layer to invoke these layer transformations when parsing or unparsing. Layers can encode/decode data as well as can verify/recompute checksums/CRCs.

See the Layers documentation which has links to the javadoc for the new API as well as a description and examples of the built-in layers that are available to use.

This supported API is incompatible with the experimental and unsupported prior version layering APIs. See the Deprecation/Compatibility section for more details.

New Features

Miscellaneous Bugs


This release removes the unsupported/experimental APIs for creating layer plug-ins that were present in releases 3.7.0 and prior. These are replaced with a new supported and documented API which is much easier to use and maintain and has more functionality. All layers written to the older 3.7.0 unsupported APIs will be broken and must be rewritten to use the new API in 3.8.0.

See the Layers documentation which has links to the javadoc for the new API.

[DAFFODIL-2825] Define supported layering API

Dependency Changes

The following dependencies have been added or updated:



Code Generator


Schematron Validator

Changes to Transitive Dependencies