Repolode
surrealdb

surrealdb/surrealdb

A multi-model database written in Rust that combines document, graph, relational, time-series, and key-value data with realtime queries and built-in access control.

Open-source alternative to:Firebase Realtime DatabaseNeo4j

Stars
33,215
Forks
1,393
Open issues
547
Last commit
3 days ago

What is it?

SurrealDB is a database that aims to replace several components of a typical application stack. It supports document, graph, relational, time-series, geospatial and key-value data in one engine, and provides full-text, vector and hybrid search. Queries are written in SurrealQL, an SQL-like language that can traverse record links and graph edges without JOIN statements.

The server can run as a single binary in several modes: embedded in an application, in the browser through WebAssembly, on edge nodes, as a single self-hosted node, or as a distributed cluster. Clients can connect over WebSockets, REST, or JSON-RPC, and live queries push data changes to subscribed clients in real time. Row-level permissions and built-in user authentication allow client devices to query the database directly.

Official SDKs cover Rust, JavaScript, Python, Go, .NET, PHP and Java, and the project offers a managed cloud service. Core database code is licensed under the Business Source License 1.1.

Key features

  • 01Multi-model storage for documents, graphs, relational, time-series, geospatial and key-value data
  • 02SurrealQL query language with graph traversal across record links
  • 03Real-time live queries that push data changes to clients
  • 04Row-level permissions and built-in user authentication
  • 05Multi-row ACID transactions and clustered deployment
  • 06Embedded, WebAssembly, edge, and distributed run modes

Use cases

  • Building realtime web or mobile apps that need client devices to query data directly
  • Storing knowledge graphs or recommendation data that relies on relationships between records
  • Serving as a data layer for AI agents, including through the MCP server
  • Running an embedded or edge database inside an application without a separate server

Quick start

  1. 1

    Install SurrealDB on macOS with Homebrew

    brew install surrealdb/tap/surreal
  2. 2

    Install on Linux or Windows by running the official install script from the README or downloading from the releases page

Things to know

  • The license is BSL 1.1, which restricts some commercial uses.
  • Some features and the managed cloud service are tied to SurrealDB's own offerings.

Topics

FAQ

What is surrealdb?
A multi-model database written in Rust that combines document, graph, relational, time-series, and key-value data with realtime queries and built-in access control. SurrealDB is a database that aims to replace several components of a typical application stack. It supports document, graph, relational, time-series, geospatial and key-value data in one engine, and provides full-text, vector and hybrid search. Queries are written in SurrealQL, an SQL-like language that can traverse record links and graph edges without JOIN statements.
Is surrealdb free to use? What license does it have?
surrealdb is open source under the Other license. Check the license terms before using it in commercial products.
Is surrealdb still maintained?
Actively maintained. The last commit to surrealdb was on Oct 19, 2026.
What can I use surrealdb for?
Building realtime web or mobile apps that need client devices to query data directly Storing knowledge graphs or recommendation data that relies on relationships between records Serving as a data layer for AI agents, including through the MCP server Running an embedded or edge database inside an application without a separate server
How do I install surrealdb?
Install SurrealDB on macOS with Homebrew: brew install surrealdb/tap/surreal Install on Linux or Windows by running the official install script from the README or downloading from the releases page
Where can I get surrealdb?
The source code and installation instructions are on GitHub: https://github.com/surrealdb/surrealdb

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects