The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

18.12.2017 14:12

Представлен релиз документ-ориентированной СУБД 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.


  1. Главная ссылка к новости (https://pouchdb.com/2017/12/16...)
  2. OpenNews: Релиз документо-ориентированной СУБД MongoDB 3.6
  3. OpenNews: Выпуск документ-ориентированной БД Apache CouchDB 2.0
  4. OpenNews: Доступна отказоустойчивая СУБД CockroachDB 1.1
  5. OpenNews: Выпуск СУБД Redis 4.0 с новым движком репликации и поддержкой модулей
  6. OpenNews: Компания Bloomberg открыла код распределённой СУБД Comdb2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47760-pouchdb
Ключевые слова: pouchdb, couchdb, javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (27) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (-), 14:32, 18/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Глядя на новость, подумал, что неплохо бы написать СУБД и назвать её OuchDB. Оказалось, уже написали. ☹
     
  • 1.8, Аноним (-), 16:11, 18/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я конечно люблю JS, но это не тот язык, на котором стоит делать такие вещи
     
     
  • 2.9, Аноним (-), 16:49, 18/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    просто вы не поняли нафига она нужна. Это по факту прослока между couchdb и клиентским js кодом с прозрачной репликацией.в couchdb реплики не консистентны.
     
  • 2.12, Аноним (-), 19:10, 18/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Я конечно люблю JS, но это не тот язык, на котором стоит делать такие вещи

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

     
     
  • 3.13, Аноним (-), 20:06, 18/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Особенно 54 битовый инт
     
     
  • 4.41, Аноним (-), 10:37, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ecma tc39 bigint proposal.

    Ну а пока - bigdecimal.js, угу.

     

  • 1.18, Аноним (-), 22:33, 18/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Хммм... Сам не любитель жабаскрипта, но понимаю, что бывают ситуации, когда для быстроты деплоя и кросс-платформенности аппликухи жабаскрипт в броузере - единственно возможное решение. Так что пусть будет.
     
  • 1.20, Greg KH (?), 06:08, 19/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Звучит страшно, а по факту - кеш БД на стороне клиента.

    Божечки, что с этим миром, если JavaScript (именно язык) стал так популярен... Хочу другой шарик

     
     
  • 2.21, Аноним (-), 07:07, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, да остановите я сойду. Надо просто привыкать к этой чертовой реальности если уж мы тут застряли, по крайней мере на какое то время.
    Меня больше пугает couchdb в роли бэкенда.
     
     
  • 3.25, Мать драконов (?), 09:44, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Интересно, такие умники как вы, ребята, на чем пишут код. И исходники в студию, пожалуйста, со ссылкой на гитхаб.
     
     
  • 4.29, Аноним (-), 13:26, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    что конкретно вас смущает? хотите пообщаться заходите на #linux в руснете.
     
  • 2.23, лютый жабист__ (?), 07:34, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Божечки, что с этим миром, если JavaScript (именно язык) стал так популярен

    Проблемы начались раньше, когда рeшeто под названием СИ стало основным языком для написания ОС и других важных прожек. Хотя я ни за что не ратую. Самое смешное, что нормального языка ещё не придумали.

     
     
  • 3.24, Ю.Т. (?), 09:17, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ...и не придумают. И круг не сквадратируют.
    Почему так? Единственный "нормальный язык" это человеческий язык. Машинный язык это его модель.
     
     
  • 4.26, лютый жабист__ (?), 11:12, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >Единственный "нормальный язык" это человеческий язык

    Это что за человеческий язык? Я вот знаю рус и анг, скажу, что у руссиша полно проблем. Как и у английского.

     
     
  • 5.27, 1 (??), 11:29, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    эсперанто же !
     
  • 5.28, Ю.Т. (?), 11:50, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>Единственный "нормальный язык" это человеческий язык
    > Это что за человеческий язык? Я вот знаю рус и анг, скажу,
    > что у руссиша полно проблем. Как и у английского.

    Да, естественный язык. И что, что "полно проблем"? Я не говорил, что "без проблем", я говорил -- "нормальный".

     
     
  • 6.30, Аноним (-), 13:48, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    "Нормальный" это тот который соответствует определенной норме. А вообще хорошо накинул тонко так, аж некоторые повелись.
     
     
  • 7.34, Ю.Т. (?), 16:46, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > "Нормальный" это тот который соответствует определенной норме. А вообще хорошо накинул
    > тонко так, аж некоторые повелись.

    Сомнительная похвала. Я не искал себе потехи за счёт кого-то, а совершенно серьёзно имел в виду, что "нормальный язык программирования" это "квадратура круга" (ЯП - язык, выводимый из естественного и направленный на частный круг проблем)

     
     
  • 8.35, Аноним (-), 17:44, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я конечно извиняюсь но у вас в голове какая то каша Формальный язык имеет отнош... текст свёрнут, показать
     
     
  • 9.40, Ю.Т. (?), 21:14, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    И я тоже извиняюсь, нездорово не видеть ничего за пределами своей предметной о... текст свёрнут, показать
     
  • 8.36, Аноним (-), 17:50, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я честно говоря не понимаю про какую нормальность вы говорите Аборигены скушали... текст свёрнут, показать
     
  • 5.33, Аноним (-), 14:28, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Можете огласить список?
     
  • 4.32, PnDx (ok), 14:06, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Машинный язык это его модель.

    Таки нет, если не переопределять понятия ("модель" >> "подмножество"). И даже тогда, в общем случае — нет (asm, brainfuck, etc.).
    И понятие "нормальный язык", извините за занудство, выводится из аксиомы "я — нормальный" (или аналогичной по назначению).

    ЯП (не считая хипстерских псевдо-DSL) обычно конструируют математики, у них для этого есть в аппарате "грамматики" и т.п. куда я глубоко не лазал. Реализуют в лучшем случае инженеры (тогда есть шанс на выход годного, т.к. одна из задач — "сделать юзабельно"), в худшем — "чистые" программисты. Иллюзию человекообразности привносят как раз инженеры, пытающиеся сопрячь абстракцию с реальностью (как они её представляют). * Что-то меня понесло, закруглюсь.

     
  • 3.39, Аноним (-), 20:03, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Проблемы начались раньше, когда рeшeто под названием СИ стало основным языком для
    > написания ОС и других важных прожек.

    Он им стал из-за ограничений железа тех лет. Хотелось писать более-менее удобно, но нужно было низкоуровнево. Им был нужен просто более-менее выразительный, относительно платформонезависимый макро-ассемблер - вот Си это оно и есть.

    > Самое смешное, что нормального языка ещё не придумали.

    Haskell норм. Rust неплох. Go отлично показывает себя на практике в прикладных проектах. Вроде вполне нормальные. Хотя до идеального далеко, конечно, да.

     

  • 1.31, iZEN (ok), 14:03, 19/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем не подошла H2?
     
     
  • 2.38, Аноним (-), 19:54, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Она же на Java, а тут речь вроде про JavaScript.
     

  • 1.37, Аноним (-), 19:53, 19/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Имеется даже надстройка Python-PouchD для использования PouchDB в проектах на языке Python

    А какрй смысл использовать в Python JavaScript-овую версию?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру