Realm (YC S11) Announces $20M Series B, 100M Devices After 9 Months
realm.io
realm.io
It is an interesting metric for us, given that sqlite has for a long time (rightfully) claimed to be the most widely deployed datebase in world, which is also primarily based on their usage on mobile devices.
---
I've been working on a comic reader app for iOS for about 3 years (http://icomics.co). Up until last year, I was using Core Data to persist both metadata information for each comic, as well as per-page caching information to disk.
Unfortunately, Core Data hit a breaking point with me (I encountered a rather catastrophic data corruption issue when trying to get it to perform automatic schema migrations :( ) and, initially as a feasibility test, I decided to try migrating the whole solution over to using Realm. If it wasn't up to the task, my backup plan was going to have been moving to raw SQLite (and all the boilerplate code that that would have required).
Suffice it to say, I was more than impressed with Realm. Since it more or less followed the same objects model as Core Data, porting my apps entire data implementation over to it took less than a single evening of work. The API was ridiculously easy to learn, and I found it much easier to pass data between threads than what I was needing to do to achieve the same result in Core Data. It was also VERY satisfying deleting giant swaths of Core Data code. ;)
I was so impressed with the whole process that after that, I held a talk on it at a local iOS meetup in my city. Afterwards, I uploaded the talk as a video to YouTube (https://www.youtube.com/watch?v=cGptaE2_WEQ) and it was thanks to this video that Realm found me, and how I joined the company. :)
Realm's been in production use in my app for 5 months now, and I can safely say it's performed above and beyond my expectations. For iOS projects, I definitely recommend it. :)
It basically provided everything i needed out of the box, and i have dictionaries with 250,000 - 400,000 words that returns BEGINSWITH queries sorted by most used words faster than anyone would be able to type. (below 20ms on an iPhone 5)
I had actually implemented everything in CoreData (sqlite) at first, but when i fell over Realm i gave myself a couple of hours to test it out, and haven't looked back since. It has a really small API surface, so if you're considering to use it I would definitely recommend you to try it out, it wouldn't take a long time to find out if what you need is available.
No inheritance. No nested transactions. No RxJava support (due to threading issues with Realm). Many annoying random errors (for example, get a row then close the DB connection -> You can't use those results after. Although I believe that this is by design because Realm doesn't cache any data - it queries every time it's requested AFAIK).
It's definitely on the way to being an awesome asset, but it's not there yet!
We seriously love to get the feedback so we can prioritize the additional features our users desire the most.
That said, we are very encouraged to see that the current features satisfy a lot of "non-toy" apps as well and that many thousands developers are building new apps every week.
You can see some of them mentioned here: http://realm.io/users/, and at the end of that page is also some unedited interviews with developers.
/Brian from Realm
Realm Inc. already generates revenue by selling additional enterprise products & services around the technology.
The core has been developed from the ground up in C++ over the last 3 1/2 years. Realm’s efficiency comes from leveraging bit-packing, caching, vectorization, query algorithm innovations and a zero-copy architecture to realize gains in memory usage and speed. Data is stored in a single memory mapped file. It uses copy-on-write MVCC (Multi-Version-Concurrency-Control) allowing very efficient fully ACID serializable transactions.
The core is exceptionally fast, which we can leverage to make easy to use API's in the different languages (currently Java, ObjC, Swift and more to follow) and still maintain a speed and functionality advantage.