Можно ли использовать CouchDB для настольного приложения? - PullRequest
7 голосов
/ 15 декабря 2010

Я надеюсь, что кто-то может подтвердить или исправить мои выводы здесь.

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

Я как бы немного прислушивался к шумам, связанным с CouchDB, и слышал упоминание об «офлайн-функциональности», десктоп-couchdb и о попытках использовать его способность обрабатывать прерывистые коммуникации для реализации распределенных приложений на рынке мобильных устройств.Все это заставило меня поверить, что это может быть интересным вариантом для обеспечения моего хранилища данных, а также для удовлетворения моих потребностей в синхронизации, но, потратив некоторое время на поиск информации о том, как начать, я пришел к выводу, что у меня естьсовершенно неверный конец флешки, и реальность такова:

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

Я прав здесь?Если да, то есть ли какая-либо технология, которая делает подобные вещи, или я оставляю просто кататься на своем локальном хранилище и, возможно, все еще использую CouchDB на сервере?

1 Ответ

5 голосов
/ 03 января 2011

Обновление (2012/05) : ознакомьтесь с новыми проектами TouchDB от Couchbase, если вы нацелены на Mac OS X и / или iOS или Android . Они фактически используют SQLite под капотом (по крайней мере, на данный момент), но могут реплицироваться на / с "реального" сервера CouchDB. Другая альтернатива клиентской стороне, которая наконец начинает развиваться, - это PouchDB , которая работает на движках браузера с поддержкой IndexedDB. Использование этих или использование их для создания аналогичного порта для другой настольной платформы теперь становится все лучше.

Оригинальный ответ:

Нет способа упаковать CouchDB экземпляр, распространяя его как часть настольного приложения и запустить его в контексте этого приложение для предоставления локального хранилища и синхронизация с центральным базы данных.

На данный момент ваше утверждение практически правильно, хотя можно включить CouchDB в приложение - например, см. CouchDBX.app, который представляет собой тонкую оболочку вокруг префиксного пакета CouchDB и всех его зависимостей.

Самый простой способ создать приложение CouchDB - предположить, что у пользователя уже есть сервер CouchDB . Это проще, чем кажется, особенно с хостингом Couchone или встроенным приложением, таким как CouchDBX в OS X или DesktopCouch в Ubuntu. Последнее особенно интересно, потому что, если я правильно понимаю, он включен по умолчанию в Ubuntu в наши дни и автоматически раскручивает сервер CouchDB для каждого пользователя, когда вы запрашиваете его порт через D-Bus. Нечто подобное можно (и нужно) сделать в OS X, используя launchd и Bonjour.

Итак, когда вы пишете, вы либо спроектируете свое приложение для хранения данных в локальном формате и при желании синхронизируете с предоставляемой вами услугой CouchDB, либо вам придется собрать и связать весь Erlang, SpiderMonkey и CouchDB вместе с вашим приложением вместе с некоторыми скриптами, чтобы убедиться, что оно работает при необходимости. Это возможно, но, очевидно, ни один из них не идеален, и, поверьте, вы не единственный, кто хочет более простое решение для настольных приложений!

...