U1DB | |
Developer: | Ubuntu One team |
Released: | 2011 |
Latest Release Version: | 13.10 |
Programming Language: | Python, C, SQLite |
Language: | English |
Genre: | Document-oriented database |
License: | GNU LGPL v3 |
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.
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.
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 |