unarc-rs 0.3.0

Library for handling & extracting ARC, ZOO, SQZ and HYP archives.
Documentation

unarc-rs

A library for rust which supports reading of ARC, ARJ, ZOO, SQ/SQ2/QQQ, SQZ and HYP files. This library was written for my bbs project as part of the file analyzation. This library contains outdated and/or incomplete compression algorithm implementations.

(In case I overlook the issues/PRs here contact me on https://github.com/mkrueger/icy_board or per mail)

arc

Supported compression methods:

  • Unpacked
  • Packed
  • Squeezed
  • Crunched
  • Squashed

Not supported: Crushed & Distilled

ARC was #1 in the BBS scene before "the patent thing" and ZIP overtook.

Currently it's enough for me - I tried to find a LZW implementation that works but they need some tweaks to work with ARC. Unfortunately the ARC implementations I found were GPL/LGPL and I want a MIT/Apache library so I can't just port these over.

ARJ

Supported compression methods:

  • STORE
  • Method 1-3
  • Method 4 (fastest)

Notes: That should cover all compressiom methods

This library was written for my bbs project as part of the file analyzation. ARJ was popular in the BBS scene in the 90' before RAR showed up.

All advanced ARJ features are not supported like multiple archives, password protection etc. The scope is limited to what I need. Feel free to add features you need. (In case I overlook the issues/PRs here contact me on https://github.com/mkrueger/icy_board or per mail)

Zoo

Compression method 0, 1 & 2 are supported - should cover all methods.

SQZ - Squeeze It

Only method 0 (Store) supported It's hard do find infos for that but I suppose they use Squeeze compression as ARC does in method 1

SQ/SQ2

I wrongly assumed that SQZ == SQ - after implementing squeeze for arc I recognized my error so I threw in the old SQ format even if it's 1 file only. I added support for the SQ2 format as well. These both don't have a real extension it's either Q as 2nd char or .SQ/.SQ2/.QQQ

HYP - Hyper

Only method 0 (Store) supported It's hard do find infos for that - does anyone know which compression Hyper uses?

LICENSE

MIT or Apache-2.0 but I don't really care :)