From cace83e27a1acafe57f32cc5eee4bb1078f20e74 Mon Sep 17 00:00:00 2001 From: Sergey Matveev <stargrave@stargrave.org> Date: Tue, 19 Oct 2021 14:54:56 +0300 Subject: [PATCH] =?utf8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=D0=B8?= =?utf8?q?=D1=8F=20WARC-=D0=B0=20=D0=B2=20tofuproxy?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 -- 2.51.0