Что: cace83e27a1acafe57f32cc5eee4bb1078f20e74 Когда: 2021-10-19 14:54:56+03:00 ------------------------------------------------------------------------ Темы: web ------------------------------------------------------------------------ Улучшения WARC-а в tofuproxy https://iipc.github.io/warc-specifications/specifications/warc-zstd/ Прежде сжатые WARC-и в tofuproxy поддерживались, но никакого оптимального индексирования и перемещения по ним (по сегментам gzip или frame-ам zstd) не было. Теперь во время парсинга WARC-а все эти смещения учитываются и кладутся в индекс. С gzip-ом проблем не возникало, а вот с Zstandard все Go-шные библиотеки меня не устраивают: никто не предоставляет возможности остановится после чтения frame-а (кто-то предоставлял, но не работал по факту, падал). Залез в исходный код, но узнать при этом точное смещение начало/конца кадров как-то геморройно. В итоге написал на Си утилиту: zstd идёт в stdin, декомпрессия в stdout, в 3-ий файловый дескриптор TSV таблица смещений кадров и декомпрессированных данных. Взялся писать zstd компрессор который бы делал multi-frame компрессию WARC-ов, как это описано в черновике .warc.zst "стандарта", но он упорно не хотел заполнять размер кадров корректно (это опциональное поле), чего требовал стандарт. В итоге написал другую Си утилиту для этого, в которой без проблем всё формирую. .warc.zst оказывается вовсю уже делаются не первый год в Internet Archive. Более того, они делают сжатие с встроенным словарём, который тоже у меня поддерживается. Например: https://archive.org/details/archiveteam_yahooanswers_20210422220546_c4fac540 ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%A3%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%20WARC-%D0%B0%20%D0%B2%20tofuproxy%20%28cace83e27a1acafe57f32cc5eee4bb1078f20e74%29 ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0