Documentation
Recommended Reading

Screencasts
For the first steps with your freshly installed eXist-db, we suggest to watch the screencasts available on the eXist-db homepage.
If you are new to eXist-db, we recommend that you read these articles first:
-
Quick Start: How to download, install, and get up and running with eXist-db.
-
Dashboard: Using the package manager to install or remove packages.
-
Getting Started with Web Application Development in eXist-db: eXist-db provides a complete platform for the development of rich web applications based on XML and related technologies
-
Indexing: Properly configured indexes have a huge impact on database performance! Some expressions might run a hundred times faster with an index. Must read.
-
Learning XQuery: (For beginners) Tips and resources for learning XQuery for use with eXist-db.
-
XQuery Support: (For advanced developers) In depth discussion of eXist-db's support for the XQuery language, including features and extensions.
-
Tuning the Database: Tips and best practices for optimizing the performance of your queries.
You can search the entire documentation library using the search box to the right. If you have questions that you can't find the answer to here, see the articles Troubleshooting and Getting Help.
All Documentation
Besides these articles, you can search eXist-db's XQuery function module library.
Getting Started
Quick Start: | How to download, install, and get up and running with eXist-db. |
Advanced Installation Methods: | How to install on a headless system; how to run as a background service. |
Dashboard: | Using the Dashboard to install applications from the eXist-db.org public application repository. |
Getting Started with Web Application Development in eXist-db: | eXist-db provides a complete platform for the development of rich web applications based on XML and related technologies |
Uploading Files: | How to get your data into eXist-db. |
Upgrade Guide: | Upgrading from an older version of eXist-db. |
Troubleshooting: | Troubleshooting installation problems and other advanced installation topics. |
General
Configuring Indexes: | How to configure indexes (must read). |
Deployment: | Alternatives for server deployment. |
Developer's Guide: | Using various interfaces: XML:DB API, XML-RPC, REST, SOAP. |
Using oXygen: | How to set up oXygen XML Editor for use with eXist-db. |
Security: | Security features including authentication realms (LDAP, OAuth, OpenID), managing users and groups, changing passwords, and permissions and access controls. |
Server Configuration: | Configuring the server. |
Tuning the Database: | Tips and best practices for optimizing the performance of your queries. |
Package Repository: | Manage libraries & application packages (.xar) using eXist-db Package Repository. |
Learning XQuery: | Tips and resources for beginners learning XQuery for use with eXist-db. |
XQuery Support: | In depth discussion of eXist-db's support for the XQuery language, including features and extensions. |
Documentation for Specific Features
Ant Tasks: | How to automate tasks with Ant. |
Backup and Restore: | How to backup/restore your database contents. |
Configuring Triggers: | How to configure triggers. |
Content Extraction: | How to extract content from binary files. |
HTTP-Related Functions: | The request and session modules contain functions for performing HTTP-related operations. |
JMX | Java Management Extensions (JMX) support. |
Java Admin Client: | Using the Java client from the command line. |
KWIC display module: | An XQuery module to easily produce a Keywords in Context (KWIC) output of search results. |
Lucene-based Full Text Index: | Apache Lucene integrated into eXist-db's XQuery engine. |
Replication: | Configure two or more eXist-db instances to work together to automatically synchronize documents. |
Scheduler Module: | An optional module to schedule jobs. |
URL Rewriting and MVC Framework: | Simple-but-powerful URL rewriting and redirection. Provides some support for MVC (model-view-controller) and servlet-based pipelines. |
The util module: | A module with numerous useful utility functions. |
Validation: | Validate XML documents. |
Versioning: | Versioning extensions. |
WebDAV: | How to setup your favourite WebDAV application. |
XACML: | XQuery access control. |
XInclude: | XInclude support in eXist-db. |
XForms: | XForms support in eXist-db (using betterFORM or XSLTForms). |
The xmldb module: | Functions for manipulating database contents. |
XQDoc: | The format for documenting XQuery library and main modules. |
XQuery Update Extensions: | Extensions to update document fragments from within an XQuery. |
XQuery Debugger | A debugging interface to XQuery code on the server. This is functional, but incomplete (the client side in particular). We used emacs and vi as our main clients during development. |
XSL Transformations | The transform module provides functions for directly applying an XSL stylesheet to an XML fragment within an XQuery script. |
eXist-db Development
Getting Started with Web Application Development in eXist-db: | eXist-db provides a complete platform for the development of rich web applications based on XML and related technologies |
Building eXist-db: | Compiling and building eXist-db from GitHub. |
eXist-db Developer Manifesto: | Guidelines for contributing to the eXist-db codebase. |
Code Review Guide: | Notes on reviewing code during development. |
Test Guide: | Perform XQuery tests with the XQuery unit test suite. |
Log4J Logging Guide: | How use Log4J within eXist-db code. |
Developer's Guide to Modularized Indexes: | Describes how modularized indexes work through a use case. |
A Beginners Guide to XRX with eXist: | Describes how to use XForms to perform CRUD operations within an XRX framework. |
Production use
Production use Good Practice: | Best Practices for production environments. |
Proxying eXist-db behind a Web Server: | How to proxy eXist-db behind various web servers. |
External Libraries
The following is an incomplete list of libraries to connect eXist-db with other languages.
XQJ: | An eXist-db driver for the XQuery API for Java (XQJ) |
nodejs: | node.js Client Module for the eXist-db Native XML Database |
PHP: | A client that abstracts out the XML RPC calls for eXist-db. |
XQuery for Scala: | A Scala Library based on the XQuery API for Java (XQJ) |