skip to main content

Elemental is a NoSQL Database

Elemental is a NoSQL Database designed for working with documents. Working with documents is natural for humans, and so Elemental allows you to store, search, transform, and publish your content.

Why use Elemental?

Elemental makes working with documents simple

With Elemental you can store and organise your documents naturally into collections. Each collection may contain millions of documents and any additional files. By executing queries to retrieve either entire documents or fragments from your collections, you can gain new insight into your content, or go further by designing and executing transformations that repurpose or create new content.

Features

Document Oriented Storage

Content or Data is stored naturally as individual self-contained documents (typically in XML, JSON, HTML, or Text formats). Elemental provides a schema-less data model, which means that each of your documents can have as unique and free form a structure as you wish. This makes it very easy to enhance and enrich your documents as your needs evolve. But don't worry, we don't sacrifice on correctness! All of the tools that you might need to check and enforce the validity of your desired documents are built in.

Features

Fast and Standards Compliant

Elemental provides a variety of database indexing options to allow you to search millions of documents quickly. One of the most popular features is the ability to execute expressive queries that join structural and full-text search. Elemental is built on Open Standards, and includes implementations of the latest W3C standards for querying, transformation, and publishing (including: XPath and XQuery 3.1, XSLT 3.0, XSL-FO 2.0, and HTML 5).

Features

Designed for the Web and Integration

Elemental is designed for the Web, and therefore includes a built-in Web Server that allows access to your documents, queries, and transformations. Document and operation oriented Web APIs are already built-in (including: REST, WebDAV, and RPC). You can also easily (in XQuery or Java) add your own APIs that are built on top of our HTTP or REST API. You can choose to build entire Web Applications directly on top of Elemental using just W3C standards, or if you prefer, you can even integrate Elemental into your own application.

FEATURES AND CAPABILITIES

Comparison of Elemental

Elemental evolved from eXist-db, and also serves as a major component of FusionDB. We believe that Elemental is positioned between the eXist-db community project and the commercial enterprise oriented FusionDB.

COMPARE FEATURES

Features
eXist-db
Elemental
FusionDB

XPath and XQuery 3.1 Support

YES
84.16% compliance with the W3C XPath and XQuery Test Suite.
YES
84.44% compliance with the W3C XPath and XQuery Test Suite.
YES
92.16% compliance with the W3C XPath and XQuery Test Suite.

XSLT 3.0 Support

LIMITED
Provides an outdated version of Saxon HE (9.9.1-8) from 2020.
YES
Saxon HE, PE, and EE versions (12.5).
YES
Saxon HE, PE, and EE versions (12.5).

Full Text Search Support

NO
Provides an outdated version of Lucene (4.10.4) from 2015; accessed via proprietary extensions.
LIMITED
Lucene (9.12.1); accessed via proprietary extensions.
YES
Lucene (9.12.1); accessed via the W3C XQuery and XPath Full Text 3.0 standard.

Embedded Web Server

NO
Provides an End of Life version of Jetty (9.4.54), and Servlet 3.1 API from 2013.
LIMITED
Jetty 12.0.16, and Servlet 6.1 API.
YES
Jetty 12.0.16, with modern Asynchronous API.

Database Snapshots

NO
Not possible.
LIMITED
Available through additional sync-point extension when using Btrfs or ZFS file systems.
YES
Database LSM provides instantaneous zero-cost snapshots.

ACID Transactions

NO
Not possible.
NO
Not implemented.
YES
Snapshot Isolation with Read Your Own Write semantics.

API Support

LIMITED
REST, RESTXQ 1.0, WebDAV, XML-RPC 4.0.0, and XML:DB 1.0.
YES
REST, RESTXQ 1.0, WebDAV, XML-RPC 5.0.0, and XML:DB 2.0.0.
YES
REST, RESTXQ 1.0, WebDAV, XML-RPC 5.0.0, and XML:DB 2.0.0.

Java Support

LIMITED
Only supports Java 8 from 2014.
YES
Supports Java 21 which is the latest LTS Java release.
YES
Supports Java 21 which is the latest LTS Java release.

Commercial Support from Evolved Binary

YES
Support packages that include managing migration to Elemental.
YES
Full Development and Support packages available.
YES
Full Development and Support packages available.

License

LIMITED
Open Source licensed under the LGPL v2.1.
YES
Fair Source licensed under the BUSL 1.1 with an additional 'Production Use' grant; Change License is Apache 2.0.
YES
Fair Source licensed under the BUSL 1.1; Change License is Apache 2.0.

DOCUMENTATION

Quick Install for Elemental

Elemental is available for all major platforms. We provide a quick install guide below to help you get started with Elemental.

All versions of Elemental are FREE and licensed as Fair Source. Elemental may be used in academic, non-commercial, and commercial applications in compliance with its license.


NOTE You must have the required version of Java installed before installing Elemental. If you need to download and install Java we recommend BellSoft Liberica Java.


1. Recommended - Download and Run the Windows Installer

The installer is the easiest way to install and setup a single version of Elemental on Windows.

  • Elemental 7.0.0 - Installer (Requires Java 21)

    Download
  • Elemental 6.4.0 - Installer (Requires Java 8)

    Download
  1. Open a Command Prompt.
  2. Change to the directory where you downloaded Elemental:
    C:\> cd %USER_PROFILE%\Downloads
  3. Run the installer:
    ...\Downloads> java -jar elemental-installer-7.0.0.jar

2. or, Download and Unzip the Windows Distribution

If you wish to have multiple versions of Elemental installed, then instead of using the installer, you can simply download and unzip the Windows distribution to a location of your choice.

  • Elemental 7.0.0 - Windows Distribution (Requires Java 21)

    Download
  • Elemental 6.4.0 - Windows Distribution (Requires Java 8)

    Download
  1. Open your Command Prompt.
  2. Change to the directory where you unzipped Elemental:
    C:\> cd elemental-7.0.0
  3. To start Elemental, run startup.bat:
    C:\elemental-7.0.0> bin\startup.bat
NOTE: HAVING TROUBLE?

If you are having trouble launching Elemental, please see our article on Troubleshooting.

All versions of Elemental are FREE and licensed as Fair Source. Elemental may be used in academic, non-commercial, and commercial applications in compliance with its license.


NOTE You must have the required version of Java installed before installing Elemental. If you need to download and install Java we recommend BellSoft Liberica Java.


1. Recommended - Download Elemental DMG for macOS

The DMG (Apple Disk Image) is the easiest way to install and setup a single version of Elemental on macOS.

  • Elemental 7.0.0 - DMG (Requires Java 21)

    Download
  • Elemental 6.4.0 - DMG (Requires Java 8)

    Download
  1. In Finder, Double Click the downloaded DMG file to mount it.
  2. In Finder, open the mounted Elemental volume.
  3. Drag-and-drop the Elemental application into the Applications folder.
  4. Click the Elemental application icon from within Applications folder to start Elemental.

2. or, Download and Untar the Unix Distribution

If you wish to have multiple versions of Elemental installed, then instead of using the installer, you can simply download and unzip the Unix distribution to a location of your choice.

  • Elemental 7.0.0 - Unix Distribution (Requires Java 21)

    Download
  • Elemental 6.4.0 - Unix Distribution (Requires Java 8)

    Download
  1. Open the Terminal application.
  2. Change to the directory where you downloaded Elemental:
    $ cd ~/Downloads
  3. Untar Elemental:
    $ tar jxvf elemental-7.0.0-unix.tar.bz2
  4. Change into the Elemental directory:
    $ cd elemental-7.0.0
  5. To start Elemental, run startup.sh:
    $ bin/startup.sh
NOTE: HAVING TROUBLE?

If you are having trouble launching Elemental, please see our article on Troubleshooting.

All versions of Elemental are FREE and licensed as Fair Source. Elemental may be used in academic, non-commercial, and commercial applications in compliance with its license.


NOTE You must have the required version of Java installed before installing Elemental. If you need to download and install Java we recommend BellSoft Liberica Java.


1. Download and Untar the Unix Distribution

  • Elemental 7.0.0 - Unix Distribution (Requires Java 21)

    Download
  • Elemental 6.4.0 - Unix Distribution (Requires Java 8)

    Download
  1. Open a Terminal.
  2. Change to the directory where you downloaded Elemental:
    $ cd ~/Downloads
  3. Untar Elemental:
    $ tar jxvf elemental-7.0.0-unix.tar.bz2
  4. Change into the Elemental directory:
    $ cd elemental-7.0.0
  5. To start Elemental, run startup.sh:
    $ bin/startup.sh
NOTE: HAVING TROUBLE?

If you are having trouble launching Elemental, please see our article on Troubleshooting.

All versions of Elemental are FREE and licensed as Fair Source. Elemental may be used in academic, non-commercial, and commercial applications in compliance with its license.


1. Pull the Docker Image

All our Docker Images are produced for both amd64 and arm64 architectures and are published to Docker Hub under the evolvedbinary/elemental repository.


Our default Docker Images are minimal and stripped down for production use, if you require an image with a shell for testing or debugging purposes you can append -DEBUG to the Docker Tag.

  1. Open your terminal or command prompt.
  2. Pull the Docker Image
    $ docker pull evolvedbinary/elemental:latest

2. Create a Docker Volume for your Data

You only need to create the volume once.

  1. Open your terminal or command prompt.
  2. Create the Docker Volume:
    $ docker volume create my-elemental-db

3. Run an Elemental Docker Container

To run a container that uses your Docker Volume for the database data and exposes Elemental on port 8080

  1. Open your terminal or command prompt.
  2. Run a container:
    $ docker run -it \
        -p 8080:8080 \
        --mount type=volume,src=my-elemental-db,dst=/elemental/data \
        evolvedbinary/elemental:latest
NOTE: HAVING TROUBLE?

If you are having trouble launching Elemental, please see our article on Troubleshooting.