Acknowledgements

The first versions of ProGuard grew out of RetroGuard, which its author Mark Welsh kindly made available under the GNU Lesser General Public License. RetroGuard is a very nice piece of code, but it only performed obfuscation. I started from the class file parsing code and wrote my own shrinker, optimizer, obfuscator, and preverifier. As of version 4.0, all of the original code has been rewritten, so the most obvious remaining similarity are the program names.

Dirk Schnelle has contributed and maintained the first versions of the Ant task. I have rewritten the implementation for version 3.0, but the XML schema is still based on his work.

Marcel Patzlaff has initiated a series of artifacts in the Maven Central repository. I am now maintaining them as part of the official builds.

Many other people have expressed their enthusiasm and have chimed in with interesting ideas, bug reports, and bug fixes: Thorsten Heit, Oliver Retzl, Jonathan Knudsen, Tarcisio Camara, Bob Drury, Dave Jarvis, Marc Chapman, Dave Morehouse, Richard Osbaldeston, Peter Hawkins, Mark Sherington, David Sitsky, James Manning, Ptolemy Oberin, Frank-Michael Moser, QZ Shines, Thomas Singer, Michele Puccini, Roman Bednarek, Natalia Pujol, Daniel Sjöblom, Jan Filipsky, Charles Smith, Gerrit Telkamp, Noel Grandin, Torbjörn Söderstedt, Clemens Eisserer, Clark Bassett, Eduard Welch, Dawid Weiss, Andrew Wilson, Sean Owen, Niels Gron, Ishan Mehta, Steven Adams, Xavier Kral, Stefan Martin, Toby Reyelts, Bernhard Eder, Manfred Moser, Marco Blümel, David Reiss, Roy Williams, Marcel Heckel, Balazs Banyai, and many more. Thanks! Your feedback has been invaluable.

British Sky has kindly sponsored the optimization of enum types.

SourceForge is providing the resources for hosting this project and many other projects.

Sonatype and the Maven Central repository are hosting the Maven artifacts.

The code and these web pages were written using Oracle/Sun's JDKs, Linux, IntelliJ IDEA, GNU emacs, bash, sed, awk, and a whole host of other tools that continue to make programming interesting.