Movatterモバイル変換


[0]ホーム

URL:


NuLib Home Page

Shortcuts
go to thedownloads area
read the NuLib2 manual
see theNufxLib library API documentation
report a bug in NufxLib or NuLib2
checkthe library for old programs and misc docs

 

This is the home page for NuLib, NuLib2, NufxLib, and various items relatedto ShrinkIt and NuFX archives.

 

What is NuLib?

NuLib is a disk and file archive program, similar in principle to PKZIP.  Instead of ZIParchives, it manipulates NuFX archives, which are usually identified with".SHK", ".SDK", or ".BXY".

The ".SHK" file extension is derived from ShrinkIt, the de factoarchiving standard for Apple II computers.  Both NuFX and ShrinkIt were developed by Andy Nicholas,and were initially released in January of 1989.

In mid-1989, while a sophomore in college, I started playing aroundwith the file format.  My goal was to write a simple program that couldlist the contents of a NuFX file.  I had recently finished my first classon C programming, and wanted a small project to play around with.  I neverintended to go any further with it than just being able to list files.

Three name changes (NuView to NuARC to CShrink to NuLib) and more than threeyears later, NuLib was a full-featured archiver, and the code had finally settled down to where it could be leftalone.  Except for a major overhaul by Devin Reade in late 1996, NuLibhasn't changed much since.

What is NuLib2?

NuLib was functional, but had a number of flaws.  It couldn't handleresource forks, it was clumsy to use with BXY (ShrinkIt wrapped in Binary II)archives, it used more memory than it needed to, and some features -- notablythe archive integrity test -- were entirely broken.  Due to generally poorarchitecture, it was difficult to fix problems and add features.

NuLib2 is a replacement for NuLib.  It does pretty much everything theoriginal NuLib did, and adds a number of new features.  NuLib2 isdistributed as source code, under the terms of the BSD License.

TheNuLib2 manual has a quick comparison ofthe two programs.

One additional "feature" of NuLib2: it was built on top of NufxLib.

What is NufxLib?

NufxLib is a NuFX file archive manipulation library.  Unlike most othercompression library products, NufxLib goes beyond extracting and listing files. Full support for additions, deletions, and renaming of archived files issupported, with a transaction-oriented interface for maximum efficiency andreliability.

A thorough description of the library's features and interface is availablehere. NufxLib is distributed as source code under the terms of the BSD License.

Possible uses for NufxLib:

Why did I do this?

In late 1997, I cranked up my Apple IIgs for the first time in a longwhile.  It failed to boot.  The old 100MB hard drive had seized upfrom "stiction".  A friend of mine and I managed to resurrectthat drive and a second 80MB hard drive that had also seized up, but it wasclear the drives' days were numbered.

I replaced the old ones with a new 2GB drive, which was the smallest I couldfind in retail stores at the time.  It occurred to me then that it would beuseful, as well as prudent, to have a complete file archive of the contents ofmy hard drive.  GS/ShrinkIt was capable of constructing such a thing, butcouldn't extract from it because the archive was too large.  YankIt and NuLib could do the extraction, butwere too clumsy to be useful.

I resolved to write a program that could handle these archives.  Ithought it would be best to write it as a Win32 GUI application.  However,I also wanted a better version of NuLib for UNIX.  The NuLib sources are apile of dung, so adding the features I wanted would be most easily accomplishedby rewriting the whole thing from scratch.

Around the middle of 1998, I started fleshing out the API for something Icalled "NufxLib".  The library would do all the hard work forboth command line and GUI applications, and perhaps would be embedded into AppleII emulators as well, allowing seamless access to ShrinkIt-compressed diskimages.

For the next 1.5 years, I would occasionally pick up the project and thenleave it alone for weeks at a time.  This continued until I left a bigcompany for a small startup, and knew that my free time was about to evaporateentirely.  I decided to finish up what I could and make it available. Version 1.0 was released in May of 2000.

In December of 2002, I decided it was time to learn how to write Windows software.  Learning a new system is easier when you're working with something you know, so I decided to use NufxLib as the foundation of a Win32 application.  The result, CiderPress, is available fromgithub.

Visible Changes in v1.1

New stuff in NufxLib v1.1:

New stuff in NuLib2 v1.1:

Visible Changes in v2.0

Version 2.0 is actually a rather small release.  Some changes in NufxLib brokebinary compatibility, so it was necessary to increment the major version.

New stuff in NufxLib v2.0:

New stuff in NuLib2 v2.0:

Visible Changes in v3.0

Version 3.0 was primarily a code refresh, updating the code for about 8 years of progress in compilers and operating systems.  The Windows and Mac OS X builds were fixed, and proper handling of Mac OS Roman filenames was added to Linux and Mac OS X.  The version was bumped because of possibly incompatible API changes.

A new test, "test-names", was added to check Unicode filename handling.

Future Directions

The code appears to be stable, so I'm going to leave it alone for a while. If you're interested in developing applications with NufxLib, send a message tofadden -at- fadden.com.


NuLib, NuLib2, and NufxLib were written byAndyMcFadden.  Please see the documentation for each product tosee a list of contributors.


[8]ページ先頭

©2009-2025 Movatter.jp