JDK > 1.5.
Platform independent. Tested on Linux (Debian GNU/Linux 3.1-5.0/Mandrake/Slackware 10-12/SUSE 9.3/Fedora 6-10.90/RHEL 5.2), FreeBSD 5.4/6.0, Sun Solaris 10/Sparc/x86/x64, Mac OS X 10.5.7, Windows 2000/XP/XP Server Edition
None. A web server (Jetty) and Cocoon are included in the distribution, but eXist can also run without them.
|Core Database Features|
Native XML data store based on B+-trees and paged files. Document nodes are stored in a persistent DOM.
Documents are managed in hierarchical collections, similar to storing files in a file system. Collections are not bound to a predefined schema or document type.
Based on a numeric indexing scheme which supports quick identification of structural relationships between nodes, such as parent/child, ancestor/descendant or previous-/next-sibling.
Automatic index creation by default. Uses structural indexes for element and attribute nodes, a fulltext index for text and attribute values and range indexes for typed values. Fulltext indexing can be turned on/off for selected parts of a document. The structural indexes are maintained automatically.
eXist has its own, optimized XQuery engine, featuring an efficient, index-based query processing.
Contrary to conventional implementations, eXist's query engine tries to avoid top-down or bottom-up tree traversals. Instead, it relies on fast path join algorithms to compute node relationships. Path joins can be applied to the entire node sequence in one, single step. For a description of the basic algorithms, read this article.
Document-level and node-level updates with XUpdate and XQuery update extensions.
Unix-like access permissions for users/groups at collection- and document-level.
eXtensible Access Control Markup Language (XACML) for XQuery access control.
The database supports full crash recovery based on a journal in which all transactions are logged. In case of a database crash, all committed transactions will be redone while incomplete transactions will be rolled back.
However, transaction support is limited to the functionality needed for crash recovery. This means that transactions are not yet visible or usable from application code. All transactions are created automatically by the various APIs.
eXist may be deployed as a stand-alone database server, as an embedded Java library or as part of a web application (running in the servlet engine).
Backup/restore functionality is provided via Java admin client or Ant scripts. The backup contains resources as readable XML. Allows full restore of a database including user/group permissions.
XQuery 1.0 with exception of the schema import and schema validation features defined as optional in the XQuery specification. Queries may span any possible combination of collections or documents. eXist implements the full axis feature, which means you can use the optional axes: ancestor, ancestor-or-self, following-sibling, and preceding-sibling; following and preceding are supported with limitations.
XPath/XQuery standard function library; many additional modules for manipulating database contents, dynamic evaluation of XQuery expressions, XSL transformations, HTTP related functions.
User-defined modules can be provided in XQuery or Java.
Supported. Some features missing. Queries do not descend into xincluded documents automatically.
Supported through the server interfaces or XQuery extension functions.
Yes and also an update syntax extension for XQuery
Core Level 1 implementation. Provides drivers for access to a remote database or embedded use. Additional services for user management, collection management, XQuery.
Through XML:DB API. Direct (read) access to the persistent DOM is provided for embedded databases.
Through XML:DB API.
eXist offers a REST-style web service API for simple access via HTTP. This is in general the fastest way to access the database. Running in a servlet context, the REST functionality is provided through the EXistServlet. In stand-alone mode, the database has its own, built-in web server.
XML-RPC is the preferred protocol and used by the XML:DB API drivers. Provides full access to all database functions.
Supported in servlet mode. Based on Apache Axis.
Complete support for all core WebDAV operations.
|Max. Number of Documents||
The maximum number of documents to be stored in the database is 231.
|Max. Size per Document||
The eXist-1.1-newcore release drops the conceptual limits present in older versions. Theoretically, documents can be arbitrary large. In practice, some properties like the child count of a node are limited to a 4-byte int number. There are also operating system limits, e.g. the max size of a file in the filesystem, which have an influence.