Daffodil is the open source implementation of the Data Format Description Language (DFDL), a specification created by the Open Grid Forum. DFDL is capable of describing many data formats, including textual and binary, commercial record-oriented, scientific and numeric, modern and legacy, and many industry standards. It leverages XML technology and concepts, using a subset of W3C XML schema type system and annotations to describe such data. Daffodil uses this description to parse data into an XML infoset for ingestion and validation.
- Getting Started for Users
- DFDL Specification
- Getting Daffodil
- Dependencies & Licenses
- Unsupported Features & Unsupported Errata
- Command Line Interface
- Interactive Debugger
- Eclipse Settings for DFDL Schema Authoring/Editing
- How to Report a Bug
- Frequently Asked Questions
- Daffodil and the DFDL Infoset
- Apache NiFi Integration
There are really two different kinds of developers. Those that want to embed Daffodil into an application, and those who want to contribute to Daffodil itself. These are not mutually exclusive.
Embedding Daffodil in an Application
If you want to embed Daffodil into some other system so that you can parse data using DFDL schemas to describe the format, then you can develop in Java or in Scala. There are APIs for both.
Please also see Quick projects to get started contributing to Daffodil as there are some very cool projects that really just require you to use Daffodil from its API.
Developing Daffodil Itself
If you want to help in the development of Daffodil itself, then you will need to know or learn Scala, because that's what it is written in.
If you want a gradual introduction, please see Quick projects to get started contributing to Daffodil as there are some things there that are reasonable stepping stones to get your feet wet.