Reputation: 389
I need to store on a mobile device (iOS/Android) more that 100k records with several tables (many-to-many relations). Right now I store them in sqlite/CoreData. The sync process is slow (http->json->db). I want to use realm and pre-populate realm db file on a server (http->db).
Questions:
1) Is realm db file binary compatible among platforms?
2) Can I make realm db file on a linux server? Which realm-SDK should I use?
I wish realm developers read this!
UPDATE:
found related thread How can I ensure Realm schema is identical across Android and iOS?
so, I can answer for myself:
1) "The realm documentation says that Realm files are cross platform." https://realm.io/docs/swift/latest/#finding-a-realm-file
2) "The Realm browser can generate Models from existing Realm files in multiple languages." You can use realm-cocoa and build your tool on linux server, apt-get install gcc gobjc gnustep-devel
Upvotes: 2
Views: 736
Reputation: 7806
We released the Node.js SDK, which can be used on the server-side to access Realms.
This however doesn't include the new synchronization capabilities though. Server-side access to synced Realms remains exclusive to the Enterprise Edition of the Realm Mobile Platform.
We released the Realm Mobile Platform. You can use this to real-time synchronize Realm files served via the Realm Object Server, over a custom protocol on top of HTTP which will only transmit the deltas.
For the Enterprise Edition of the Realm Mobile Platform, we offer a Node.js binding, which can be used for server-side access.
Realm's Core is now open-source.
There isn't really a suitable binding for servers yet - not if you don't want to run an OS X machine. I don't know about experiences with building Realm's Objective-C binding on GNUstep's alternative FoundationKit implementation, but you will likely run into issues, where it will be hard to assist you, because that's a completely untested configuration.
Note though that this is generally an issue, we're investigating. We're not yet at the point, where we can expose an official C++ binding / a public API of the underlying Core, which is the shared codebase between Cocoa and Java.
Upvotes: 3