Обновление (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 вместе с вашим приложением вместе с некоторыми скриптами, чтобы убедиться, что оно работает при необходимости. Это возможно, но, очевидно, ни один из них не идеален, и, поверьте, вы не единственный, кто хочет более простое решение для настольных приложений!