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 X | Python | SQLite | [http://pythonhosted.org/u1db/reference-implementation.html#reference-implementation The reference implementation] |
Ubuntu | Vala | SQLite | [http://launchpad.net/shardbridge/ lp:shardbridge] |
Ubuntu, Windows, OS X | C | SQLite | part of [http://launchpad.net/u1db/ lp:u1db] |
Ubuntu, Windows, OS X | Go | LevelDB and/or MongoDB | [http://launchpad.net/gouda/ lp:gouda] (in progress) |
Web | JavaScript | localStorage | planned |
Android | Java | SQLite | planned |
iOS | Objective-C | SQLite | planned |
References
{{reflist}}
External links
- {{Official website|https://launchpad.net/u1db/}}
- [http://pythonhosted.org/u1db/ Documentation]
- [http://kryogenix.org/days/2014/01/23/a-simple-u1db-example-for-ubuntu-sdk-apps/ Using U1DB in ListViews in Ubuntu SDK apps]
Category:Free software programmed in Python
Category:Free software programmed in C
Category:Software using the GNU Lesser General Public License
{{Free-software-stub}}
{{Database-software-stub}}