DROID (Digital Record and Object Identification)

View the Project on GitHub digital-preservation/droid

DROID is a software tool developed by The National Archives to perform automated batch identification of file formats. Developed by its Digital Preservation Department as part of its broader digital preservation activities, DROID is designed to meet the fundamental requirement of any digital repository to be able to identify the precise format of all stored digital objects, and to link that identification to a central registry of technical information about that format and its dependencies.

DROID uses internal signatures to identify and report the specific file format versions of digital files. These signatures are stored in an XML signature file, generated from information recorded in the PRONOM technical registry. New and updated signatures are regularly added to PRONOM, and DROID can be configured to automatically download updated signature files.

The DROID binary zip file is available to download from the dedicated page on The National Archives website.

DROID is a platform-independent Java application. It can be invoked from two interfaces:

DROID allows files and folders to be selected from a file system for identification. This file list can be saved at any point. After the identification process had been run, the results can be output in various report formats, including CSV.

User requirements

DROID requires Java 6 Standard Edition (SE). DROID was built and tested on Java 1.6 update 30. DROID will not function in a Java 7 environment.

Signature Files and their release notes can be found at the following links:

Signature files


Signature file release notes


Code structure

The DROID code base is split up into separate projects, to facilitate only using parts of the DROID code that are required, and to enhance and enforce modularity in its construction:

Droid-binary                          Additional files required in a release build
Droid-build-tools-TRUNK               A maven project to package the release
Droid-command-line                    Command-line control over DROID
Droid-container                       Container signature processing
Droid-core                            Binary signature processing
Droid-core-interfaces                 Resource processing & format recognition
Droid-export                          Export droid profiles to CSV
Droid-export-interfaces               Interfaces for export of DROID profiles
Droid-help                            JavaHelp for DROID
Droid-parent                          An empty parent project for the other projects
Droid-report                          Reporting for DROID profiles
Droid-report-interfaces               Interfaces for DROID reporting
Droid-results                         Profile handling, database and filtering
Droid-swing-ui                        Swing GUI control over DROID

Third-party dependencies

beansbinding-1.2.1                    Binds data to GUI controls
org.openide.util-1                    Netbeans platform support
swing-outline-1.4.1                   Netbeans Swing GUI tree table control, part of the Netbeans platform

The required jars can be found in the binary distribution of DROID.

Building DROID

DROID was built using Apache Maven 3. First make sure that this is installed and if behind a proxy, edit the Maven settings.xml file to reflec the proxy server details.

There are an additional three jar files required, as listed in the dependencies section above.

These can be installed to your Maven repository from their respective locations using the following commands:

mvn install:install-file -Dfile=beansbinding-1.2.1.jar -DgroupId=beansbinding -DartifactId=beansbinding -Dversion=1.2.1 -Dpackaging=jar 
mvn install:install-file -Dfile=org-openide-util-1.jar -DgroupId=org.openide -DartifactId=org-openide-util -Dversion=1 -Dpackaging=jar 
mvn install:install-file -Dfile=swing-outline-1.4.1.jar -DgroupId=org.openide -DartifactId=swing-outline -Dversion=1.4.1 -Dpackaging=jar 

Once this is complete you can use the master build file under the main DROID project folder to build the project. This is the pom.xml that sits under the main DROID folder containing all the sub projects.

Simply run, "mvn install" from the command line when in this directory and DROID will build. Follow the Maven output to see where Maven has placed the binaries.

Release Notes


The largest change to DROID in this release is the addition of a 'No-profile' mode which can also be read into as a 'No Database' mode for quicker identification of resources provided to DROID for identification. The focus of the output of this mode is to provide a no-frills CSV output to form part of workflow stages in preservation systems or elsewhere.

CLI:           - No-profile mode added to command line
               - No-profile mode standard file signature matching
               - No-profile mode container file signature matching
               - No-profile mode extension matching to pre-filter contents of folders for identification
               - CLI options reordered for usability

Unit Tests:    - Fixed to enable build on Windows/Linux

Byteseek:      - Library forked to remove external dependency in DROID
               - 'Any' bit mask bug fixed in byteseek code

Bug fixes:     - BOF/EOF bug where DROID wasn't respecting anchors as part of it's matching 
                 attempts has been fixed

Maven:         - Builds using Maven 3.0

Derby:         - Updated from version to