WOFF utilities with Zopfli compression
C Makefile
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE
Makefile
README.md
blocksplitter.c
blocksplitter.h
cache.c
cache.h
deflate.c
deflate.h
gzip_container.c
gzip_container.h
hash.c
hash.h
katajainen.c
katajainen.h
lz77.c
lz77.h
sfnt2woff.c
squeeze.c
squeeze.h
tree.c
tree.h
util.c
util.h
woff-private.h
woff.c
woff.h
woff2sfnt.c
zlib_container.c
zlib_container.h
zopfli.h
zopfli_bin.c
zopfli_lib.c

README.md

Create WOFF files with Zopfli compression

This is a modified version of the sfnt2woff utility that uses Zopfli as a compression algorithm instead of zlib. This results in compression gains of — on average — 5-8% compared to regular WOFF files. Zopfli generates compressed output that is compatible with regular zlib compression so the resulting WOFF files can be used everywhere.

##Usage

To create a WOFF file from an OpenType files:

> sfnt2woff-zopfli [-v <maj>.<min>] [-m <metadata.xml>] [-n <iterations>] [-p <private.dat>] <otffile>

Options:

-v <maj>.<min>     set font version number (major and minor, both integers)
-m <metadata.xml>  include metadata from <metadata.xml> (not validated)
-n <iterations>    number of zopfli iterations (default = 15)
-p <private.dat>   include private data block

To decompress a WOFF file and write the OpenType file to stdout:

> woff2sfnt-zopfli [-v | -m | -p] <woff>

Options:

-v   write font version to stdout
-m   write WOFF metadata block to stdout
-p   write private data block to stdout

Compiling

To compile the utilities, run make:

> make

This will compile two utilities sfnt2woff-zopfli to convert OpenType files to WOFF and woff2sfnt-zopfli to convert WOFF files back to OpenType files. If the build was succesful you can make them available on your system by copying the resulting executables to /usr/local/bin and making them executable (chmod 755).

Licensing

The WOFF portion of the code is taken from sfnt2woff, which is licensed under the MPL/GPL/LGPL. The Zopfli implementation is licensed under the Apache License. My modifications to woff.c are also licensed under the MPL/GPL/LGPL.

Alternative

You can also use the ttf2woff tool, which also converts OpenType files to WOFF using Zopfli, but is exclusively licensed under the GPL. However it doesn't have a command line option for the number of Zopfli iterations and thus can't create files as small as sfnt2woff-zopfli.