SurrealDB: Difference between revisions
No edit summary |
AndyTheGrump (talk | contribs) →History and development: Either give a proper explanation of who 'the company' is, or have all this off-topic detail removed. |
||
(13 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
<!-- Please do not remove or change this AfD message until the discussion has been closed. --> |
|||
{{Article for deletion/dated|page=SurrealDB|timestamp=20240516095424|year=2024|month=May|day=16|substed=yes|help=off}} |
|||
<!-- Once discussion is closed, please place on talk page: {{Old AfD multi|page=SurrealDB|date=16 May 2024|result='''keep'''}} --> |
|||
<!-- End of AfD message, feel free to edit beyond this point --> |
|||
{{Manual |date=March 2024}} |
{{Manual |date=March 2024}} |
||
{{Infobox software |
{{Infobox software |
||
Line 6: | Line 10: | ||
| developer = SurrealDB |
| developer = SurrealDB |
||
| released = December 8, 2019 |
| released = December 8, 2019 |
||
| latest release version = v1. |
| latest release version = v1.5.0 |
||
| latest release date = |
| latest release date = May 14, 2024 |
||
| repo = {{URL|https://github.com/surrealdb/surrealdb}} |
| repo = {{URL|https://github.com/surrealdb/surrealdb}} |
||
| programming language = [[Rust (programming language)|Rust]] |
| programming language = [[Rust (programming language)|Rust]] |
||
Line 14: | Line 18: | ||
}} |
}} |
||
'''SurrealDB''' is an [[NewSQL]]<ref>{{Cite web |last=Peyton |first=Antony |date=2022-07-21 |title=Tech Startup SurrealDB Goes Live with Serverless Cloud Database |url=https://www.eweekuk.com/database/tech-startup-surrealdb-goes-live-with-serverless-cloud-database/ |access-date=2024-01-19 |website=eWeek UK |language=en-US}}</ref> [[Open-source software|open-sourced]] [[multi-model database]] and [[Database as a service|database-as-a-service]] platform.<ref name=":0">{{Cite web |last=Wiggers |first=Kyle |date=2023-01-04 |title=SurrealDB raises $6M for its database-as-a-service offering |url=https://techcrunch.com/2023/01/04/surrealdb-raises-6m-startup-funding-database-as-a-service/ |access-date=2024-01-19 |website=TechCrunch |language=en-US}}</ref> The platform is designed to offer a structured yet flexible way of storing and querying data, aiming to simplify the app development process by minimizing the need for building backend [[API]]s and database layers.<ref>{{Cite web |last= |first= |date=2023-09-15 |title=SurrealDB launch marks monumental milestone in the world of data management |url=https://uktechnews.co.uk/2023/09/15/surrealdb-launch-marks-monumental-milestone-in-the-world-of-data-management/ |access-date=2024-01-19 |website=UK Tech News |language=en-GB}}</ref><ref>{{Cite web |last=Wood |first=Anna |title=London's tech scene gets a reboot |url=http://startupsmagazine.co.uk/article-londons-tech-scene-gets-reboot |access-date=2024-01-19 |website=Startups Magazine |language=en}}</ref> |
'''SurrealDB''' is an [[NewSQL]]<ref>{{Cite web |last=Peyton |first=Antony |date=2022-07-21 |title=Tech Startup SurrealDB Goes Live with Serverless Cloud Database |url=https://www.eweekuk.com/database/tech-startup-surrealdb-goes-live-with-serverless-cloud-database/ |access-date=2024-01-19 |website=eWeek UK |language=en-US}}</ref> [[Open-source software|open-sourced]] [[multi-model database]]<ref>{{Cite web |last=Barron |first=Jenna |date=2024-05-10 |title=SD Times Open-Source Project of the Week: SurrealDB |url=https://sdtimes.com/data/sd-times-open-source-project-of-the-week-surrealdb/ |access-date=2024-05-17 |website=SD Times |language=en-US}}</ref><ref name=":2">{{Cite web |date=2023-04-04 |title=Database of Databases — SurrealDB |url=https://dbdb.io/db/surrealdb |access-date=2024-05-30 |website=Database of Databases |language=en}}</ref> and [[Database as a service|database-as-a-service]] platform.<ref name=":0">{{Cite web |last=Wiggers |first=Kyle |date=2023-01-04 |title=SurrealDB raises $6M for its database-as-a-service offering |url=https://techcrunch.com/2023/01/04/surrealdb-raises-6m-startup-funding-database-as-a-service/ |access-date=2024-01-19 |website=TechCrunch |language=en-US}}</ref> The platform is designed to offer a structured yet flexible way of storing and querying data, aiming to simplify the app development process by minimizing the need for building backend [[API]]s and database layers.<ref>{{Cite web |last= |first= |date=2023-09-15 |title=SurrealDB launch marks monumental milestone in the world of data management |url=https://uktechnews.co.uk/2023/09/15/surrealdb-launch-marks-monumental-milestone-in-the-world-of-data-management/ |access-date=2024-01-19 |website=UK Tech News |language=en-GB}}</ref><ref>{{Cite web |last=Wood |first=Anna |title=London's tech scene gets a reboot |url=http://startupsmagazine.co.uk/article-londons-tech-scene-gets-reboot |access-date=2024-01-19 |website=Startups Magazine |language=en}}</ref><ref name=":3">{{Cite web |last=Šelmeci |first=Roman |date=6 Nov 2023 |title=SurrealDB, AWS DynamoDB and AWS Lambda |url=https://sudolabs.com/insights/surrealdb-aws-dynamodb-and-aws-lambda |website=Sudolabs}}</ref> |
||
The database is written in [[Rust (programming language)|Rust]],<ref>{{Cite web |date=2022-08-23 |title=SurrealDB: Open source scalable graph database has big potential |url=https://devm.io/databases/surrealdb-graph-database-beta |access-date=2024-01-19 |website=devmio - Software Know-How |language=en-US}}</ref> with [[Software development kit|SDKs]] supporting languages such as [[JavaScript]], [[Python (programming language)|Python]], [[.NET]], and others.<ref name=":1">{{Cite web |title=SurrealDB {{!}} Features {{!}} The ultimate multi-model database |url=https://surrealdb.com/features |access-date=2024-01-19 |website=SurrealDB |language=en}}</ref> The database supports a number of modalities, including [[Graph database|graph]], [[Relational database|relational]], [[Document-oriented database|document]] and [[Vector database|vector]] database features. |
The database is written in [[Rust (programming language)|Rust]],<ref>{{Cite web |date=2022-08-23 |title=SurrealDB: Open source scalable graph database has big potential |url=https://devm.io/databases/surrealdb-graph-database-beta |access-date=2024-01-19 |website=devmio - Software Know-How |language=en-US}}</ref> with [[Software development kit|SDKs]] supporting languages such as [[JavaScript]], [[Python (programming language)|Python]], [[.NET]], and others.<ref name=":1">{{Cite web |title=SurrealDB {{!}} Features {{!}} The ultimate multi-model database |url=https://surrealdb.com/features |access-date=2024-01-19 |website=SurrealDB |language=en}}</ref> The database supports a number of modalities, including [[Graph database|graph]], [[Relational database|relational]], [[Document-oriented database|document]] and [[Vector database|vector]] database features. |
||
== History and development == |
== History and development == |
||
SurrealDB was started by brothers Tobie Morgan Hitchcock and Jaime Morgan Hitchcock in 2016. The first functional prototype version of SurrealDB was completed in 2017 and written in [[Go (programming language)]]<ref name=":2" />, but released the first alpha version in December 8, 2019.<ref>{{Cite web |last=Peyton |first=Antony |date=2021-09-29 |title=SurrealDB Keeps it Real with Serverless Cloud Database Launch |url=https://www.eweekuk.com/applications/surrealdb-keeps-it-real-with-serverless-cloud-database-launch/ |access-date=2024-01-19 |website=eWeek UK |language=en-US}}</ref> The company {{Clarify|date=May 2024|What company? Unless a clear explanation of what this refers to is added, I am going to remove all discussion of anything except the subject of this article: a databases, and not a company.}} started work on a new version of SurrealDB written entirely in Rust from scratch in 2021<ref name=":2" />. In November 2022 the company closed a $6 million seed round led by [[FirstMark Capital|FirstMark]].<ref name=":0" /><ref>{{Cite web |last=Team |first=TechRound |date=2024-04-25 |title=Meet Tobie Morgan Hitchcock, CEO & Co-Founder Of SurrealDB |url=https://techround.co.uk/interviews/meet-tobie-morgan-hitchcock-ceo-co-founder-of-surrealdb/ |access-date=2024-05-17 |website=TechRound |language=en-GB}}</ref> The company is based out of London.<ref>{{Cite web |last=Vrcic |first=Tea |date=2024-03-06 |title=10 fast growing UK startups to watch in 2024 and beyond! |url=https://www.eu-startups.com/2024/03/10-fast-growing-uk-startups-to-watch-in-2024-and-beyond/ |access-date=2024-05-17 |website=EU-Startups |language=en-US}}</ref> Version 1.0 of the database was released in September 2023.<ref>{{Cite web |last=Team |first=TechRound |date=2023-09-11 |title=SurrealDB: A Quantum Leap in Database Technology |url=https://techround.co.uk/tech/surrealdb-quantum-leap-database-technology/ |access-date=2024-05-17 |website=TechRound |language=en-GB}}</ref> |
|||
The company's |
The company's managed database service was in beta as of early 2023, with plans for a commercial launch in 2024. |
||
== Technical features == |
== Technical features == |
||
SurrealDB is a multi-model database that aims to address the requirements of contemporary application development. It provides a range of features intended to offer flexibility and functionality, positioning it as a potential option for developers seeking adaptable database solutions.<ref name=":1" /> |
SurrealDB is a multi-model database that aims to address the requirements of contemporary application development. It provides a range of features intended to offer flexibility and functionality, positioning it as a potential option for developers seeking adaptable database solutions.<ref name=":1" /><ref name=":3" /> |
||
=== Architecture === |
=== Architecture === |
||
Line 32: | Line 36: | ||
* Web browser with [[WebAssembly]] library for remote database connections or [[Indexed Database API|IndexedDB]]-based persistence in the browser. |
* Web browser with [[WebAssembly]] library for remote database connections or [[Indexed Database API|IndexedDB]]-based persistence in the browser. |
||
* Single-node (on-disk) using [[RocksDB]] or SpeeDB for persistent data storage. |
* Single-node (on-disk) using [[RocksDB]] or SpeeDB for persistent data storage. |
||
* Distributed clusters using [[FoundationDB]] or [[TiKV]] for high availability and scalability |
* Distributed clusters using [[FoundationDB]] or [[TiKV]] for high availability and scalability. |
||
=== Platform === |
=== Platform === |
||
* [[Multitenancy|Multi-tenancy]] data separation allows splitting data into namespaces and databases. |
* [[Multitenancy|Multi-tenancy]]<ref>{{Cite web |date=2024-04-05 |title=Top 70+ startups in Database as a Service (DBaaS) - Tracxn |url=https://tracxn.com/d/trending-themes/startups-in-database-as-a-service-dbaas/__xkOqlfOMK4lGMFSNOjbWnq4pjBdw-LIj7YBywWqPg-Y |access-date=2024-05-17 |website=tracxn.com |language=en}}</ref> data separation allows splitting data into namespaces and databases. |
||
* Multi-table, multi-row transactions for fully [[ACID]]-compliant operations. |
* Multi-table, multi-row transactions for fully [[ACID]]-compliant operations. |
||
=== Data model === |
=== Data model === |
||
* Supports storage with and without schemas |
* Supports storage with and without schemas |
||
* Supports basic types like booleans, strings, and numerics (64-bit integers and floats, and 128-bit decimals). |
|||
* Supports basic types like [[boolean]]s,<ref name=":2">{{Cite web |title=Basic types {{!}} SurrealDB Docs |url=https://surrealdb.com/docs/surrealql/datamodel/simple |access-date=2024-01-20 |website=surrealdb.com |language=en}}</ref> [[String (computer science)|strings]],<ref>{{Cite web |title=Strings {{!}} SurrealDB Docs |url=https://surrealdb.com/docs/surrealql/datamodel/strings |access-date=2024-01-20 |website=surrealdb.com |language=en}}</ref> and numerics (64-bit integers and floats, and 128-bit decimals).<ref>{{Cite web |title=Numbers {{!}} SurrealDB Docs |url=https://surrealdb.com/docs/surrealql/datamodel/numbers |access-date=2024-01-20 |website=surrealdb.com |language=en}}</ref> |
|||
* Empty values can be represented as <code>NONE</code> or <code>NULL</code>. |
* Empty values can be represented as <code>NONE</code> or <code>NULL</code>. |
||
* Native support for arrays and objects with unlimited nesting depth. |
* Native support for arrays and objects with unlimited nesting depth. |
||
* Date-times in [[ISO 8601|ISO-8601]] format, converted and stored in [[Coordinated Universal Time|UTC]]. |
* Date-times in [[ISO 8601|ISO-8601]] format, converted and stored in [[Coordinated Universal Time|UTC]]. |
||
* [[GeoJSON]] data types. |
* [[GeoJSON]] data types. |
||
* Futures and casting capabilities for computed and strongly typed values |
* Futures and casting capabilities for computed and strongly typed values. |
||
=== SurrealQL === |
=== SurrealQL === |
||
Line 51: | Line 55: | ||
* Features like [[For loop|FOR loops]] and THROW statements for custom error types. |
* Features like [[For loop|FOR loops]] and THROW statements for custom error types. |
||
* Nested field queries, mathematical and [[geospatial]] operators. |
* Nested field queries, mathematical and [[geospatial]] operators. |
||
* Complex record IDs and record ID ranges for [[Time series|timeseries]] contexts |
* Complex record IDs and record ID ranges for [[Time series|timeseries]] contexts.<ref name=":3" /> |
||
=== Additional features === |
=== Additional features === |
||
Line 57: | Line 61: | ||
* Live queries and record changes with web-based data syncing. |
* Live queries and record changes with web-based data syncing. |
||
* Global parameters for database-wide value accessibility. |
* Global parameters for database-wide value accessibility. |
||
* Custom functions for complex, user-defined logic within queries |
* Custom functions for complex, user-defined logic within queries. |
||
* [[Back-end database|Database as a backend]] which enables client applications to remove the need for Backend APIs with scoped permissions and user authentication. |
* [[Back-end database|Database as a backend]] which enables client applications to remove the need for Backend APIs with scoped permissions and user authentication. |
||
=== Differences from typical SQL databases === |
|||
SurrealDB has a number of differences from typical SQL databases<ref name=":2" /> |
|||
* '''No "joins"''' - instead of [[Join (SQL)|joins]], SurrealDB uses [[Graph theory|directional graph relations (edges)]] |
|||
* '''No foreign keys''' - SurrealDB uses "record links" which are a type of identifier referring to the table and unique record IDs |
|||
* '''Data Model''' - SurrealDB uses a hybrid document & table database system, with support for schemaless and schemafull record data structures. |
|||
== SurrealKV == |
== SurrealKV == |
||
SurrealKV, set for inclusion in SurrealDB's 1.X release, is being developed as a native Rust-based [[Key–value database|key–value]] storage engine for both single-node and distributed systems. It aims to enable multiple concurrent writers and readers, with a focus on immutable data querying, versioned queries, data change auditing, and historic analysis. The distributed version will additionally offer scalability to handle terabytes of data and enhanced fault tolerance for enterprise-level applications<ref |
SurrealKV, set for inclusion in SurrealDB's 1.X release, is being developed as a native Rust-based [[Key–value database|key–value]] storage engine for both single-node and distributed systems. It aims to enable multiple concurrent writers and readers, with a focus on immutable data querying, versioned queries, data change auditing, and historic analysis. The distributed version will additionally offer scalability to handle terabytes of data and enhanced fault tolerance for enterprise-level applications. <ref>{{Cite web |last=Morgan Hitchcock |first=Tobie |date=1 Nov 2019 |title=Kellogg College, University of Oxford Whitepaper: "In Search of an Efficient Data Structure for a Temporal-Graph Database" |url=https://surrealdb.com/static/whitepaper.pdf |website=surrealdb.com |language=en}}</ref> |
||
== Surrealist == |
|||
Surrealist is the official database management [[graphical user interface]] for SurrealDB. |
|||
On April 23, 2024, SurrealDB announced that they hired the creator of the unofficial open sourced graphical database management application, Surrealist. The company announced a major 2.0 update to Surrealist coinciding with this event, making Surrealist an official database management graphical interface for SurrealDB. <ref>{{Cite web |title=SurrealDB Unveils Surrealist 2.0, Surpasses MongoDB in Github Popularity » Light Square » World News |url=https://lightsquare.org/news/surrealdb-unveils-surrealist-20-surpasses-mongodb-in-github-popularity |access-date=2024-05-24 |website=lightsquare.org |language=en}}</ref> |
|||
== See Also == |
|||
* [[List of graph databases]] |
|||
* [[Document-oriented database]] |
|||
* [[MongoDB]] |
|||
* [[Backend as a service]] |
|||
* [[Database as a service]] |
|||
== References == |
== References == |
Latest revision as of 11:03, 30 May 2024
An editor has nominated this article for deletion. You are welcome to participate in the deletion discussion, which will decide whether or not to retain it. |
This article is written like a manual or guide. (March 2024) |
Developer(s) | SurrealDB |
---|---|
Initial release | December 8, 2019 |
Stable release | v1.5.0
/ May 14, 2024 |
Repository | github |
Written in | Rust |
License | Business Source License, Apache License after 4 years |
Website | surrealdb |
SurrealDB is an NewSQL[1] open-sourced multi-model database[2][3] and database-as-a-service platform.[4] The platform is designed to offer a structured yet flexible way of storing and querying data, aiming to simplify the app development process by minimizing the need for building backend APIs and database layers.[5][6][7]
The database is written in Rust,[8] with SDKs supporting languages such as JavaScript, Python, .NET, and others.[9] The database supports a number of modalities, including graph, relational, document and vector database features.
History and development[edit]
SurrealDB was started by brothers Tobie Morgan Hitchcock and Jaime Morgan Hitchcock in 2016. The first functional prototype version of SurrealDB was completed in 2017 and written in Go (programming language)[3], but released the first alpha version in December 8, 2019.[10] The company [clarification needed] started work on a new version of SurrealDB written entirely in Rust from scratch in 2021[3]. In November 2022 the company closed a $6 million seed round led by FirstMark.[4][11] The company is based out of London.[12] Version 1.0 of the database was released in September 2023.[13]
The company's managed database service was in beta as of early 2023, with plans for a commercial launch in 2024.
Technical features[edit]
SurrealDB is a multi-model database that aims to address the requirements of contemporary application development. It provides a range of features intended to offer flexibility and functionality, positioning it as a potential option for developers seeking adaptable database solutions.[9][7]
Architecture[edit]
SurrealDB offers various configurations for its architecture.
- Single-node (in-memory) for multi-reader, single-writer querying and data analysis.
- Web browser with WebAssembly library for remote database connections or IndexedDB-based persistence in the browser.
- Single-node (on-disk) using RocksDB or SpeeDB for persistent data storage.
- Distributed clusters using FoundationDB or TiKV for high availability and scalability.
Platform[edit]
- Multi-tenancy[14] data separation allows splitting data into namespaces and databases.
- Multi-table, multi-row transactions for fully ACID-compliant operations.
Data model[edit]
- Supports storage with and without schemas
- Supports basic types like booleans, strings, and numerics (64-bit integers and floats, and 128-bit decimals).
- Empty values can be represented as
NONE
orNULL
. - Native support for arrays and objects with unlimited nesting depth.
- Date-times in ISO-8601 format, converted and stored in UTC.
- GeoJSON data types.
- Futures and casting capabilities for computed and strongly typed values.
SurrealQL[edit]
- SQL-like query language with statements like SELECT, CREATE, UPDATE, DELETE, RELATE, and INSERT.
- Features like FOR loops and THROW statements for custom error types.
- Nested field queries, mathematical and geospatial operators.
- Complex record IDs and record ID ranges for timeseries contexts.[7]
Additional features[edit]
- Pre-defined aggregate analytics views for data analysis.
- Live queries and record changes with web-based data syncing.
- Global parameters for database-wide value accessibility.
- Custom functions for complex, user-defined logic within queries.
- Database as a backend which enables client applications to remove the need for Backend APIs with scoped permissions and user authentication.
Differences from typical SQL databases[edit]
SurrealDB has a number of differences from typical SQL databases[3]
- No "joins" - instead of joins, SurrealDB uses directional graph relations (edges)
- No foreign keys - SurrealDB uses "record links" which are a type of identifier referring to the table and unique record IDs
- Data Model - SurrealDB uses a hybrid document & table database system, with support for schemaless and schemafull record data structures.
SurrealKV[edit]
SurrealKV, set for inclusion in SurrealDB's 1.X release, is being developed as a native Rust-based key–value storage engine for both single-node and distributed systems. It aims to enable multiple concurrent writers and readers, with a focus on immutable data querying, versioned queries, data change auditing, and historic analysis. The distributed version will additionally offer scalability to handle terabytes of data and enhanced fault tolerance for enterprise-level applications. [15]
Surrealist[edit]
Surrealist is the official database management graphical user interface for SurrealDB.
On April 23, 2024, SurrealDB announced that they hired the creator of the unofficial open sourced graphical database management application, Surrealist. The company announced a major 2.0 update to Surrealist coinciding with this event, making Surrealist an official database management graphical interface for SurrealDB. [16]
See Also[edit]
- List of graph databases
- Document-oriented database
- MongoDB
- Backend as a service
- Database as a service
References[edit]
- ^ Peyton, Antony (2022-07-21). "Tech Startup SurrealDB Goes Live with Serverless Cloud Database". eWeek UK. Retrieved 2024-01-19.
- ^ Barron, Jenna (2024-05-10). "SD Times Open-Source Project of the Week: SurrealDB". SD Times. Retrieved 2024-05-17.
- ^ a b c d "Database of Databases — SurrealDB". Database of Databases. 2023-04-04. Retrieved 2024-05-30.
- ^ a b Wiggers, Kyle (2023-01-04). "SurrealDB raises $6M for its database-as-a-service offering". TechCrunch. Retrieved 2024-01-19.
- ^ "SurrealDB launch marks monumental milestone in the world of data management". UK Tech News. 2023-09-15. Retrieved 2024-01-19.
- ^ Wood, Anna. "London's tech scene gets a reboot". Startups Magazine. Retrieved 2024-01-19.
- ^ a b c Šelmeci, Roman (6 Nov 2023). "SurrealDB, AWS DynamoDB and AWS Lambda". Sudolabs.
- ^ "SurrealDB: Open source scalable graph database has big potential". devmio - Software Know-How. 2022-08-23. Retrieved 2024-01-19.
- ^ a b "SurrealDB | Features | The ultimate multi-model database". SurrealDB. Retrieved 2024-01-19.
- ^ Peyton, Antony (2021-09-29). "SurrealDB Keeps it Real with Serverless Cloud Database Launch". eWeek UK. Retrieved 2024-01-19.
- ^ Team, TechRound (2024-04-25). "Meet Tobie Morgan Hitchcock, CEO & Co-Founder Of SurrealDB". TechRound. Retrieved 2024-05-17.
- ^ Vrcic, Tea (2024-03-06). "10 fast growing UK startups to watch in 2024 and beyond!". EU-Startups. Retrieved 2024-05-17.
- ^ Team, TechRound (2023-09-11). "SurrealDB: A Quantum Leap in Database Technology". TechRound. Retrieved 2024-05-17.
- ^ "Top 70+ startups in Database as a Service (DBaaS) - Tracxn". tracxn.com. 2024-04-05. Retrieved 2024-05-17.
- ^ Morgan Hitchcock, Tobie (1 Nov 2019). "Kellogg College, University of Oxford Whitepaper: "In Search of an Efficient Data Structure for a Temporal-Graph Database"" (PDF). surrealdb.com.
- ^ "SurrealDB Unveils Surrealist 2.0, Surpasses MongoDB in Github Popularity » Light Square » World News". lightsquare.org. Retrieved 2024-05-24.