Питонячьи библиотеки для CouchDB

По большому счету кроме urllib2 больше ничего и не надо. Но если хочется каких-то более удобных оберток над CouchDB REST API то есть из чего выбрать. Мне на глаза попадались три различные реализации и в начале разработки проекта пришлось потратить время на то чтобы выбрать подходящую.

Сразу оговорюсь, что все они очень похожи и делают одинаковые вещи - оборачивают в объекты основные сущности, которые предоставляет API -- сервер, база, документ и вьюха. Все совместимы с последним релизом самого CouchDB -- 0.10.

Первая из библиотек -- couchdb-python. Самая старая из появившихся. Можно сказать референсная реализаци. Имеет все полезные абстракции и даже чуть боьлше. Это "больше" заключается в возможности задать схему документа в декларативном Django-like стиле и реализация питонячьего view-сервера. Первое нужно чтобы как-то структурировать документы и работу с ними, а второе для того чтобы использовать python как язык для map/reduce обработчиков вместо штатного JavaScript. Умеет работать как с simplejson так и с быстрой cjson библиотекой. Так же хочет чтобы балы httplib2.

Следующий кандидат это couchdbkit. Умеет практически всё тоже самое, но имеет чуть больше хелперов и экстеншенов с адаптерами к популярными библиотекам вроде Django. Тянет за собой в зависимостях restkit (как видно из названия -- REST-клиент библиотека от того же автора) и умную библиотеку для выбора оптимального json пакета в системе. Недостатком является отсутствие view-сервера (хотя обещают, что "на днях" появится) и начало синдрома "большого проекта" у автора.

couchquery -- из всех самая мало известная. Есть все базовые вещи плюс view-сервер как отдельный пакет. Откровенно говоря, самая слабая из всех.

В итоге я всё-таки выбрал couchdb-python. Написал какие-то вспомогательные функции по менеджменту баз и вьюх. Провязал их с подсистемой тестирования в Джанге. Понравилась работать со схемами -- всё довольно просто и прозрачно, и дает возможность легко наворачивать функционал вокруг.

Возможно вы знаете ещё какие-то интересные реализации или аргуметы за/провит описанных мною, поэтому прошу поделить вашим опытом. Чем вы руководствовались и как выбирали CouchDB библиотеки для своих проектов?

Комментарии 5

  1. sorgoz написал:

    Саш, а как выглядит "синдром большого проекта"?

    Оставлен 08 Январь 2010 в 15:02
  2. sorgoz написал:

    А вот еще какая-то штучка для Джанги (++CoucheDB): http://bitbucket.org/david/django-storages/wiki/Home

    Оставлен 08 Январь 2010 в 15:13
  3. http://pioneer-hg.livejournal.com/ написал:

    Есть еще http://github.com/42/42-django-couchdb/, но я лично с ней не работал.

    Оставлен 08 Январь 2010 в 17:07
  4. Александр Кошелев написал:

    Саш, а как выглядит "синдром большого проекта"?

    Начинается всё с того, что проект которому за глаза хватает странички на каком-нибудь код-хостинге обзаводится своим сайтом. Обычно, это только начало... :-(

    http://bitbucket.org/david/django-storages/wiki/Home

    Это файловые стораджи. Конечно интересно, но не то.

    Оставлен 08 Январь 2010 в 23:41
  5. Александр Кошелев написал:

    Есть еще http://github.com/42/42-django-couchdb/, но я лично с ней не работал.

    Это уже надстройка над couchdb-python в виде джанговского ДБ бекэнда. У нас не взлетело из-за концептуальных кретинизмов решения.

    Оставлен 08 Январь 2010 в 23:43