Skip to content

Developer's Guide to DART

DART's primary purpose is to pack and ship digital materials for preservation. It includes a GUI for non-technical users who want to drag and drop files, and a command line interface for more technical users who want to script DART jobs.

While DART's initial release supports the BagIt packaging format and uploads to S3-compatible services, future users may require additional package formats such as rar, parchive, OCFL, etc. They may also need to ship files using network protocols such as SFTP, rsync, scp and others.

DART has a plugin architecture that allows developers to contribute code that will add these package formats and network protocols. If you know how to write JavaScript, you can contribute plugins without having to understand DART's internals.

If you're interested in a deep dive, checkout DART's full API documentation.

Getting the Code

To get started developing DART plugins, download the source from GitHub.

git clone

Once you have the source, you'll need to install the dependencies. Change into the dart directory and run this:

npm install

To ensure all is working, run the tests.

npm test -- --runInBand

Writing Plugins for DART

Building DART Installers

DART API Documentation

DART source on GitHub