U1DB

{{Infobox software

| name = U1DB

| developer = Ubuntu One team

| released = 2011

| latest release version = 13.10

| latest release date = {{start date|2013|10|08}}

| repo = {{URL|https://launchpad.net/u1db/}}

| programming language = Python, C, SQLite

| language = English

| genre = Document-oriented database

| license = GNU LGPL v3

}}

U1DB is a cross-platform, cross-device, syncable{{cite web|url=http://pythonhosted.org/u1db/conflicts.html#synchronisation |title=Conflicts, Synchronisation, and Revisions — u1db 0.1.4 documentation |publisher=Pythonhosted.org |date= |accessdate=2014-03-03}} database application programming interface (API).{{cite web|url=http://pythonhosted.org/u1db/ |title=U1DB — u1db 0.1.4 documentation |publisher=Pythonhosted.org |date= |accessdate=2014-03-03}} 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.

U1DB was created when Canonical had scaling issues with CouchDB previously used in their Ubuntu One service.{{cite web|url=https://lists.ubuntu.com/archives/ubuntu-desktop/2011-November/003474.html |title=EOL for couchdb and desktopcouch |publisher=Lists.ubuntu.com |date= 21 November 2011|accessdate=2014-03-03}} 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.

class="wikitable"

|+ Implementations of U1DB{{cite web|url=http://pythonhosted.org/u1db/#implementations |title=U1DB — u1db 0.1.4 documentation |publisher=Pythonhosted.org |date= |accessdate=2014-03-03}}

! Platform(s)

! Language

! Back end database

! Link

Ubuntu, Windows, OS XPythonSQLite[http://pythonhosted.org/u1db/reference-implementation.html#reference-implementation The reference implementation]
UbuntuValaSQLite[http://launchpad.net/shardbridge/ lp:shardbridge]
Ubuntu, Windows, OS XCSQLitepart of [http://launchpad.net/u1db/ lp:u1db]
Ubuntu, Windows, OS XGoLevelDB and/or MongoDB[http://launchpad.net/gouda/ lp:gouda] (in progress)
WebJavaScriptlocalStorageplanned
AndroidJavaSQLiteplanned
iOSObjective-CSQLiteplanned

References

{{reflist}}