Centaurean's SHARC is a state of the art compressor with one aim : speed. It trades off a slight increase
in archive filesize (not too much though) for a great improvement in speed over all the existing compressors known of date.
As a rough figure, on an Intel Core i7-2600K @ 3.40 GHz, on a single core it can compress at a rate of 700 MB/s
and decompress at a rate of 1 GB/s, which is none other than the best performance you will
get from an archiver nowadays, hands down. Hardware is often a limiting factor !
So how does SHARC work ?
Well if you don't want to spend time studying the source code available at GitHub
here is a simplified summary :
The algorithm reads an input stream consisting of bytes, and if it finds repetitive entries it reduces the length of the output bytes,
by storing dictionary keys instead of the bytes read.
To be efficient the dictionaries must be calibrated for their task and their keys must be accessed using a very good dispersion hash : SHARC utilizes a specifically designed derivative
of the FNV-1a hash algorithm, hand crafted for maximum dispersion and speed.
If no repetition can be found, some parts of the file are copied as is.
SHARC is ISO C99 compatible, and can be compiled on many platforms including of course Windows, Linux, FreeBSD
or OSX. There is purposedly no assembly for portability, but no compromise has been done and
maximum code optimisation is present at every critical level.
In dual pass mode, compression ratio is better and speed is still very fast. See the -c1 option for this.
SHARC is licensed under the GPL v3 on the one hand for use in any open source project, as long as the
license is kept as is.
A commercial license is also available, if you are currently working on
a closed-source commercial project, a one time purchase gives you the privilege of using our compressor
in one of your products without having to disclose your code.
Here is an example session using SHARC (Windows 8, Intel Core i7-2600K CPU @ 3.40GHz, 8GB RAM, various ramdisks) :
E:\>sharc_win64.exe -n g:\enwik9
Compressed g:\enwik9 to g:\enwik9.sharc, 1000000000 bytes in, 610728054 bytes out, Ratio out / in = 61.1%, Time = 1.778 s, Speed = 536 MB/s
E:\>sharc_win64.exe -n e:\enwik8
Compressed e:\enwik8 to e:\enwik8.sharc, 100000000 bytes in, 61841352 bytes out, Ratio out / in = 61.8%, Time = 0.159 s, Speed = 599 MB/s
E:\>sharc_win64.exe -n -d e:\enwik8.sharc
Decompressed e:\enwik8.sharc to e:\enwik8, 61841352 bytes in, 100000000 bytes out, Time = 0.095 s, Speed = 1003 MB/s
Centaurean Sharc 0.9.8
Built for Microsoft Windows (Little endian system, 64 bits) using GCC 4.8.1, Aug 19 2013 17:41:36
|Download a SHARC binary
||Download source and build SHARC
||Buy a commercial license for SHARC
We provide binaries for the following platforms :
Windows 32/64 bits, Linux 32/64 bits and Mac OSX.
The latest version available is 0.9.10-beta.
Download binary for Windows 32 bits
Download binary for Windows 64 bits
Download binary for Linux 32 bits
Download binary for Linux 64 bits
Download binary for Mac OSX (Intel based)
Building SHARC is easy. You just need a "make" and "GCC" for your platform,
and if you don't the code is pure C99 so should be easily handled by most compilers.
First things first, you need to download the source code in .tar.gz format
or in .zip format,
and decompress it in a directory of your choice.
Now, let's discuss some platform specifics :
We can't emphasize enough how MinGW-builds
is the ideal platform for compiling SHARC on Windows !
This basically sets up a GNU environment on Windows with Make and GCC.
If cc is unknown, just use the option make CROSS-PREFIX=g to specify gcc as the compiler.
On Linux things are simple as Make and GCC are (or can simply be made) part of every
Usually Mac OSX is provided with a wrapper for clang so typing gcc and make in a console
should work. If not, the MacPorts project is recommended
as it will enable you to benefit from the latest version of GCC ported for Mac.
On FreeBSD the default make is not GNU make, it will be necessary to download gmake to build SHARC.
This is quite straithforward with the following command : pkg_add -r gmake
So how do I build SHARC then ?
Well the answer is extremely simple : just cd into the src directory, type
make (or gmake in FreeBSD) and there you go !
We will soon post the price of our commercial license and its scope, as soon as v1.0.0 is
Please contact us for more information.
One year support with 12h email reply will be included.
On Windows, to compress with SHARC just type the following command :
To decompress :
sharc.exe -d some_file.sharc
On Linux or Mac OS/X, to compress just type :
To decompress :
./sharc -d some_file.sharc
Please note the option -h or --help will list all available options.
Here are the options of version 0.9.10-beta :
-c[LEVEL], --compress[=LEVEL] Compress files using LEVEL if specified (default)
LEVEL can have the following values :
0 = Fastest compression algorithm (default)
1 = Better compression (dual pass), slightly slower
-d, --decompress Decompress files
-p[PATH], --output-path[=PATH] Set output path
-n, --no-prompt Overwrite without prompting
-i, --stdin Read from stdin
-o, --stdout Write to stdout
-v, --version Display version information
-h, --help Display this help
If you wish to report a bug, please use the following link : report a SHARC issue on GitHub.
Don't forget to specify which version / platform you are using. Thank you !