classpath
[Top][All Lists]
Advanced

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

Additions to Classpath


From: Elifarley C. Coelho
Subject: Additions to Classpath
Date: Thu, 1 Mar 2001 05:39:40 -0800 (PST)

Hi there,

I have created a new file format called RAZip,
somewhat similar to GZip, but with the advantage of
allowing for a faster random access read rate than
what is possible with GZip (GZip does not specifically
allow random access reads, but I created a Java class
which does that). Currently it provides a 25782 %
speed increase in random access reads over a GZip file

RAZip can be used in unix pipes as well. The Java
class used to create, read and write RAZip-compatible
streams is integrated to the VersaStream* class, so
you can read and write RAZip streams from memory, from
local files, from remote files inside HTTP servers,
FTP servers, and so on.

I intend to add random access writes in the future,
but I'm still facing some performance related
problems. For now, you can only write at the end of
the RAZip stream.

Where RAZip should be used? Use RAZip when you need to
quickly (and transparently) access the uncompressed
contents of an archive.

Example: You can create a file, format it as ext2fs
(or even better: xfs), compress it in RAZip, and mount
it as a read-only file system under GNU-Linux.

I created a 100 MB file formatted as a "TAR file
system"* with 10 thousand files inside, compressed in
RAZip down to 21.7 MB, and mounted it inside my Java
proxy/web server*. This way, the web server serves its
clients directly from a compressed file system,
transparently.

* TAR file system: I developed a Java framework to
deal with TAR files (and ZIP files) as if they were
regular file systems. I intend to add support to other
file systems as well, like FFS (Amiga's) and xfs.

* VersaStream: A Java class created by me which
provides random read/write access to streams.
Descendents of VersaStream provide access to in-memory
streams, file streams, remote streams (using HTTP or
FTP), streams from InputStreams and OutputStreams, and
so on. The base class provides many useful methods
like seek, getPosition, setPosition, getSize, setSize,
read, readInt, readShort, readUTF, readBoolean,
readLine, write, writeBoolean, skip, peek, discard,
trimStart, trimEnd, copyFrom, copyTo, and many others.

* Java web server: my Java proxy / web server was
created using a web framework called "Jandy", based in
the Indy framework for Delphi
(http://www.nevrona.com/indy/). I created Jandy
because I couldn't find a Java web framework around.
At first I thought I would just translate Indy from
Object Pascal to Java, but as I was working on it, I
saw many points where I could improve and clean up the
functionality and some object-orientation aspects of
Indy. Take a look at ZeeProxy's source code, at
http://www.geocities.com/elifarley/zeeproxy/zeeproxy-source.html

Would you be interested in the RAZip file format, or
in the TAR (or Zip) file system, or in the VersaStream
class, or in the Jandy web framework? If not, do you
know anyone who would find any of them useful?

Best regards,

Elifarley C. Coelho
Belo Horizonte - MG
Brazil

http://www.geocities.com/elifarley/



__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.com/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]