U1DB

From Wikipedia, the free encyclopedia
Jump to: navigation, search
U1DB
Developer(s) “Ubuntu One” Team
Initial release 2011
Stable release
13.10 / October 8, 2013 (2013-10-08)
Development status Active
Written in Python, C, SQLite
Operating system Cross-platform
Available in English
Type Document-oriented database
License GNU LGPL v3
Website launchpad.net/u1db/

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 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. Retrieved 2014-03-03. 
  4. ^ "U1DB — u1db 0.1.4 documentation". Pythonhosted.org. Retrieved 2014-03-03. 

External links[edit]