Если кому-то нужна минималистичная 32-битная библиотека в стиле 90-х, обеспечивающая запуск unrar.dll в отдельном треде и прозрачный доступ к файлам «как если бы они были просто на диске» — вот эта давно заброшенная мной штучка на последний момент так и не показала ни одной рассинхронизации тредов, как я её ни сношал рандомными обращениями при рандомных задержках.
Умеет копать, умеет не копать. Памяти жрёт немного, синхронизация максимально быстрая (перед каждым wait проверяет атомарки — может, надо сразу следующую часть распаковывать, не дёргая апи), но, увы, не умеет плодить несколько тредов распаковки с автоматическим выбором того, где окно распаковки ближе всего к запрошенному файлу («солидные» архивы бы сильно выиграли по скорости от такого подхода).
Есть задатки FindNext — если всё равно, в каком порядке читать, то «солидолки» быстрее всего читать через эту функцию.
АЭС я бы этой штуке пока не доверил, но для инди-игрушек вполне покатит. Хинт: Рар вроде как-то позволяет задавать порядок, в котором «солидолить» файлы (сиречь добавлять их в непрерывный архив), что можно разумно использовать для ускорения распаковки.