U1DB is a database API for synchronised databases of JSON documents. It’s simple to use in applications, and allows apps to store documents and synchronise them between machines and devices. U1DB is the database designed to work everywhere, backed by the platform’s native data storage capabilities. This means that you can use u1db on different platforms, from different languages, and backed on to different databases, and sync between all of them.

The API for U1DB looks similar across all different implementations. This API is described at The high-level API. To actually use U1DB you’ll need an implementation; a version of U1DB made available on your choice of platform, in your choice of language, and on your choice of backend database.

If you’re interested in using U1DB in an application, look at The high-level API first, and then choose one of the Implementations and read about exactly how the U1DB API is made available in that implementation. Get going quickly with the Downloads and Quickstart guide.

If you’re interested in hacking on U1DB itself, read about the rules for U1DB and The reference implementation.


Choose the implementation you need and get hacking!

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

Indices and tables

Table Of Contents

Next topic

Downloads and Quickstart guide

This Page