Realm Mobile Database Now on Node

Realm, the provider of a mobile object database for Android and iOS developers, has expanded from the client to the server with what it describes as the first object database for the Node JavaScript ecosystem: Realm Node.js.

Having started out offering an alternative to the SQLite and Core Data databases used on the Android and iOS platforms, Realm has steadily expanded its object database, which hit version 1.0 in May. For example, in September it open sourced the database and added back-end functionality in order to provide a complete enterprise platform.

Now, in response to customer demand, it has moved to the server side with Realm Node.js and opened up the new product to more developers using Node's popular npm package manager for JavaScript code. That means it can be installed simply with the usual "npm install" command-line instruction.

"Over the years, we've had tons of requests from mobile developers for a version of Realm that worked on the server, so it's long been on our backlog, though not highly prioritized," the company said in a blog post earlier this month. "But our priorities changed when we released the new Realm Mobile Platform in September, and potential customers started asking us for a Node interface for the platform. We pretty quickly made Node part of the platform product strategy (more on that in a few days), and that led to the creation of Realm Node.js."

The Node.js version of the company's database joins other client-side versions it developed for Swift, Objective-C, Java, Xamarin and React Native.

The primary reason developers asked for the server-side functionality of the new Node offering is that it lets developers create pre-populated "Realms" to clients, avoiding issues like app size limits, the company said.

"But things got even more interesting when we showed some early versions to backend developers and learned that it might be a lot more broadly useful to the Node community than we originally imagined," Realm said. "For example, we realized that it is useful for sharing live data between multiple Node instances."

In the blog post, the company provides an example of just such functionality, enabled by its Multiversion Concurrency Control to facilitate concurrent access to the database across multiple threads and processes.

Realm said its new offering might also be used for: working with large datasets that don't fit in local memory; creating queryable and observable data structures; building reactive architectures over multiple Node instances; or communicating between Docker images.

To learn more about the functionality, the company pointed interested developers to its React Native documentation and its API docs site, as its codebase is shared across all of its JavaScript platforms.