Documentation menu
Operating modes
Choose where the engine runs without changing the meaning of a transaction.
On this page
Available development modes
Only one engine may own a database directory at a time. Share cloned handles within an embedded process, or connect to the standalone server for access from multiple processes. Network filesystems do not create replicas.
| Mode | Boundary | Ownership |
|---|---|---|
| Embedded | qirava::Database in your Rust process | The host supplies a key or KeyProvider and owns the directory. |
| Local standalone | Unix socket or loopback HTTP | The server owns storage, sessions and configured recovery. |
| Remote standalone | Verified TLS 1.3 HTTPS | The server owns storage; clients receive API data, never the storage key. |
Cluster and replica delivery
The target starts with three logical shards and exactly two local copies. Cluster requires at least three nodes, defaults to two complete copies on distinct nodes, and permits increasing the count. Quorum decisions, leader fencing, complete data transfer and shard ownership remain required. These copy policies and cluster features are not implemented yet.
Forward and reverse migration must preserve revisions, receipts, schema/index state, object hashes and authorization. Concurrent traffic and crashes must preserve fenced ownership. Mixed-version upgrades need compatible adapters, independent progress cursors and a durable activation barrier while requests continue. These are acceptance requirements, not available switches.
Studio, local and remote clients
Studio currently builds as static management assets served on the database origin. The portable TS client supports HTTPS and explicit loopback HTTP; an injected host transport can support Unix sockets. Browser access to local Unix sockets requires a desktop bridge or authenticated local daemon.
Studio supports multiple saved local/remote instances and exact-origin CORS, with per-instance credentials held in memory. Load-balancer failover, Tauri packaging and complete custody/role journeys remain under implementation. Do not treat a static build alone as verification of these paths.