LINUX.ORG.RU

libzim 8.2.0 - библиотека для работы с файлами формата ZIM

 , , , ,

libzim 8.2.0 - библиотека для работы с файлами формата ZIM

3

2

3 мая состоялся выпуск 8.2.0 библиотеки libzim для C++, предназначенной для работы с файлами в формате ZIM. Разработка библиотеки ведётся и спонсируется проектом Kiwix.

Кроме этого, проект Kiwix предоставляет набор консольных утилит zim-tools, десктопный и мобильные клиенты, и скрипты для создания файлов ZIM из HTML многих популярных сайтов.

Краткий список возможностей:
  • создание файлов ZIM c сжатием данных в формате Zstandard (много ранее поддерживалось создание файлов со сжатием в форматах ZIP, LZMA и Bzip2);
  • поиск по названиям статей;
  • опциональная поддержка Xapian для полнотекстового поиска.

Множество файлов ZIM можно скачать здесь.

Собственная реализация поддержки ZIM имеется в электронных словарях GoldenDict и GoldenDict-ng (в котором планируется переход на использование libzim).


Список изменений:

  • удалена функция SearchIterator::getSize();
  • исправления в итераторе поиска;
  • исправлен поиск статей, содержащих знаки пунктуации в заголовке;
  • корректный экспорт API в dll Windows;
  • исправлены различные предупреждения об ошибках и компиляция с xcode;
  • использование zstd 1.5.4;
  • переход репозитория на ветку main;
  • различные улучшения тестов и CI.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от Werenter

Не спалось, тиннитус замучил. Решил заняться чем-нибудь полезным.

Ради скора?

Тоже не помешает. :)

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Из этого документа абсолютно неясно, зачем понадобился новый формат архивов - чем, скажем, zip не подошёл

annulen ★★★★★
()

Не Ъ быть уже недостаточно. В статье под названием «ZIM file format» не сказано для чего он нужен.

Gentooshnik ★★★★★
()
Ответ на: комментарий от friedrich

Wiki-подобные заметки, ЕМНИП

Это про другой ZIM.
Меня тоже сбило с толку.
То ZIM, а это ZIM.
«Смотри не перепутай, Кутузов» ©
И есть подозрение что и расширение у обоих .zim. Бардак чо.

TI_Eugene ★★
()
Последнее исправление: TI_Eugene (всего исправлений: 2)
Ответ на: комментарий от dataman

Какой-то феерический велосипед, особенно с учетом того что вики-разметка на маркдаун транслируется более менее 1 к 1.

Gary ★★★★★
()
Ответ на: комментарий от Gary

вики-разметка на маркдаун транслируется более менее 1 к 1

А зачем транслировать?

В ZIM хранится HTML, в основном. Потому что библиотека «заточена» под проекты Wikimedia. Например, полный дамп wikipedia_ru занимает ~31G, без изображений ~16G.

С помощью zim-tools из них можно удалить индексы Xapian, хотя их размер не так велик, как основное содержимое.

dataman ★★★★★
() автор топика

Тоже сначала подумал, что речь идет про Zim, который заметочник, чтение вики поначалу тоже запутало, когда увидел по диагонали что-то про «articles».

Жаль, на плюсах, но вообще может пригодиться мне, если не задумываться об этом. Спасибо за новость!

GFORGX ★★★
()
Ответ на: комментарий от dataman

А зачем транслировать?

А зачем придумывать новый нескучный формат (со всеми вытекающими проблемами) ради одного сайта? Эти архивы превратятся в тыкву через N лет, потому что автору станет лень поддерживать эту libzim.

Gary ★★★★★
()
Ответ на: комментарий от Gary

автору станет лень поддерживать эту libzim

Не станет, пока существует Википедия и её фонд.

dataman ★★★★★
() автор топика
Ответ на: комментарий от annulen

Zim это формат архива (не путать архиваторы с компрессорами), заточенный под особенности web контента. С url вместо путей файлов, например. Сжатие данных тоже поддерживается. Но они додумались группировать прохожий контент в кластеры, и таким образом получать лучшую компрессию, по сравнению с другими формами, где сжимается поток рандомно раскиданных данных.

Lucky ★★
()
Ответ на: комментарий от static_lab

Хоть бы написали для приличия, для чего, собственно, нужен ZIM.

Cкарификация выполняется с помощью скарификатора. Не благодари.

BydymTydym
()

libzim для C++, предназначенной для работы с файлами в формате ZIM

Ясно-понятно. Видимо, как-то связано с Invader ZIM.

Logopeft ★★
()

Интересно было бы на его основе сделать бекэнд для docsets (Zeal/Dash/DevDocs.io). А то они у меня отнимают неприличные для всего лишь доков 4.2GB.

snizovtsev ★★★★★
()
Последнее исправление: snizovtsev (всего исправлений: 1)
Ответ на: комментарий от snizovtsev

Я когда-то автору Zeal предлагал использовать сабж, когда он пилил полнотекстовый поиск. Но он не проникся идеей. :)

dataman ★★★★★
() автор топика

Первый раз слышу об этом проекте. Крутая штука … похоже на нужное!

Desmond_Hume ★★★★★
()
Ответ на: комментарий от GFORGX

Помню, для Андроида есть какой-то словарь, так там вся Википедия хранится в базе SQLite.

А так, любую key-value db можно приспособить.

Мне sophia нравится, тоже со встроенным сжатием.

dataman ★★★★★
() автор топика
Ответ на: комментарий от static_lab

По дороге едет ЗИМ, Я им буду задавим :)

gns ★★★★★
()

Я не очень понял что это. Это такой универсальный контейнер для всовывания туда всего бинарно сжатого для универсального применения? Или только для гипертекста и электронных книг.

tommy ★★★★★
()
Ответ на: комментарий от tommy

всовывания туда всего бинарно

Нет.

Или только для гипертекста и электронных книг

Да.

электронных книг

Я тёте установил Андроидный Kiwix, скачал Викитеку и теперь она читает всего Пушкина. :)

dataman ★★★★★
() автор топика
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от tommy

Я не очень понял что это

Это для сайтов. Локально сайты хранить очень удобно в таком формате, они мало места занимают. А если хочешь открыть этот сайт локально, то можно его в kiwix desktop посмотреть или сервер через тот же kiwix desktop поднять и этот локальный сайт в браузере открыть.

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Если поднять сервер. Я тестировал на хроме, файрфоксе, Mosaic, dillo, links. Вроде открывает. Но на Mosaic, dillo, links не работает начальный выбор сайта, поэтому чтобы там его открыть придется поизгалятся. И поиск в Mosaic, links по сайту не работает.

UPD: Потестил локальную лорвики. В Mosaic и links не открывается, тогда как в dillo работает и даже дает искать.

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 2)

Что за файлы такие ZIM?

Я так понимаю это конвертируемые из HTML файлы со сжатием zstandard, для которых что-то встроили чтобы искать заголовки H1, H2, H3 и т. д. и как-то прикрутили поиск расширенный по ним?)

Xant1k ★★
()

Из текста новости совершенно непонятно что это за формат такой и соответственно не понятно нафига оно мне нужно.

Редакторы, дополните новость, а то это ж просто ниочём, читать невозможно.

Magnum
()
Последнее исправление: Magnum (всего исправлений: 1)
Ответ на: комментарий от vbcnthfkmnth123

А зачем ZIM для копий сайта? Есть же web.archive, archivebox, webarc, кстати автор должен был с интересным докладом выступать но случилась пандемия T_T

Xant1k ★★
()
Ответ на: комментарий от Magnum

+1

ещё и картинка не соответствует описанию!

Xant1k ★★
()
Ответ на: комментарий от vbcnthfkmnth123

Перестань уже фигней страдать.
Напиши парсер HTML или используй webarchive, webarc, archivebox для сохранения страниц.

Xant1k ★★
()
Ответ на: комментарий от dataman

Да можно, наверное, воспользоваться и сабжем, просто поплевавшись на смешение кода C/плюсов :)

Мне для своего заметочника может пригодиться, для скрейпинга веб-страниц целиком.

GFORGX ★★★
()
Ответ на: комментарий от dataman

JSON я писал свой (но не покажу, стыдно пока что :)).

А вообще есть же JSONPath, у нас вот в Zabbix активно использовалось.

Но не, я не понял, при чем тут JSON :) Если я правильно понял, то формат, с которым работает эта либа - позволяет сохранять в один файл веб-страницу/сайт, или я ошибаюсь? :)

GFORGX ★★★
()
Ответ на: комментарий от GFORGX

Но не, я не понял, при чем тут JSON

Ну мы же плавно затронули key-value DB. :)

позволяет сохранять в один файл веб-страницу/сайт

Да. И инфу Xapian, если скомпилировать с её поддержкой.

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Понял :-)

так там вся Википедия хранится в базе SQLite.

Я вот это пропустил, читая :)

Как key-value я у себя думаю использовать lmdb, которая из OpenLDAP.

GFORGX ★★★
()
Последнее исправление: GFORGX (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.