[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NuLib2/NufxLib v1.1.0 released



I've put a new release of NuLib2/NufxLib up on the web.  For those of
you not familiar with NuLib2, it allows you to access the contents of
NuFX (Apple II ShrinkIt) archives.  These typically have names ending
in ".SHK", ".SDK", or ".BXY".  NufxLib is a library of functions
for accessing such archives, and NuLib2 is an archiver built on top
of NufxLib.

The new features in this release are:

 * Support for Binary II archives.  You can list, add, extract, and
   test BNY and BQY.  This can also come in handy for stripping BXY
   or BSE headers off.

 * Support for SQueeze and LZC compression.  These are specified in
   the NuFX standard and were supported (to some extent) by the
   original NuLib.

 * Support for gzip "deflate" and bzip2 compression within a NuFX
   archive.  Such archives can't be unpacked on an Apple II, but
   can be useful for storing disk images used with an Apple II
   emulator or file backups that will probably only be used from
   a PC or Mac.  (Applications must be linked against libz and/or
   libbz2; bzip2 is disabled by default.)

 * The "launder" program, included as a sample application with NufxLib,
   now allows you to specify the compression format as an argument.
   This allows you to convert entire archives between LZW/2 and deflate
   quickly and easily.

 * New extended help (-h flag).

The most significant result of adding the above is that NuLib2 is
now a complete replacement for the original NuLib.  Except for some
really obscure features, NuLib2 does everything the original did,
and a whole lot more besides.

NuLib2 is distributed under the terms of the GNU GPL, NufxLib under
the GNU LGPL.  Source code, documentation, and Win32 binaries are
available from http://www.nulib.com/.  You can also find links to
the NuLib2 SourceForge project if you're into CVS trees.

-----

Some quick stats on the efficacy of "deflate" on disk images:

  32 5.25" disks, chosen at semi-random:
   uncompressed       = 4480K
   compressed LZW/1   = 2875K
   compressed deflate = 2158K

  20 3.5" disks, chosen at semi-random:
   uncompressed       = 16000K
   compressed LZW/2   = 8667K
   compressed deflate = 6913K

In general, bzip2 does about as well or slightly worse.  The BWT
algorithm does best on large blocks of text, so the only disks
that really benefit from bzip2 are collections of source code or
documentation.  It uses more memory and is slower then deflate,
so it's disabled by default to discourage its use in archives
posted to the web.

Incidentally, my motivation for adding "deflate" was to allow
A2 emulator users to have the advantage of gzip compression without
having to compress the archive as a separate step.  It seems silly
for emulators to add support for ZIP archives with (perhaps
ambiguously sector-ordered) images inside when we have a perfectly
good storage format defined.

NuLib2 can be built and will work happily without deflate or bzip2
support.  The default compression format is still ShrinkIt LZW/2.

Information about the new thread formats, as well as many other
NuFX tidbits, can be found in the "NuFX addendum" document in the
Library section of the www.nulib.com site.

-- 
Send mail to fadden@fadden.com (Andy McFadden) - http://www.fadden.com/
CD-Recordable FAQ - http://www.cdrfaq.org/
Fight Internet Spam - http://spam.abuse.net/spam/ & http://spamcop.net/