U1DB is a cross-platform, cross-device, syncable[1] database application programming interface (API).[2] It allows applications to store JSON documents and synchronize them between machines and devices. U1DB is a schemaless document-oriented database API that does not need to contain any pre-defined list of fields. It can be implemented in any language, on any platform, using any data store backend.[2]
Developer(s) | Ubuntu One team |
---|---|
Initial release | 2011 |
Stable release | 13.10
/ October 8, 2013 |
Repository | launchpad |
Written in | Python, C, SQLite |
Available in | English |
Type | Document-oriented database |
License | GNU LGPL v3 |
U1DB was created when Canonical had scaling issues with CouchDB previously used in their Ubuntu One service.[3] They were having problems with implementing their service for millions of users and at the same time providing good performance on large server farms as well as tablets and smart phones. Defining an interface (API) allowed them to implement their data synchronization service using different languages and data stores on each platform.
Platform(s) | Language | Back end database | Link |
---|---|---|---|
Ubuntu, Windows, OS X | Python | SQLite | The reference implementation |
Ubuntu | Vala | SQLite | lp:shardbridge |
Ubuntu, Windows, OS X | C | SQLite | part of lp:u1db |
Ubuntu, Windows, OS X | Go | LevelDB and/or MongoDB | lp:gouda (in progress) |
Web | JavaScript | localStorage | planned |
Android | Java | SQLite | planned |
iOS | Objective-C | SQLite | planned |
References
edit- ^ "Conflicts, Synchronisation, and Revisions — u1db 0.1.4 documentation". Pythonhosted.org. Retrieved 2014-03-03.
- ^ a b "U1DB — u1db 0.1.4 documentation". Pythonhosted.org. Retrieved 2014-03-03.
- ^ "EOL for couchdb and desktopcouch". Lists.ubuntu.com. 21 November 2011. Retrieved 2014-03-03.
- ^ "U1DB — u1db 0.1.4 documentation". Pythonhosted.org. Retrieved 2014-03-03.
External links
edit