Apache Daffodil

Clone this repo:
  1. 66c272b Add debugger "info suspensions" and "set diffExcludes" commands by Steve Lawrence · 7 days ago master
  2. 5177fed Add .asf.yaml file to configure ASF gitbox/github by Steve Lawrence · 12 days ago
  3. 8d5dbed Updates to make top level project by Steve Lawrence · 2 weeks ago
  4. 0a390f6 Allow garbage collection of UStateForSuspension's and DirectOrBufferedDataOutputStream's by Steve Lawrence · 3 weeks ago
  5. 4674dee Bump copyright year to 2021 by Steve Lawrence · 4 weeks ago

Apache Daffodil is an open-source implementation of the DFDL specification that uses DFDL data descriptions to parse fixed format data into an infoset. This infoset is commonly converted into XML or JSON to enable the use of well-established XML or JSON technologies and libraries to consume, inspect, and manipulate fixed format data in existing solutions. Daffodil is also capable of serializing or “unparsing” data back to the original data format. The DFDL infoset can also be converted directly to/from the data structures carried by data processing frameworks so as to bypass any XML/JSON overheads.

For more information about Daffodil, see https://daffodil.apache.org/.

Build Requirements

  • JDK 8 or higher
  • SBT 0.13.8 or higher

Getting Started

SBT is the officially supported tool to build Daffodil, run all tests, create packages, and more. Below are some of the more common commands used for Daffodil development.


$ sbt compile


Run all unit tests:

$ sbt test 

Run all command line interface tests:

$ sbt it:test

Command Line Interface

Create Linux and Windows shell scripts in daffodil-cli/target/universal/stage/bin/. See the Command Line Interface documentation for details on its usage:

$ sbt daffodil-cli/stage

License Check

Generate an Apache RAT license check report located in target/rat.txt and error if any unapproved licenses are found:

$ sbt ratCheck

Test Coverage Report

Generate an sbt-scoverage test coverage report located in target/scala-ver/scoverage-report/:

$ sbt clean coverage test it:test
$ sbt coverageAggregate

Getting Help

For questions, we can be reached at the dev@daffodil.apache.org or users@daffodil.apache.org mailing lists. Bugs can be reported via the Daffodil JIRA.


Apache Daffodil is licensed under the Apache License, v2.0.