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]

U1DB
Developer(s)Ubuntu One team
Initial release2011
Stable release
13.10 / October 8, 2013 (2013-10-08)
Repositorylaunchpad.net/u1db/
Written inPython, C, SQLite
Available inEnglish
TypeDocument-oriented database
LicenseGNU 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.

Implementations of U1DB[4]
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
  1. ^ "Conflicts, Synchronisation, and Revisions — u1db 0.1.4 documentation". Pythonhosted.org. Retrieved 2014-03-03.
  2. ^ a b "U1DB — u1db 0.1.4 documentation". Pythonhosted.org. Retrieved 2014-03-03.
  3. ^ "EOL for couchdb and desktopcouch". Lists.ubuntu.com. 21 November 2011. Retrieved 2014-03-03.
  4. ^ "U1DB — u1db 0.1.4 documentation". Pythonhosted.org. Retrieved 2014-03-03.
edit