Представлен (https://pouchdb.com/2017/12/16/pouchdb-6.4.0.html) релиз документ-ориентированной СУБД PouchDB 6.4 (https://pouchdb.com/), представляющей собой вариант СУБД Apache CouchDB, написанный на языке JavaScript и работающий внутри браузера. PouchDB совместим с CouchDB на уровне API для хранения и выборки данных. Модель хранения повторяет CouchDB и обеспечивает средства разрешения конфликтов. Код распространяется (https://github.com/pouchdb/pouchdb) под лицензией Apache 2.0. Размер сжатого архива с PouchDB занимает около 50 Кб.PouchDB позволяет создавать web-приложения, способные полноценно функционировать в offline-режиме и реплицировать данные из стационарных БД на базе CouchDB. Иными словами, при отсутствии сетевого соединения web-приложение может накапливать изменения в локальном хранилище на базе PouchDB, а после выхода в сеть синхронизировать изменения с внешним сервером, поддерживающим API CouchDB, или обеспечивать синхронизацию данных между клиентами.
PouchDB может работать во всех современных браузерах, а также применяться в серверных решениях на базе Node.js и в обособленных клиентских приложениях на базе Cordova/PhoneGap, NW.js и Electron.
PouchDB не привязана к web-фреймворкам, но отдельно предоставляет (https://pouchdb.com/external.html#framework_adapters) обвязки для различных фреймворков, в том числе для Angular, React, Ember и Backbone. Имеется даже надстройка Python-PouchD (https://python-pouchdb.marten-de-vries.nl/) для использования PouchDB в проектах на языке Python и реализация (https://github.com/pouchdb/pouchdb-server) обособленного CouchDB-совместимого сервера. Для локального хранения данных в браузерах задействован API IndexedDB (http://caniuse.com/#feat=indexeddb), а при его отсутствии WebSQL (http://caniuse.com/#feat=sql-storage). При обособленной работе и использовании с Node.js для хранения используется LevelDB или SQLite.
Основные новшества (https://github.com/pouchdb/pouchdb/releases/tag/6.4.0):
- В функции allDocs() и query() добавлен флаг update_seq (https://github.com/pouchdb/pouchdb/issues/6230), по аналогии с CouchDB (http://docs.couchdb.org/en/2.0.0/api/database/bulk-api.html) включающий в указание в ответе значения идентификатора последовательности;- Добавлено появившееся в CouchDB 2.0 свойство "pending (https://github.com/pouchdb/pouchdb/issues/5710)" для передачи сведений о числе ожидающих репликации документов;
- Обеспечено выполнение пакетного запроса ключей через allDocs в рамках одной транзакции indexedDB и WebSQL. В Chrome подобная оптимизация ускорила выполнение allDocs до 8 раз, а в Friefox до 2 раз;
- Добавлена возможность сохранения cookie при работе под управлением Node.js.
URL: https://pouchdb.com/2017/12/16/pouchdb-6.4.0.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=47760
Глядя на новость, подумал, что неплохо бы написать СУБД и назвать её OuchDB. Оказалось, уже написали. ☹
Я конечно люблю JS, но это не тот язык, на котором стоит делать такие вещи
просто вы не поняли нафига она нужна. Это по факту прослока между couchdb и клиентским js кодом с прозрачной репликацией.в couchdb реплики не консистентны.
> Я конечно люблю JS, но это не тот язык, на котором стоит делать такие вещину сейчас настали такие времена, что на любых языках делают что угодно
процессорные мощности запредельные, оперативной памяти километр, дискового пространства и облачных технологий вообще бездонная донь, так что я мало чему уже удивляюсь... +возможности java script крайне широки...
Особенно 54 битовый инт
Ecma tc39 bigint proposal.Ну а пока - bigdecimal.js, угу.
Хммм... Сам не любитель жабаскрипта, но понимаю, что бывают ситуации, когда для быстроты деплоя и кросс-платформенности аппликухи жабаскрипт в броузере - единственно возможное решение. Так что пусть будет.
Звучит страшно, а по факту - кеш БД на стороне клиента.Божечки, что с этим миром, если JavaScript (именно язык) стал так популярен... Хочу другой шарик
Да, да остановите я сойду. Надо просто привыкать к этой чертовой реальности если уж мы тут застряли, по крайней мере на какое то время.
Меня больше пугает couchdb в роли бэкенда.
Интересно, такие умники как вы, ребята, на чем пишут код. И исходники в студию, пожалуйста, со ссылкой на гитхаб.
что конкретно вас смущает? хотите пообщаться заходите на #linux в руснете.
>Божечки, что с этим миром, если JavaScript (именно язык) стал так популяренПроблемы начались раньше, когда рeшeто под названием СИ стало основным языком для написания ОС и других важных прожек. Хотя я ни за что не ратую. Самое смешное, что нормального языка ещё не придумали.
...и не придумают. И круг не сквадратируют.
Почему так? Единственный "нормальный язык" это человеческий язык. Машинный язык это его модель.
>Единственный "нормальный язык" это человеческий языкЭто что за человеческий язык? Я вот знаю рус и анг, скажу, что у руссиша полно проблем. Как и у английского.
эсперанто же !
>>Единственный "нормальный язык" это человеческий язык
> Это что за человеческий язык? Я вот знаю рус и анг, скажу,
> что у руссиша полно проблем. Как и у английского.Да, естественный язык. И что, что "полно проблем"? Я не говорил, что "без проблем", я говорил -- "нормальный".
"Нормальный" это тот который соответствует определенной норме. А вообще хорошо накинул тонко так, аж некоторые повелись.
> "Нормальный" это тот который соответствует определенной норме. А вообще хорошо накинул
> тонко так, аж некоторые повелись.Сомнительная похвала. Я не искал себе потехи за счёт кого-то, а совершенно серьёзно имел в виду, что "нормальный язык программирования" это "квадратура круга" (ЯП - язык, выводимый из естественного и направленный на частный круг проблем)
Я конечно извиняюсь но у вас в голове какая то каша. Формальный язык имеет отношение к естественному точно также как числа. Есть теория формальных языков, один из разделов информатики, советую почитать.
> Я конечно извиняюсь но у вас в голове какая то каша. Формальный
> язык имеет отношение к естественному точно также как числа. Есть теория
> формальных языков, один из разделов информатики, советую почитать.И я тоже извиняюсь, нездорово не видеть ничего за пределами "своей" предметной области.
Человек начал про нормальный язык (программирования), который, как я ответил, невозможен в силу причин, которых теория формальных языков вообще не рассматривает.
>> "Нормальный" это тот который соответствует определенной норме. А вообще хорошо накинул
>> тонко так, аж некоторые повелись.
> Сомнительная похвала. Я не искал себе потехи за счёт кого-то, а совершенно
> серьёзно имел в виду, что "нормальный язык программирования" это "квадратура круга"
> (ЯП - язык, выводимый из естественного и направленный на частный круг
> проблем)Я честно говоря не понимаю про какую нормальность вы говорите? Аборигены скушали Кука, для аборигенов это был нормально, а для европейцев сожрать другого человека ненормально.
Можете огласить список?
> Машинный язык это его модель.Таки нет, если не переопределять понятия ("модель" >> "подмножество"). И даже тогда, в общем случае — нет (asm, brainfuck, etc.).
И понятие "нормальный язык", извините за занудство, выводится из аксиомы "я — нормальный" (или аналогичной по назначению).ЯП (не считая хипстерских псевдо-DSL) обычно конструируют математики, у них для этого есть в аппарате "грамматики" и т.п. куда я глубоко не лазал. Реализуют в лучшем случае инженеры (тогда есть шанс на выход годного, т.к. одна из задач — "сделать юзабельно"), в худшем — "чистые" программисты. Иллюзию человекообразности привносят как раз инженеры, пытающиеся сопрячь абстракцию с реальностью (как они её представляют). * Что-то меня понесло, закруглюсь.
> Проблемы начались раньше, когда рeшeто под названием СИ стало основным языком для
> написания ОС и других важных прожек.Он им стал из-за ограничений железа тех лет. Хотелось писать более-менее удобно, но нужно было низкоуровнево. Им был нужен просто более-менее выразительный, относительно платформонезависимый макро-ассемблер - вот Си это оно и есть.
> Самое смешное, что нормального языка ещё не придумали.
Haskell норм. Rust неплох. Go отлично показывает себя на практике в прикладных проектах. Вроде вполне нормальные. Хотя до идеального далеко, конечно, да.
Чем не подошла H2?
Она же на Java, а тут речь вроде про JavaScript.
> Имеется даже надстройка Python-PouchD для использования PouchDB в проектах на языке PythonА какрй смысл использовать в Python JavaScript-овую версию?