Git Product home page Git Product logo

incubator-daffodil's Introduction

Apache Daffodil


Apache Daffodil (incubating) 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 infoset represented as XML or JSON, easily capable of ingestion, validation, and transformation.

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 Memory Requirements

Compiling and running all Daffodil tests works best with at least 6GB of memory, more than is usually provided by default. We recommended that you supply -mem 6144 either as an sbt option (e.g. sbt -mem 6144 test) or edit /etc/sbt/sbtopts to increase the available memory when running the below commands.

Compile

$ sbt compile

Tests

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 coverageReport
$ sbt coverageAggregate

Getting Help

For questions, we can be reached at the [email protected] or [email protected] mailing lists. Bugs can be reported via the Daffodil JIRA.

License

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

Disclaimer

Apache Daffodil is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

incubator-daffodil's People

Contributors

mbeckerle avatar stevedlawrence avatar vtguy avatar jadams-tresys avatar efinnegan avatar jeremysolt avatar olabusayot avatar dfthompson avatar ltapilot avatar mchenry avatar rmw42 avatar bsloane1650 avatar rigormotis avatar marshalljmiller avatar nick-smith-finastra-com avatar dineshchitlangia avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.