Key Features
The following list introduces key features of the overal TrueZIP architecture. For a list of features for individual modules please visit their respective home page, e.g. TrueZIP Driver ZIP. You can find the modules in the navigation bar.
- Easy To Use
- The client API modules TrueZIP File* and TrueZIP Path provide convenient and transparent read/write access to archive files as if they were virtual directories. For example, the classes TFile, TFileInputStream, TFileOutputStream et al can instantly access ZIP files, TAR files and their relatives or even your own application file format or encrypted application file format.
- Fast Bulk I/O
- The client API module TrueZIP File* provides convenient and powerful methods for fast bulk I/O operations like file or directory tree copying, moving, deleting, traversing etc. For example, by using the multi-threaded method TFile.cat(InputStream, OutputStream), you'll never need to use a naive read-stop-write-stop-loop again.
- File System Federation
- The TrueZIP Kernel module supports read/write access to stacked file systems. This enables you to read and write entries in nested archive files, e.g. you could write the manifest entry of a JAR file within a WAR file in the current directory simply by using a new TFileWriter("app.war/WEB-INF/lib/lib.jar/META-INF/MANIFEST.MF")
- Modular Architecture
- TrueZIP employs a three-tier architecture with an access tier, a kernel tier and a driver tier. The access tier and the driver tier consist of several modules to give you the freedom to select what suits your needs best.
- Pluggable File System Drivers
- TrueZIP can support virtually any file system type via its pluggable file system driver architecture in the driver tier. TrueZIP ships with file system drivers for the file system schemes FILE, HTTP(S), ZIP, TAR and their relatives like JAR, TGZ, TBZ2 etc. To make a file system driver available to your application, simply add the JAR artifact of the driver module to the application's run time class path.
- Robust
- The TrueZIP Kernel properly recognizes false positive archive files, so it does not get confused by an arbitrary file or directory which inadvertenly uses a detectable archive file suffix, e.g. .zip.
- Thread-Safe
- The TrueZIP Kernel applies fine grained locking, caching and accounting of resources where required so that multiple threads can safely and concurrently read and write entries within the same archive file.
- Scalable
- Given enough heap space to hold the archive file system meta data, TrueZIP can access thousands of archive files with thousands of entries in many different threads concurrently. The kernel and driver tier modules precompute the initial capacity of its hash tables in order to reduce heap fragmentation and CPU utilization caused by frequent resizing of hash tables when adding large numbers of entries.
- Reliable
- TrueZIP uses code assertions, unit tests, function tests, integration tests and static code analysis tools like FindBugs and JDepend in order to meet the project's high reliability standards. The project aims for zero bug tolerance so that you can persist your application data using TrueZIP with ease of mind. This claim goes without warranties, of course!