U1DB is a cross-platform, cross-device, syncable database application programming interface (API). 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. 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 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

External links

Documentation Using U1DB in ListViews in Ubuntu SDK apps