eXist-db

active

by eXist-db Open Source Initiative · since 2000 · also known as eXist

Open-source native XML database and XQuery application platform for documents and digital editions.

xmldocumentsearch enginedatabase engineopen source (copyleft)mature

Overview

eXist-db is a Java native XML database that stores documents in a collection hierarchy and queries them with XQuery 3.1, XPath and XSLT. Lucene powers its full-text indexes, and range indexes cover structured queries. It doubles as an application server: XQuery modules, RESTXQ endpoints and packaged apps run inside the database, which is why it is a mainstay of digital humanities, TEI editions and publishing workflows. The 6.x line is stable (6.4.1, March 2026), and 7.0 is in beta. It is not built for large-scale transactional work, but it is excellent for XML-heavy content applications.

Strengths & trade-offs

Strengths

  • +Complete XQuery 3.1 implementation with Lucene full-text search
  • +Builds and hosts whole web apps in XQuery with RESTXQ
  • +WebDAV access makes it friendly to XML editors such as oXygen
  • +Strong digital-humanities community and TEI tooling

Trade-offs

  • −Single-node only, with no clustering
  • −Limited transactional guarantees for user-level multi-step updates
  • −Small contributor base and slow major releases
  • −XML-first; JSON is a second-class citizen

Great for

  • +TEI digital editions and scholarly archives
  • +XML publishing pipelines
  • +Metadata repositories with full-text search

Think twice for

  • −High-volume OLTP
  • −JSON-first web applications
  • −Distributed or multi-region deployments

Capabilities

Native or official first-party support · 8 of 25 tracked

✓Joins
✓Secondary indexes
✓Full-text search
✓Triggers
✓Stored procedures
✓Durable persistence
✓Role-based access
✓Online schema changes
–Transactions
–Vector search
–Geospatial
–JSON
–Change data capture
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Compression
–Encryption at rest
–Time travel
–Branching
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
Limited ACID
Consistency
Strong
Schema
Schemaless
Architecture
Single node, Embedded, Client server
Query languages
XQuery 3.1, XPath, XSLT, XQuery Update (eXist dialect)

Single-instance database; scale by splitting collections across instances.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsREST, RESTXQ, WebDAV, XML-RPC, XML:DB API
client languagesJava, Python, JavaScript

Alternatives to eXist-db

Compare all→
BaseXXML17.5

Lightweight, fast native XML database and XQuery 3.1/4.0 processor with a GUI.

exist-db vs basex →
MarkLogicDocument21.6

Enterprise multi-model database for XML, JSON and RDF with built-in search and semantic RAG.

exist-db vs marklogic →
SednaXML1.8

Academic native XML DBMS from ISP RAS with full ACID transactions; long since abandoned.

exist-db vs sednadb →
MongoDBDocument80.5

The default document database: flexible BSON documents, rich queries and built-in sharding.

exist-db vs mongodb →
Apache SolrSearch Engine39.8

The original Lucene search server: battle-tested, Apache-governed, now with GPU-accelerated vectors.

exist-db vs apache-solr →
Apache JackrabbitHierarchical13.4

Apache's Java Content Repository: a hierarchical, versioned node store with search, behind many Java CMSs.

exist-db vs jackrabbit →

eXist-db FAQ

What is eXist-db?

eXist-db is a XML database by eXist-db Open Source Initiative, first released in 2000. eXist-db is a Java native XML database that stores documents in a collection hierarchy and queries them with XQuery 3.1, XPath and XSLT. Lucene powers its full-text indexes, and range indexes cover structured queries. It doubles as an application server: XQuery modules, RESTXQ endpoints and packaged apps run inside the database, which is why it is a mainstay of digital humanities, TEI editions and publishing workflows. The 6.x line is stable (6.4.1, March 2026), and 7.0 is in beta. It is not built for large-scale transactional work, but it is excellent for XML-heavy content applications.

Is eXist-db open source?

Yes. eXist-db is open source. License: GNU LGPL 2.1.

Does eXist-db support ACID transactions?

Partly. eXist-db offers limited ACID guarantees (for example, single-record or single-partition transactions), with strong consistency.

Does eXist-db scale horizontally?

eXist-db does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB).

How can I run eXist-db?

You can self-host it and embed it in your application.

What is eXist-db best for?

eXist-db is a strong fit for TEI digital editions and scholarly archives; XML publishing pipelines; and metadata repositories with full-text search. Think twice for high-volume OLTP.

What are the best alternatives to eXist-db?

Common alternatives to eXist-db include BaseX, MarkLogic, Sedna, MongoDB and Apache Solr. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is eXist-db?

eXist-db ranks #170 of 844 databases on the WhichDB Score (19.3/100), and #1 among XML databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.