Apache Derby is a standards-based, pure-Java relational database engine. Its easy-to-use data manager requires no administration by end users. Derby runs on any JVM at Java version 9 or higher and Derby supports JDBC version 4.3. Derby's platform-independent database format may be copied to any file system.

Apache Derby is a subproject of the Apache DB project, licensed under the Apache License, Version 2.0, which you may obtain from You may find Derby on the web at You may download Apache Derby releases from

Information on Derby configurations follows.

Derby Configurations

Derby's modules may be wired together in several configurations. The modules are:

Module name Jar file Description
org.apache.derby.engine derby.jar The embedded database engine contains Derby's core functionality. It contains its own JDBC driver, allowing one JVM to host both Derby and the applications which use it.
org.apache.derby.server derbynet.jar The network server wraps the database engine, enabling networked JDBC access.
org.apache.derby.client derbyclient.jar The remote JDBC client connects to a server across a network. derbytools.jar Basic tools include a schema dumper and an interactive SQL interpreter.
org.apache.derby.optionaltools derbyoptionaltools.jar Optional tools support metadata introspection and access to other vendors' databases.
org.apache.derby.runner derbyrun.jar The runner module supports easy command-line administration of Derby installations.
org.apache.derby.commons derbyshared.jar The commons module contains cross-module support utilities.
org.apache.derby.locale_* derbyLocale_*.jar Message localizations support human-readable diagnostics in languages other than English.
org.apache.derby.tests derbyTests.jar An extensive body of tests stresses functionality in all of the other modules.

The following conventions apply to the module diagrams presented here:

  • Derby modules appear in blue.
  • JVM modules appear in black.
  • 3rd party modules appear in pink.
  • Optional modules appear in gray.
Module Description
Applications running on remote machines access Derby databases via a remote client configuration.
All configurations need this utility module.
The smallest footprint, core Derby configuration consists of the embedded engine.
An extra set of tools supports metadata introspection, access to other vendors' databases, full-text search, and the importing of JSON-formatted data.
This convenience module makes it easy to run several tools and to administer the network server.
The Derby network server wraps the engine in a DRDA protocol driver.
A set of basic tools (including an interactive SQL monitor) can access Derby databases via either the embedded or remote client drivers.