Различия между PouchDB и CouchBase Lite + LiteGap

В автономном/онлайн-проекте Phonegap:

  • В чем разница между использованием PouchDB и использованием CouchBase Lite с новым LiteGap плагин?

  • Это два разных решения одной и той же проблемы?

  • Можно ли использовать API PouchDB для взаимодействия с локальной базой данных CouchBase Lite?


person TMichel    schedule 24.08.2013    source источник


Ответы (3)


После некоторых исследований и относительно новой темы я подумал, что было бы интересно поделиться своим опытом, отвечая на мой собственный вопрос:

В чем разница между использованием PouchDB и CouchBase Lite с новым подключаемым модулем LiteGap?

PouchDB может создать локальную базу данных (websql или IndexedDB) на устройстве и реплицировать ее с помощью внешней CouchDB. Также может использоваться в качестве клиента для внешней CouchDB.

Couchbase Lite создает базу данных iOS/Android на устройстве, доступную по умолчанию на http://localhost:5984. Затем вы можете реплицировать локальный Couchbase Lite с другими внешними сервисами Couchbase/CouchDB. LiteGap позволяет создавать и использовать базу данных Couchbase Lite в проекте PhoneGap.

Оба решения доступны для использования в проекте Phonegap.

Это два разных решения одной и той же проблемы?

Короче говоря, нет.

PouchDB является кроссплатформенным, поэтому вы можете использовать его в веб-проекте, а также в гибридном приложении. Также он предоставляет полезный API для прямого взаимодействия с локальной базой данных или внешней CouchDB. Поскольку вы основаны на технологиях websql/IndexedDB, у вас есть ограничения на хранение, которые постоянно просят пользователя предоставить больше места для хранения вашего веб-сайта/приложения.

Couchbase Lite — это собственное решение для iOS/Android, которое устанавливает базу данных Couchbase на локальном хосте устройства. Вместе с плагином LiteGap вы можете использовать его в проекте Phonegap.

Можно ли использовать API PouchDB для взаимодействия с локальной базой данных CouchBase Lite?

Да, но в моих тестах некоторые функции не работали должным образом.

Во-первых, в Couchbase Lite нет javascript HTTP API, поэтому я решил использовать Pouch в качестве клиента. PouchDB может использовать внешние сервисы Couch, поэтому мы настроили Pouch для использования устройства Couchbase Lite на localhost:5984.

Теперь с помощью Pouch вы можете create создать базу данных, put() или replicate из локального хранилища в облако. Однако я обнаружил проблемы с репликацией из облака в локальную сеть с использованием метода Pouch replicate.from. Одним из способов обхода этого является настройка двусторонней репликации с использованием старого доброго $.ajax для публикации на устройстве http://localhost:5984/_replicate, как если бы вы использовали узел curl (передавая данные объекта с помощью source, target, continous и т. д.).

Я надеюсь, что это поможет кому-то принять решение о том, какие технологии использовать при создании гибридного приложения с синхронизацией в автономном и онлайн-режиме.

person TMichel    schedule 27.08.2013
comment
Плагин SQLite для Cordova/PhoneGap с этой страницы: pouchdb.com/adapters.html говорит, что нам больше не нужно быть в курсе квот и т.д. B'se PouchDB интегрируется с SQLite Если я не ошибаюсь! - person inblueswithu; 24.10.2014

Просто хотел, чтобы вы знали, что я написал обширный производительность обзор, показывающий различия между CouchDB и Couchbase Lite.

Некоторые выводы:

  • PouchDB выигрывает при «добавлении массовых документов» и «получении документа по id»
  • Couchbase Lite выигрывает при «получении всех документов»
  • они рисуют при «запросе документа через представление» (PouchDB работает быстрее, но Couchbase Lite имеет кеширование)
person zemirco    schedule 03.02.2014

В дополнение к двум другим ответам, здесь — это пример приложения с блог-сайта Couchbase.com о том, как создать приложение списка дел с помощью pouchDB и синхронизировать его с CouchBase Mobile.

Еще одна ссылка в блоге разработчиков Blackberry.

person securecurve    schedule 27.09.2015