I built Vasern — a data storage for React Native
An open source sync database solution
React Native is a framework for building native mobile apps, released in 2013 by Facebook. In the past 5 years, the React Native hype has a steady growth.
It currently has 69,469 stars on Github, and is being used by many decent companies. Including Facebook, Airbnb, Discord, etc.
Current trends using Google Trends (can be different using other keywords)
One thing I found pretty strange is the available options for data storage are quite limited. Which includes AsyncStorage, SQLite, Firebase (use LevelDB), and Realm. While only Firebase and Realm support sync to the cloud, which tired up to their services.
Recently, I involved with React Native quite often. Though I wasn’t happy with the current state of open source database for React Native. And decided to build a database that allows me to just plug in and use, without having many third party libraries or services involved.
Besides, to obtain the best performance, I decided to build it natively.
But why build a database?
I found AsyncStorage and SQLite are pretty slow. Also, there are many wrapper libraries built on top of these two DB/storage system.
Besides, most of the mobile apps these days need to sync data to the cloud, which mean besides the effort to optimize local storage, developers need to worry about setting up servers (authentication, security, performance, scalability, etc.). Or pay for service like Firebase, Realm.
I have enjoyed using both Firebase and Realm in the past. The only problem is making twists to fix up an issue (i.e a specific query need) on the server won’t be available. And attach to their service doesn’t seem a pleasure to me.
The goals of Vasern focus on performance, friendly to developers and make it available for everyone.
Most of the time, building a new database isn’t a smart idea. It is time-consuming, need extreme care to ensure data consistency, scalability, security, etc…. Though, I find this challenge interesting, and as a way to solve the issue I am facing.
Vasern (alpha) release
The result so far was pretty satisfying. It helped me to set up a local database for my new React Native app in less than 5 minutes. And it is super fast.
I recently release Vasern under alpha version. It supports React Native on iOS. More details and example are available on Github.
Documentation is being completed. More about Vasern will be provided in the upcoming post. Thanks for reading and please subscribe to Vasern Github repository to keep up-to-date.
P/s: I also launch Vasern on ProductHunt and would appreciate your support