A scalable, distributed, collaborative, document-graph database for the realtime web, built in Rust.
SurrealDB is a multi-model database built in Rust that unifies document, graph, relational, time-series, geospatial, and key-value data types into a single engine. It combines powerful search and retrieval functionalities with real-time and event-driven capabilities, enabling developers to build data-intensive applications faster and more efficiently. It can function as both a database and an API backend service, simplifying infrastructure and reducing development time.
Developers building data-intensive applications requiring multiple data models, such as real-time apps (e.g., recommendation engines, fraud detection systems), knowledge graphs, AI agent data layers, and embedded/edge systems. It's also suitable for teams wanting to simplify their backend stack by using a single system for database, API, and permissions.
Developers choose SurrealDB for its native multi-model support in a single engine, eliminating the need to manage multiple specialized databases. Its unique selling point is combining the database, querying layer, and API/authentication into one platform with built-in real-time capabilities and granular access control, allowing direct client connections without custom backend code.
A scalable, distributed, collaborative, document-graph database, for the realtime web
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
SurrealDB natively supports document, graph, relational, time-series, geospatial, and key-value data in a single engine, as highlighted in the README's key features, eliminating the need to manage multiple specialized databases.
It functions as both a database and API backend with WebSocket connections and live queries, enabling direct client synchronization without custom server code, as described in the real-time collaborative API section.
The database offers row-level access control with SurrealQL definitions, allowing precise data management for different users, demonstrated in the quick look example with PERMISSIONS clauses.
SurrealDB can run embedded, in the browser via WebAssembly, on the edge, or in distributed clusters, thanks to being a single Rust binary, as shown in the installation and deployment sections.
The README explicitly states GraphQL is 'coming soon,' meaning it's not yet fully available, which could hinder teams preferring GraphQL over SurrealQL or REST for querying.
As a relatively new project, SurrealDB lacks the maturity, extensive community support, and battle-tested reliability of established databases like PostgreSQL or MongoDB, potentially risking stability in critical production environments.
Core database code is under BSL 1.1, which may impose usage restrictions in some commercial scenarios, unlike permissive open-source licenses, requiring careful legal review.