Понятно, что «прямой доступ» в общем понимании и компрессор — это оксюморон.
Что хочется: есть поток данных со структурной единицей порядка 30 кбайт. Этот поток данных формирует файл размером, скажем, 10 Тбайт, который нужно пожать и в случае необходимости быстро доступиться к 20 миллионному событию.
Как это видится: в любом случае компрессоры жмут поблочно. Хотелось бы организовать файл из набора таких блоков где в каждом блоке определённое число структурных единиц (скажем 100). Для быстрого доступа необходимо естественно иметь индексный файл со смещением для каждого из таких блоков. Есть ли готовые решения на базе стандартных алгоритмов типа gzip, bzip2, lzo, xz?