Victor Kasenda resource archive source code (c) 1998-2001 Victor Kasenda / gruv. Similar to a BZIP2 Tarball.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

6.0 KiB


resource readme
version 2.6 full source code
08 May 2001

Copyright (C) 1998-2001 Victor Kasenda / gruv
icq me at: 6505245

" compression ratios approaching that of PPM, speeds closer to LZ77 compressors"

only for delphi 5.0
later versions of delphi may work, earlier versions may need minor code modifications.

reSource features
- Burrows Wheeler Transformation (BWT) compression technology with efficient implementation
- addition
- extraction
- deletion
- modification of file attributes. The filename or attribute can be changed.
- compression statistics viewer
- compression ratios are close to PPM and speeds close to LZ77 (zip,arj) archivers.

Implementation features
- Kunihiko Sadakane's Suffix Sort
- Peter Fenwick's Structured Arithmetic Encoder Model
- Standard 1989 CACM Arithmetic Encoder (Patent Free)
- CRC 32 file extraction integrity check
- dual layer file read/write buffering - bit buffer (8 bits) and byte buffer (64kbytes)
- efficient block memory manager that shares and reuses blocks between classes
- full object oriented design
- pure pascal/delphi 4.0

the ideas came from:
- mark nelson: 1989 CACM arithmetic encoder 'c' source
- dj wheeler : 1989 report on the block sorting algorithm for DES
- peter fenwick: structured arithmetic encoder/model from his final report on the block sorting algorithm
- kunihiko sadakane: suffix sort algorithm
- julian seward: bzip, BWT implementation

this is my contribution to the delphi community.
don't you just hate it when you see 'pay $10 for full source'?


the source code to the program is free for non-commercial and educational use. It can be incorporated
freely into programs that are 'freeware' or public domain'.
please do at least drop me a note at, mention where you got the code from in the credits and acknowledge the people as listed at the end of the document.

in no way is any of the code to be used in a shareware, commercial software, or commercial environments
without the permission or consent from the author, and also the people where the ideas came from.
Please note that this is not entirely my work, and is actually also based on the work, ideas of several people as mentioned at the end of this document.


regarding patents and licenses, i will not be held responsible if any of this code violates patent or legal legislations in your country.

this code is provided as is. i will not be held responsible for any damage done to your computer, or your brain.

to the best of my knowledge, resource does not violate any patent legislations. the arithmetic encoder is a standard CACM 1989 implementation and the rest of the algorithms are fairly new.

...for the impatient...

read install.txt to get familier with the files, how to install, compile and run resource.

this was intended to be an industrial strength archiver, comparable
to zip and other more established formats, but i got tired.... and there
are always buts...
it was released in 1998 as a school project, complete with system docs and user manual.
maybe if inspiration strikes again i'll dig everything out of the grave and rejuvenate the project.

...differences between bzip and resource...

resource bzip

Graphical interface implemented -
encoder type 1989 CACM arithmetic huffman
sort method sadakane's suffix sort

speed differences in speed due to different encoding and sort methods. bzip may be faster because huffman encoding is much faster than arithmetic encoding

so i hope all this code, which i have written for more than a year, will
come in handy to someone, be it the sorting routine, arithmetic coding
routine, or even the file list that can display shell icons!

everything here was coded entirely in pascal/delphi by me, and
ideas/references came from many people, all of them i have
referred to in the respective files and also at the end of this document.

it was lotsa sweat and pain, and this is in the end released to the
public, free for non-commercial use.

i would like to thank (and also shout out a big hello! to):

Mark Nelson, who with his wonderful book,

Michael Burrows and David J. Wheeler for the block sorting algorithm.

Peter Fenwick's for his tuned structured arithmetic encoder

Kunihiko Sadakane's Suffix sort, which rocks, and imho is the best
general purpose sorter for the block sorting algorithm.

Angus Johnson, Anders Melander & Graham Wideman for their wonderful, totally incredible drag and drop package. I had managed to incorporate the older version of their package into resource and it turned instantly totally drag and drop to and from explorer.. simply amazing.

Julian Seward, author of BZip. BZip really inspired me to write on, although i didn't really understand much of the 'c' implementation of the BWT algorithm... ;-)

the author(s) of the delphi superpage and delphi deli, without which i may not even have been able to have finished.

and of course Inprise for creating Delphi, which is totally radical!
(and Inprise: when are we gonna have inline functions? it will surely speed up delphi apps alot!)

... a bit about the author ...

the author, Victor Kasenda (born 1980), lives on a small island of Singapore (check your atlas).
He treks neighbouring mountains, and enjoys a mountain biking.
programming is his life, his source of energy and motivation. he loves delphi, hates basic, and befriends java more than c, shys away from assembly because it's too much of a fuss. totally normal, partially insane, a little disturbed and totally lost his marbles when he released this source code.... hmmm....

...end of document, now go to sleep...