Представлен (https://pouchdb.com/2016/12/12/pouchdb-6.1.0.html) релиз документ-ориентированной БД PouchDB 6.1 (https://pouchdb.com/), представляющей собой расширенный вариант СУБД Apache CouchDB, написанный на языке JavaScript и работающий внутри браузера. Модель хранения повторяет CouchDB и обеспечивает средства разрешения конфликтов. PouchDB совместим с CouchDB на уровне API для хранения и выборки данных. Код распространяется (https://github.com/pouchdb/pouchdb) под лицензией Apache 2.0. Размер сжатого архива с PouchDB занимает всего 45 Кб.
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.Новый выпуск примечателен оптимизацией производительности, расширением диагностических сообщений и реализацией режима запросов "latest: true", при котором сервер всегда выдаёт самую свежую версию документа, независимо от запрошенной ревизии. В новой версии также приведена в порядок и полностью протестирована реализация метода fetch(), предназначенного для использования PouchDB в обработчиках на базе Service Worker, в которых недоступен API XMLHttpRequest.
URL: https://pouchdb.com/2016/12/12/pouchdb-6.1.0.html
Новость: http://www.opennet.me/opennews/art.shtml?num=45710
А ТЫ ещё не написал свою СУБД?
Koнткecнее cкaзaть/спросить/etc (js), в частном смысле - когда bunutils переведут на JS.. ?
Kаг-то таг (c)P.S.:
Доколе ?
интересно, что с безопасностью подобной синхронизации
> интересно, что с безопасностью подобной синхронизацииЧто конкретно вас беспокоит?
авторизация клиента на удаленной БД. и защита от подмены данных в локальной БД.
Зачем авторизация? Разве информация не должна быть свободной, как завещал мужик на твоей аватарке?
А завещание это он лично отдал твоей прабабке и с тех пор его текст передается в твоей семье из поколенья в поколенье. А написанное в ПСС это враньё кровавых жидобольшевиков. Угадал?
Его прабабка не болела сифилисом, так что наверное это другая (или другой).
Ну на данный момент couchdb рекомендуют создавать отдельно на каждого юзера БД.
что собственно не сложно. Но можно данные хранить и в одной БД, но там потребуеться изменять код авторизации и доступа к данным. Полистайте рассылку couchdb в ней это было.
Нафиг-нафиг, накапливать данные чтоб их прочитал любой гугл трекер
На самом деле годная штука. Чтобы сайтецы с поддержкой оффлайн режима клепать
Тогда гляньте еще TingoDB, это MongoDB на чистом JavaScript.
> Тогда гляньте еще TingoDB, это MongoDB на чистом JavaScript.Оно для nodejs а не для браузера.
Опять Javascript но почему люди не учаться на ошибках , вспомнити как тормозит атоп и еще npm leftpad и еще null underfined .
Вы, судя по всему, тоже не учитесь
А Атом работает прекрасно, проблемы в пакетном менеджере не вижу, если уж так сильно боитесь за пакеты, храните их в .tgz на своём сервере или же в самом репозитории, в null и undefined тоже нет никаких проблем
Атом работает пока не начинает тормозить , я только это хотел обратить внимание . Не ужели не очевидно что надо писать на нормальных языках таких как С или С++ а не на Javascript . Почему люди не понимают это ? Почему ты отрицаешь очевидное ?
Если абсолютно все будут писать на С и С++, то программы будут не только тормозить, но и будут насквозь дырявыми
Такие заявления обычно делают те, кто сам не написал ничего сложнее hello world.
Поясняю. Суть как раз в том, что плохих программистов много. И они напишут много дырявого кода.
Если вы можете писать не дырявый код, вы - молодец. Но таких меньшинство
> Суть как раз в том, что вэб-макак много.//fixed
Плохие программисты пишут плохой код на любом языке.
> Не ужели не очевидно что надо писать на нормальных языках таких как С или С++ а не на Javascript .Ну не знаю. Я вот недолюбливаю js, хотя вот давеча пришлось и на нём написать немного кода.
А вот что касается "нормальности" языков, то тут всякий раз сталкиваешься с вопросом: а какой язык лучше подходит для текущей задачи?Вот для скриптования каких-либо процессов в системе zsh (ну ок, для кого-то bash или dash, может быть) незаменим. Для обработки текстовых данных - perl5 великолепен. Для серьёзных задач со сложной логикой - ocaml. Для задач, где требуется высокая производительность - си. Если задача быстро получить рабочий прототип, то racket/sbcl в помощь. А если надо дополнение для браузера - ну куда же тут без js?
Что, собственно, такого "нормального" конкретно в c/c++? У них есть своя ниша, свои проблемы. Серебряной пули нету, и вряд ли появится на нашем веку.
"Нормальные" - это языки, которые минимальным количеством покрывают все сколько-нибудь значимые в реальной жизни ниши. Потому что чем больше - тем больше изучать, тем дороже поддерживать и больше шансов нарваться на что-то неожиданное.Скриптование и прочий процессинг "на коленке" (в т.ч. текст), прототипы - Perl/Python.
Сложная логика, гуй - плюсы.
Скорость - си.
Огромный энтерпрайзный софт, где главное - чтобы вообще работало - джава.Всё это - перемешать в нужной пропорции - от питоновских пользовательских скриптов в либре до JNI.
В этом плане JS - ни хрена не "нормальный", так как не имеет своей архитектурной ниши. На его месте в зависимости от масштаба задачи гораздо лучше был бы питон или плюсы. Но - нет их в браузерах в сколько-нибудь приличном виде.
P.S. Всё остальное - это узкие ниши в плане количества софтин, которые на них пишутся.
Плюсы это не нормальный язык, а исторически сложилось, для гуя и сложной логики тем-более, есть языки в которых не нужно постоянно помнить что там не нужно писать, и они более нормальны для таких задач ( js к ним не относится ) просто так сложилось исторически что более менее нормальные инструменты для гуя есть либо "небесплатные" либо c|c++
> Скриптование и прочий процессинг "на коленке" (в т.ч. текст), прототипы - Perl/Python.В дополнение Perl ну очень спецефичный, просто сложилось так что он есть в т.ч. с некоторыми отшлифованными библиотеками ( как и Fortran в некоторых областях ).
Python ну очень на любителя, да ещё иногда падает там где не должен ( оригинальный подход к utf )
>> Скриптование и прочий процессинг "на коленке" (в т.ч. текст), прототипы - Perl/Python.
> В дополнение Perl ну очень спецефичный,Ну да. Perl это продукт эволюции ed -> sed -> awk + shell -> perl. Очень хороший язык который заменяет эти инструменты.
Для языка, разработанного за 10 дней буквально на коленке для внедрения в браузеры середины девяностых, JS вполне хорош. Автор предусмотрел вещи, которых не было в ТЗ, но которые обеспечили долговременное выживание языка - прототипы и замыкания. Не случись этого, сейчас бы писали браузерные скрипты на вижуал-бейсике.Нынешнее пропихивание JS везде, куда можно и нельзя, и его бурное и не всегда логичное развитие, с одной стороны, выглядит сомнительно, с другой стороны, вполне закономерно как следствие его популярности (повторение истории PHP).
>А Атом работает прекрасноМне иногда кажется, что комментирование в интернете - это такая игра, где нужно написать что-то, противоречащее действительности. Не, в это могут поверить те, кто этим Атомом не пробовал пользоваться, но вряд ли тебя поддержит хоть один человек, способный мыслить самостоятельно.
Я на Атоме сижу, наверное уже полтора года, для JS подходит в самый раз, из плагинов стоит бьютификатор, еслинт, минимап и подсказки по мелочи, сам он открывается где-то за секунду, да, есть проблемы с большими файлами, ну как проблемы, подсветка дольше инициализируется, а так всё в порядке
так это ты пишешь всякую хрень на javascript'е, вместо того чтобы писать на с++?
Пробовал как то, думаю здесь дело не сколько в технологии сколько в прямых руках, VS code от компании зла работает намного адекватнее, в том числе и по ресурсам хотя вроде бы написано на тех же технологиях. Тормозов нет, залипаний не замечено было.
> Я на Атоме сижу, наверное уже полтора года, для JS подходит вIMHO, brackets лучше.
CouchDB написан на Erlang... Это можно использовать лишь как "клиент" для репликации информации в локальное хранилище и быстрой работы с ним.
> PouchDB позволяет создавать web-приложения, способные полноценно функционировать в offline-режимеВнимание. Количество потребляемой вашем броузером памяти скоро утроится!
>> PouchDB позволяет создавать web-приложения, способные полноценно функционировать в offline-режиме
> Внимание. Количество потребляемой вашем броузером памяти скоро утроится!Главное браузер полностью в tmpfs направить, что-бы на память базы не оставались.