Выпуск СУБД PouchDB 6.4, реализации CouchDB на JavaScript

Представлен релиз документ-ориентированной СУБД PouchDB 6.4, реализующей вариант СУБД Apache CouchDB, написанный на языке JavaScript и работающий внутри браузера или под управлением Node.js. PouchDB совместим с CouchDB на уровне API для хранения и выборки данных. Модель хранения повторяет CouchDB и обеспечивает средства разрешения конфликтов. Код распространяется под лицензией Apache 2.0. Размер сжатого архива с PouchDB занимает 46 Кб.

PouchDB позволяет создавать web-приложения, способные полноценно функционировать в offline-режиме и реплицировать данные из стационарных БД на базе CouchDB. При отсутствии сетевого соединения web-приложение может накапливать изменения в локальном хранилище на базе PouchDB, а после выхода в сеть синхронизировать изменения с внешним сервером, поддерживающим API CouchDB, или обеспечивать синхронизацию данных между клиентами.

PouchDB может работать во всех современных браузерах, а также применяться в серверных решениях на базе Node.js и в обособленных клиентских приложениях на базе Cordova/PhoneGap, NW.js и Electron. PouchDB не привязана к web-фреймворкам, но отдельно предоставляет обвязки для различных фреймворков, в том числе для Angular, React, Ember и Backbone. Имеется даже надстройка Python-PouchD для использования PouchDB в проектах на языке Python и реализация обособленного CouchDB-совместимого сервера. Для локального хранения данных в браузерах задействован API IndexedDB, а при его отсутствии WebSQL. При работе не под управлением браузера для хранения используется LevelDB или SQLite.

Основные новшества:

  • В функции allDocs () и query () добавлен флаг update_seq, по аналогии с CouchDB включающий в ответ значение идентификатора последовательности;
  • Добавлено появившееся в CouchDB 2.0 свойство «pending» для передачи сведений о числе ожидающих репликации документов;
  • Обеспечено выполнение пакетного запроса ключей через allDocs в рамках одной транзакции indexedDB и WebSQL. В Chrome подобная оптимизация ускорила выполнение allDocs до 8 раз, а в Friefox до 2 раз;
  • Добавлена возможность сохранения cookie при работе под управлением Node.js.

© OpenNet