v0.55.8

Try our Chrome extension

Chrome store icon Chrome Webstore

Easily add the current web-page from your browser directly into your changedetection.io tool, more great features coming soon!

Changedetection.io needs your support!

You can help us by supporting changedetection.io on these platforms;

The more popular changedetection.io is, the more time we can dedicate to adding amazing features!

Many thanks :)

changedetection.io team

Non ancora secondi fa
            False
        
Non ancora secondi fa
Current erroring screenshot from most recent request

Testo trigger Testo ignorato Testo bloccato

12 ore fa
    Skip to content

      Navigation Menu

            Sign in Appearance settings
                * Platform
                        + AI CODE CREATION
                            o GitHub Copilot Write better code with AI
                            o GitHub Copilot app Direct agents from issue to merge
                            o MCP Registry Integrate external tools
                        + DEVELOPER WORKFLOWS
                            o Actions Automate any workflow
                            o Codespaces Instant dev environments
                            o Issues Plan and track work
                            o Code Review Manage code changes
                            o Code Quality Enforce quality at merge
                        + APPLICATION SECURITY
                            o GitHub Advanced Security Find and fix vulnerabilities
                            o Code security Secure your code as you build
                            o Secret protection Stop leaks before they start
                        + EXPLORE
                            o Why GitHub
                            o Documentation
                            o Blog
                            o Changelog
                            o Marketplace
                      View all features
                * Solutions
                        + BY COMPANY SIZE
                            o Enterprises
                            o Small and medium teams
                            o Startups
                            o Nonprofits
                        + BY USE CASE
                            o App Modernization
                            o DevSecOps
                            o DevOps
                            o CI/CD
                            o View all use cases
                        + BY INDUSTRY
                            o Healthcare
                            o Financial services
                            o Manufacturing
                            o Government
                            o View all industries
                      View all solutions
                * Resources
                        + EXPLORE BY TOPIC
                            o AI
                            o Software Development
                            o DevOps
                            o Security
                            o View all topics
                        + EXPLORE BY TYPE
                            o Customer stories
                            o Events & webinars
                            o Ebooks & reports
                            o Business insights
                            o GitHub Skills
                        + SUPPORT & SERVICES
                            o Documentation
                            o Customer support
                            o Community forum
                            o Trust center
                            o Partners
                      View all resources
                * Open Source
                        + COMMUNITY
                            o GitHub Sponsors Fund open source developers
                        + PROGRAMS
                            o Security Lab
                            o Maintainer Community
                            o Accelerator
                            o GitHub Stars
                            o Archive Program
                        + REPOSITORIES
                            o Topics
                            o Trending
                            o Collections
                * Enterprise
                        + ENTERPRISE SOLUTIONS
                            o Enterprise platform AI-powered developer platform
                        + AVAILABLE ADD-ONS
                            o GitHub Advanced Security Enterprise-grade security features
                            o Copilot for Business Enterprise-grade AI features
                            o Premium Support Enterprise-grade 24/7 support
              * Pricing
                Type / to search
                Sign in
              Sign up Appearance settings
      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

              Uh oh!

              There was an error while loading. Please reload this page.

              surrealdb / surrealdb Public
              * Notifications You must be signed in to change notification settings
              * Fork 1.3k
                * Star 32.9k
          * Code
          * Issues 655
          * Pull requests 85
          * Discussions
          * Actions
          * Projects
          * Security and quality 59
          * Insights
          Additional navigation options
                  * Code
                  * Issues
                  * Pull requests
                  * Discussions
                  * Actions
                  * Projects
                  * Security and quality
                  * Insights
                                              main
                                          Branches Tags
                                            Go to file
                                        Code
                                          Open more actions menu

                                        Folders and files

                                          Name                             Name                               Last commit message    Last commit date
                                            Latest commit                
                                                                         
                                                History                  
                                                                         
                                                4,756 Commits            
                                                  4,756 Commits          
                                                  .cargo                           .cargo                                                            
                                                  .config                          .config                                                           
                                                  .cursor/ rules                   .cursor/ rules                                                    
                                                  .github                          .github                                                           
                                                  dev/ docker                      dev/ docker                                                       
                                                  doc                              doc                                                               
                                                  docker                           docker                                                            
                                                  fuzz                             fuzz                                                              
                                                  img                              img                                                               
                                                  language-tests                   language-tests                                                    
                                                  pkg                              pkg                                                               
                                                  profiling                        profiling                                                         
                                                  scripts/ bench                   scripts/ bench                                                    
                                                  src                              src                                                               
                                                  supply-chain                     supply-chain                                                      
                                                  surrealdb                        surrealdb                                                         
                                                  surrealism                       surrealism                                                        
                                                  surrealml                        surrealml                                                         
                                                  tests                            tests                                                             
                                                  .clippy.toml                     .clippy.toml                                                      
                                                  .codecov.yml                     .codecov.yml                                                      
                                                  .dockerignore                    .dockerignore                                                     
                                                  .editorconfig                    .editorconfig                                                     
                                                  .envrc                           .envrc                                                            
                                                  .gitignore                       .gitignore                                                        
                                                  .gitmodules                      .gitmodules                                                       
                                                  .pre-commit-config.yaml          .pre-commit-config.yaml                                           
                                                  .rustfmt.toml                    .rustfmt.toml                                                     
                                                  CLAUDE.md                        CLAUDE.md                                                         
                                                  CODE_OF_CONDUCT.md               CODE_OF_CONDUCT.md                                                
                                                  CONTRIBUTING.md                  CONTRIBUTING.md                                                   
                                                  Cargo.lock                       Cargo.lock                                                        
                                                  Cargo.toml                       Cargo.toml                                                        
                                                  LICENSE                          LICENSE                                                           
                                                  Makefile                         Makefile                                                          
                                                  Makefile.ci.toml                 Makefile.ci.toml                                                  
                                                  Makefile.local.toml              Makefile.local.toml                                               
                                                  Makefile.toml                    Makefile.toml                                                     
                                                  README.md                        README.md                                                         
                                                  REVIEW.md                        REVIEW.md                                                         
                                                  SECURITY.md                      SECURITY.md                                                       
                                                  SECURITY_GUIDE.md                SECURITY_GUIDE.md                                                 
                                                  build.rs                         build.rs                                                          
                                                  context7.json                    context7.json                                                     
                                                  default.nix                      default.nix                                                       
                                                  deny.toml                        deny.toml                                                         
                                                  flake.lock                       flake.lock                                                        
                                                  flake.nix                        flake.nix                                                         
                                                  release.toml                     release.toml                                                      
                                                  revision.lock                    revision.lock                                                     
                                                  rust-toolchain.nightly           rust-toolchain.nightly                                            
                                                  rust-toolchain.toml              rust-toolchain.toml                                               
                                                  shell.nix                        shell.nix                                                         
                                            View all files               
                                          

                                              Repository files navigation

                                                * 
                                                * README
                                                * Code of conduct
                                                * Contributing
                                                * License
                                                * Security
                                                More items


                                                What is SurrealDB?

                                              SurrealDB is a multi-model database built in Rust designed to unify multiple data models into a single engine. SurrealDB combines document, graph, relational, time-series, geospatial and key-value data types with powerful search and retrieval functionalities (full-text, vector, hybrid) and real-time and event-driven capabilities, enabling developers to build powerful applications faster and more efficiently. SurrealDB can also be used as a backend-as-a-service given its support for end user authentication. Given that it’s a single Rust binary, SurrealDB can run embedded (in‐app), in the browser (via WebAssembly), in the edge, self-hosted as single backend node, or in a distributed cluster in the cloud.

                                              SurrealDB is used for data-intensive systems such as applications requiring multiple data types, data layer for AI agents, knowledge graphs, real-time apps (e.g. recommendation engines, fraud detection systems) and embedded/edge systems. With SurrealDB, you can simplify your database and API infrastructure, reduce development time, and build secure, performant apps quickly and cost-effectively.

                                              Key features of SurrealDB include:

                                                * Reduces development time: SurrealDB simplifies your database and API stack by removing the need for most server-side components, allowing you to build secure, performant apps faster and cheaper.
                                                * Multi-model: native multi-model support for document, graph, relational (enforcing schema and schemaless), time-series, geospatial and retrieval (full-text, vector, hybrid). This is offered natively through SurrealQL, SurrealDB's SQL-like intuitive query language.
                                                * Real-time collaborative API backend service: SurrealDB functions as both a database and an API backend service, enabling real-time collaboration.
                                                * Support for multiple querying languages: SurrealDB supports SQL querying from client devices, GraphQL, ACID transactions, WebSocket connections, structured and unstructured data, graph querying, full-text and vector indexing, and geospatial querying.
                                                * Granular access control: SurrealDB provides row-level permissions-based access control, giving you the ability to manage data access with precision.

                                              View the features, the latest releases, and documentation.

                                                Contents

                                                * Database, API, and permissions
                                                * Tables, documents, and graph
                                                * Advanced inter-document relations and analysis. No JOINs. No pain.
                                                * Simple schema definition for frontend and backend development
                                                * Connect and query directly from web-browsers and client devices
                                                * Query the database with the tools you want
                                                * Realtime live queries and data changes direct to application
                                                * Scale effortlessly to hundreds of nodes for high-availability and scalability
                                                * Extend your database with JavaScript functions
                                                * Designed to be embedded or to run distributed in the cloud

                                                Features

                                                * Database server, or embedded library
                                                * Multi-row, multi-table ACID transactions
                                                * Single-node, or highly-scalable distributed mode
                                                * Record links and directed typed graph connections
                                                * Store structured and unstructured data
                                                * Incrementally computed views for pre-computed advanced analytics
                                                * Realtime-API layer, and security permissions built in
                                                * Store and model data in any way with tables, documents, and graph
                                                * Simple schema definition for frontend and backend development
                                                * Connect and query directly from web-browsers and client devices
                                                * Use embedded JavaScript functions for custom advanced functionality
                                                * MCP (Model Context Protocol) server for LLM and AI-agent integration

                                                Documentation

                                              For guidance on installation, development, deployment, and administration, take a look at the following resources:

                                                * Documentation: https://surrealdb.com/docs
                                                * SurrealDB University: https://surrealdb.com/learn
                                                * Aeon's Surreal Renaissance (interactive book): https://surrealdb.com/learn/book

                                                Getting started

                                              Getting started with SurrealDB is as easy as starting up the SurrealDB database server, choosing your platform, and integrating its SDK into your code. You can easily get started with your platform of choice by reading one of our tutorials.

                                              Server side code

                                              Client side apps

                                                SurrealDB Cloud

                                              SurrealDB is available as a managed cloud service. Forget about infrastructure operations, monitoring, backups or capacity planning. SurrealDB Cloud allows you to focus on building great products using the power and flexibility of SurrealDB in just a few clicks. Grow from prototype to enterprise-scale. The SurrealDB Cloud scalable architecture allows your database to evolve as your application grows, ensuring you are always ahead of demand. However if you want to deploy SurrealDB yourself, keep reading below.

                                                Installation

                                              SurrealDB is designed to be simple to install and simple to run - using just one command from your terminal. In addition to traditional installation, SurrealDB can be installed and run with HomeBrew, Docker, or using any other container orchestration tool such as Docker Compose, Docker Swarm, Rancher, or in Kubernetes.

                                                Install on macOS

                                              The quickest way to get going with SurrealDB on macOS is to use Homebrew. This will install both the command-line tools, and the SurrealDB server as a single executable. If you don't use Homebrew, follow the instructions for Linux below to install SurrealDB.

                                                brew install surrealdb/tap/surreal

                                              If you want to test a version with the latest features, published every night, install the nightly version:

                                                brew install surrealdb/tap/surreal-nightly

                                                Install on Linux

                                              The easiest and preferred way to get going with SurrealDB on Unix operating systems is to install and use the SurrealDB command-line tool. Run the following command in your terminal and follow the on-screen instructions.

                                                curl --proto  ' =https '  --tlsv1.2 -sSf https://install.surrealdb.com | sh

                                              If you want to run a beta release, before the next version is released, the beta version:

                                                curl --proto  ' =https '  --tlsv1.2 -sSf https://install.surrealdb.com | sh -s -- --beta

                                              If you want to test a version with the latest features, published every night, install the nightly version:

                                                curl --proto  ' =https '  --tlsv1.2 -sSf https://install.surrealdb.com | sh -s -- --nightly

                                                Install on Windows

                                              The easiest and preferred way to get going with SurrealDB on Windows is to install and use the SurrealDB command-line tool. Run the following command in your terminal and follow the on-screen instructions.

                                                iwr https://windows.surrealdb.com -useb | iex

                                              If you want to test a version with the latest features, published every night, install the nightly version:

                                                iex  " & { $ ( irm https: // windows.surrealdb.com ) } -Nightly "

                                                Run using Docker

                                              Docker can be used to manage and run SurrealDB database instances without the need to install any command-line tools. The SurrealDB docker container contains the full command-line tools for importing and exporting data from a running server, or for running a server itself.

                                                docker run --rm --pull always --name surrealdb -p 8000:8000 surrealdb/surrealdb:latest start

                                              For just getting started with a development server running in memory, you can pass the container a basic initialization to set the user and password as root and enable logging.

                                                docker run --rm --pull always --name surrealdb -p 8000:8000 surrealdb/surrealdb:latest start --log info --user root --pass root memory

                                                Quick look

                                              With strongly-typed data types, data can be fully modelled right in the database.

                                                UPDATE person SET
                                                    waist = <int> "34",
                                                    height = <float> 201,
                                                    score = <decimal> 0.3 + 0.3 + 0.3 + 0.1
                                                ;

                                              Store dynamically computed fields which are calculated when retrieved.

                                                DEFINE FIELD can_drive ON TABLE person COMPUTED time::now() > birthday + 18y;
                                                CREATE person SET birthday = d"2007-06-22";
                                                ;

                                              Easily work with unstructured or structured data, in schema-less or schema-full mode.

                                                -- Create a schemafull table
                                                DEFINE TABLE user SCHEMAFULL;
                                                
                                                -- Specify fields on the user table
                                                DEFINE FIELD name ON TABLE user TYPE object;
                                                DEFINE FIELD name.first ON TABLE user TYPE string;
                                                DEFINE FIELD name.last ON TABLE user TYPE string;
                                                DEFINE FIELD email ON TABLE user TYPE string ASSERT string::is_email($value);
                                                
                                                -- Add a unique index on the email field preventing duplicate values
                                                DEFINE INDEX email ON TABLE user COLUMNS email UNIQUE;
                                                
                                                -- Create a new event whenever a user changes their email address
                                                DEFINE EVENT email ON TABLE user WHEN $before.email != $after.email THEN (
                                                    CREATE event SET user = $value, time = time::now(), value = $after.email, action = 'email_changed'
                                                );

                                              Connect records together with fully directed graph edge connections.

                                                -- Add a graph edge between user:tobie and article:surreal
                                                RELATE user:tobie->write->article:surreal
                                                    SET time.written = time::now()
                                                ;
                                                
                                                -- Add a graph edge between specific users and developers
                                                LET $from = (SELECT users FROM company:surrealdb);
                                                LET $devs = (SELECT * FROM user WHERE tags CONTAINS 'developer');
                                                RELATE $from->like->$devs UNIQUE
                                                    SET time.connected = time::now()
                                                ;

                                              Query data flexibly with advanced expressions and graph queries.

                                                -- Select a nested array, and filter based on an attribute
                                                SELECT emails[WHERE active = true] FROM person;
                                                
                                                -- Select all 1st, 2nd, and 3rd level people who this specific person record knows, or likes, as separate outputs
                                                SELECT ->knows->(? AS f1)->knows->(? AS f2)->(knows, likes AS e3 WHERE influencer = true)->(? AS f3) FROM person:tobie;
                                                
                                                -- Select all person records (and their recipients), who have sent more than 5 emails
                                                SELECT *, ->sent->email->to->person FROM person WHERE count(->sent->email) > 5;
                                                
                                                -- Select other products purchased by people who purchased this laptop
                                                SELECT <-purchased<-person->purchased->product FROM product:laptop;
                                                
                                                -- Select products purchased by people in the last 3 weeks who have purchased the same products that we purchased
                                                SELECT ->purchased->product<-purchased<-person->(purchased WHERE created_at > time::now() - 3w)->product FROM person:tobie;

                                              Store GeoJSON geographical data types, including points, lines and polygons.

                                                UPDATE city:london SET
                                                    centre = (-0.118092, 51.509865),
                                                    boundary = {
                                                        type: "Polygon",
                                                        coordinates: [[
                                                            [-0.38314819, 51.37692386], [0.1785278, 51.37692386],
                                                            [0.1785278, 51.61460570], [-0.38314819, 51.61460570],
                                                            [-0.38314819, 51.37692386]
                                                        ]]
                                                    }
                                                ;

                                              Write custom embedded logic using JavaScript functions.

                                                CREATE film SET
                                                    ratings = [
                                                        { rating: 6, user: user:bt8e39uh1ouhfm8ko8s0 },
                                                        { rating: 8, user: user:bsilfhu88j04rgs0ga70 },
                                                    ],
                                                    featured = function() {
                                                        return this.ratings.filter(r => {
                                                            return r.rating >= 7;
                                                        }).map(r => {
                                                            return { ...r, rating: r.rating * 10 };
                                                        });
                                                    }
                                                ;

                                              Specify granular access permissions for client and application access.

                                                -- Specify access permissions for the 'post' table
                                                DEFINE TABLE post SCHEMALESS
                                                    PERMISSIONS
                                                        FOR select
                                                            -- Published posts can be selected
                                                            WHERE published = true
                                                            -- A user can select all their own posts
                                                            OR user = $auth.id
                                                        FOR create, update
                                                            -- A user can create or update their own posts
                                                            WHERE user = $auth.id
                                                        FOR delete
                                                            -- A user can delete their own posts
                                                            WHERE user = $auth.id
                                                            -- Or an admin can delete any posts
                                                            OR $auth.admin = true
                                                ;

                                                Why SurrealDB?

                                                Database, API, and permissions

                                              SurrealDB combines the database layer, the querying layer, and the API and authentication layer into one platform. Advanced table-based and row-based customisable access permissions allow for granular data access patterns for different types of users. There's no need for custom backend code and security rules with complicated database development.

                                                Tables, documents, and graph

                                              As a multi-model database, SurrealDB enables developers to use multiple techniques to store and model data, without having to choose a method in advance. With the use of tables, SurrealDB has similarities with relational databases, but with the added functionality and flexibility of advanced nested fields and arrays. Inter-document record links allow for simple to understand and highly-performant related queries without the use of JOINs, eliminating the N+1 query problem.

                                                Advanced inter-document relations and analysis. No JOINs. No pain.

                                              With full graph database functionality SurrealDB enables more advanced querying and analysis. Records (or vertices) can be connected to one another with edges, each with its own record properties and metadata. Simple extensions to traditional SQL queries allow for multi-table, multi-depth document retrieval, efficiently in the database, without the use of complicated JOINs and without bringing the data down to the client.

                                                Simple schema definition for frontend and backend development

                                              With SurrealDB, specify your database and API schema in one place, and define column rules and constraints just once. Once a schema is defined, database access is automatically granted to the relevant users. No more custom API code, and no more GraphQL integration. Simple, flexible, and ready for production in minutes not months.

                                                Connect and query directly from web-browsers and client devices

                                              Connect directly to SurrealDB from any end-user client device. Run SurrealQL queries directly within web-browsers, ensuring that users can only view or modify the data that they are allowed to access. Highly-performant WebSocket connections allow for efficient bi-directional queries, responses and notifications.

                                                Query the database with the tools you want

                                              Your data, your choice. SurrealDB is designed to be flexible to use, with support for SurrealQL, GraphQL (coming soon), CRUD support over REST, and JSON-RPC querying and modification over WebSockets. With direct-to-client connection with in-built permissions, SurrealDB speeds up the development process, and fits in seamlessly into any tech stack.

                                                Realtime live queries and data changes direct to application

                                              SurrealDB keeps every client device in-sync with data modifications pushed in realtime to the clients, applications, end-user devices, and server-side libraries. Live SQL queries allow for advanced filtering of the changes to which a client subscribes, and efficient data formats, including DIFFing and PATCHing enable highly-performant web-based data syncing.

                                                Scale effortlessly to hundreds of nodes for high-availability and scalability

                                              SurrealDB can be run as a single in-memory node, or as part of a distributed cluster - offering highly-available and highly-scalable system characteristics. Designed from the ground up to run in a distributed environment, SurrealDB makes use of special techniques when handling multi-table transactions, and document record IDs - with no use of table or row locks.

                                                Extend your database with JavaScript functions

                                              Embedded JavaScript functions allow for advanced, custom functionality, with computation logic being moved to the data layer. This improves upon the traditional approach of moving data to the client devices before applying any computation logic, ensuring that only the necessary data is transferred remotely. These advanced JavaScript functions, with support for the ES2020 standard, allow any developer to analyse the data in ever more simple-yet-advanced ways.

                                                Designed to be embedded or to run distributed in the cloud

                                              Built entirely in Rust as a single library, SurrealDB is designed to be used as both an embedded database library with advanced querying functionality, and as a database server which can operate in a distributed cluster. With low memory usage and cpu requirements, the system requirements have been specifically thought through for running in all types of environment.

                                                Community

                                              Join our growing community around the world, for help, ideas, and discussions regarding SurrealDB.

                                                * View our official Blog
                                                * Chat live with us on Discord
                                                * Follow us on X
                                                * Connect with us on LinkedIn
                                                * Join the discussion on Reddit
                                                * Visit us on YouTube
                                                * Join our Dev community
                                                * Questions tagged #surrealdb on Stack Overflow

                                                Contributing

                                              We would for you to get involved with SurrealDB development! If you wish to help, you can learn more about how you can contribute to this project in the contribution guide.

                                              For maintainers: See the release process documentation for information about performing releases.

                                                Security

                                              For security issues, view our vulnerability policy, view our Trust and Security page, and kindly email us at security@surrealdb.com instead of posting a public issue on GitHub.

                                                License

                                              Source code for SurrealDB is variously licensed under a number of different licenses. A copy of each license can be found in each repository.

                                                * Libraries and SDKs, each located in its own distinct repository, are released under either the Apache License 2.0 or MIT License.
                                                * Certain core database components, each located in its own distinct repository, are released under the Apache License 2.0.
                                                * Core database code for SurrealDB, located in this repository, is released under the Business Source License 1.1.

                                              For more information, see the licensing information.

                                        About

                                        A scalable, distributed, collaborative, document-graph database, for the realtime web

                                          surrealdb.com

                                        Topics

                                          backend-as-a-servicecloud-databasedatabasedatabase-as-a-servicedeveloper-toolsdevtoolsdistributeddistributed-databasedocument-databasegraph-databaseiot-databasenosqlrealtime-databaseserverlesssqlsurrealsurrealdbweb

                                        Resources

                                          Readme
                                          License

                                        Code of conduct

                                          Code of conduct

                                        Contributing

                                          Contributing

                                        Security policy

                                          Security policy
                                          Activity
                                          Custom properties

                                        Stars

                                          32.9k stars

                                        Watchers

                                          163 watching

                                        Forks

                                          1.3k forks
                                          Report repository

                                        Releases

                                        Used by

                                        Contributors

                                        Languages

    Footer

        © 2026 GitHub, Inc.

      Footer navigation

        * Terms
        * Privacy
        * Security
        * Status
        * Community
        * Docs
        * Contact
        * Manage cookies
        * Do not share my personal information
      You can’t perform that action at this time.
For now, Differences are performed on text, not graphically, only the latest screenshot is available.

Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc ) that supports screenshots.