StuffIt Compression Technologies
Leverage our existing, well-known compression technology. Add the power of StuffIt to your application by licensing StuffIt SDK, InstallerMaker, or Wireless.
The StuffIt SDK 2009 provides developers with C interface to incorporate support for creation/encoding, expansion/decoding, as well as browsing and manipulations of archives in 24 supported formats.
The SDK performs five major functions: determining file types based on their contents; creating archives from original files (encoding, stuffing, compressing), re-creating original files from archives (decoding, unstuffing, expanding), manipulating items within existing archives (moving, renaming, deleting archive items, and adding new items), and browsing archives content.
The SDK's design is based on conflicting goals:
- provide flexible control over details of decoding, encoding, browsing and manipulating processes
- provide unified interface for all supported formats
- provide the same public C interface for multiple platforms
For more runtime control, the SDK has an option of using notifications and callbacks mechanism.
We included sample applications projects and sources for your references on how to use the SDK to perform the five major functions.
The SDK provides C interface and includes dynamic libraries only. StuffIt SDK Mac OS X 10.4 and higher and was designed to work with Xcode 2.5 and higher and the following Windows platforms: NT, 2000, XP, 2003 and Vista. The SDK was designed to work with MS Visual Studio 2005 Visual C++ 8.0.
To improve compression/expansion performance SDK has an option to create optimum number of threads per operation on machines with multiple processors and/or hyper-threading processors. Thus, SDK will create four threads for a single compression operation on a machine with four processors. On average you will see 20% to 85% time improvement compare to single thread compression depending on the machine characteristics and a number of processors.
StuffIt SDK multi-threading implementation is based on PThreads and uses QpThread library designed and implemented by Pavel Krauz Copyright (C) 1999. The thread library is free software and distributed under the Lesser GNU Public License (LGPL).