HOME

TheInfoList



OR:

Realm is an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
object database An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which ar ...
management system A management system is a set of policies, processes and procedures used by an organization to ensure that it can fulfill the tasks required to achieve its objectives. These objectives cover many aspects of the organization's operations (including ...
, initially for mobile operating systems ( Android/
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also includes ...
) but also available for platforms such as
Xamarin Xamarin is a Microsoft-owned San Francisco-based software company founded in May 2011 by the engineers that created Mono, Xamarin.Android (formerly Mono for Android) and Xamarin.iOS (formerly MonoTouch), which are cross-platform implementation ...
,
React Native React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along w ...
, and others, including desktop applications (
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
), and is licensed under the Apache License. In September 2016, the Realm Mobile Platform was announced, followed by the first stable release in January 2017. It allows two-way synchronization between the Realm Object Server and the client side databases that belong to the given logged-in user. Both a developer and a commercial edition was released, along with a business license for integrating with other database management systems such as
PostgreSQL PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
. In spring 2019,
MongoDB MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the Serve ...
acquired Realm for 39 million USD.


History

Realm's development began in the end of 2010 by Alexander Stigsen, along with Bjarne Christiansen, under the name TightDB. The company started in 2011 at
Y Combinator Y Combinator (YC) is an American technology startup accelerator launched in March 2005. It has been used to launch more than 3,000 companies, including Airbnb, Coinbase, Cruise, DoorDash, Dropbox, Instacart, Quora, PagerDuty, Reddit, Str ...
. It was promoted as
NoSQL A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
with configurable durability, and the ability to share the same groups of data across multiple processes, but also even multiple devices and clusters. TightDB renamed its product to Realm in September 2014, and released it for public testing. In March 2015, funding of about $20 million was disclosed. Realm was mentioned in some
trade press A trade magazine, also called a trade journal or trade paper (colloquially or disparagingly a trade rag), is a magazine or newspaper whose target audience is people who work in a particular trade or industry. The collective term for thi ...
, including by other firms such as IBM. Realm announced version 1.0 in June 2016, and released a platform for real-time two-way synchronization (beta in 2016 September, release in 2017 January), and provided a
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
SDK for server-side applications. In May 2017, UWP support was announced.


Features

The most notable features of Realm are the following: * As Realm is an object store, its typed language-specific
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
s map typed objects directly into the Realm file – therefore classes are used as the schema definition. * Relationships between objects are allowed via "links". Each "link" creates a "backlink" as an inverse relationship to whichever objects are linking to the current object. * The query results returned by Realm are thread-local views to the current "database version" (as Realm handles concurrency with MVCC architecture), and these views "automatically update" when a transaction is committed from ''any thread'', as long as Realm is able to update its instance version (which is possible on threads that are able to receive change notifications). When this happens, Realm calls change listeners that are added to its query results (if they've changed). * Each thread-local view returns proxy objects that only read from/write to the database when an accessor method is called, meaning all database access is lazy-loaded. Writes are allowed only while in a write transaction. * As each query result and each proxy object is a view to the underlying data, any change made to the database is reflected in all objects that point to the same data. Realm generally calls this behavior "zero-copy architecture" (along with the previously mentioned lazy-loaded data access).


Programming language support

*
Objective-C Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXTS ...
*
Swift Swift or SWIFT most commonly refers to: * SWIFT, an international organization facilitating transactions between banks ** SWIFT code * Swift (programming language) * Swift (bird), a family of birds It may also refer to: Organizations * SWIFT, ...
*
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
( Android only) * Kotlin ( Android only) * C# (
Xamarin Xamarin is a Microsoft-owned San Francisco-based software company founded in May 2011 by the engineers that created Mono, Xamarin.Android (formerly Mono for Android) and Xamarin.iOS (formerly MonoTouch), which are cross-platform implementation ...
, Win32, UWP) *
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
(
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
,
React Native React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along w ...
)


References

{{reflist


External links


Official website

Realm on Android
Database management systems