O U1DB é uma interface de programação de aplicativos de plataforma cruzada, device cruzado e sincronizável (API). Ele permite que os aplicativos armazenem documentos JSON e sincronize -os entre máquinas e dispositivos. O U1DB é uma API de banco de dados orientada a documentos de documentos esquemais que não precisa conter nenhuma lista predefinida de campos. Ele pode ser implementado em qualquer idioma, em qualquer plataforma, usando qualquer back -end de armazenamento de dados.
O U1DB foi criado quando o Canonical tinha problemas de escala com o CouchDB usada anteriormente em seu serviço Ubuntu One. Eles estavam tendo problemas na implementação de seus serviços para milhões de usuários e, ao mesmo tempo, proporcionando um bom desempenho em grandes fazendas de servidores, além de tablets e smartphones. Definir uma interface (API) permitiu que eles implementassem seu serviço de sincronização de dados usando diferentes idiomas e lojas de dados em cada plataforma.
Implementations of U1DB Platform(s)LanguageBack end databaseLinkUbuntu, Windows, OS XPythonSQLiteThe reference implementationUbuntuValaSQLitelp:shardbridgeUbuntu, Windows, OS XCSQLitepart of lp:u1dbUbuntu, Windows, OS XGoLevelDB and/or MongoDBlp:gouda (in progress)WebJavaScriptlocalStorageplannedAndroidJavaSQLiteplannediOSObjective-CSQLiteplanned