Skip to content
SPECIFICTION
Get listed

ProGuard

guardsquare.com

Free plan WindowsmacOSLinuxAndroid
Visit guardsquare.com
Spec score 7.7 #20 of 34 in Code Obfuscation Software

What it is

ProGuard is a free, open-source command-line tool for shrinking Java bytecode and optimizing code. It processes Java class files by removing unused classes, fields, methods, attributes, and instructions, then renaming remaining classes, fields, and methods with short meaningless names. It also preverifies code, producing smaller and faster applications and libraries. Guardsquare describes ProGuard as suitable for Java and Kotlin apps in mobile, embedded, and desktop environments. Build setup is documented for Android Gradle, Java or Kotlin Gradle, Ant, and Maven projects, and Android's default shrinker, R8, is compatible with ProGuard configuration. ProGuard Playground lets developers experiment with and share keep rules without rebuilding an app. ProGuardCORE is a separate free, open-source library for reading, writing, analyzing, and processing Java bytecode, including Kotlin metadata. Library jars or equivalent paths must be specified as inputs, and ProGuard leaves those libraries unchanged. Code called dynamically through reflection may need to be declared as an entry point in configuration. ProGuard runs on Android, Linux, macOS, and Windows.

Spec sheet

Purpose
ProGuard is an open-source command-line tool for shrinking Java bytecode and optimizing code.Read 5 Oct 2026 · guardsquare.com
License
The manual provides license information for GPL and a GPL exception.Read 5 Oct 2026 · guardsquare.com
Headquarters
Leuven, BelgiumRead 28 Sep 2026 · guardsquare.com
Maker
Guardsquare says Eric Lafortune released ProGuard in 2002 and the company was founded in 2014.Read 5 Oct 2026 · guardsquare.com
Build integrations
The manual documents setup for Android Gradle, Java or Kotlin Gradle, Ant, and Maven projects.Read 5 Oct 2026 · guardsquare.com
Configuration limit
Code invoked dynamically through reflection may need to be specified as entry points in ProGuard configuration.Read 5 Oct 2026 · guardsquare.com
Library inputs
ProGuard requires the input's library jars or equivalent library paths to be specified, and leaves those libraries unchanged.Read 5 Oct 2026 · guardsquare.com
Obfuscation
ProGuard renames remaining classes, fields, and methods using short meaningless names.Read 5 Oct 2026 · guardsquare.com
Optimization
The optimizer optimizes bytecode and removes unused instructions.Read 5 Oct 2026 · guardsquare.com
Playground
ProGuard Playground lets developers experiment with and share keep rules without rebuilding the app.Read 5 Oct 2026 · guardsquare.com
Processing
It shrinks, optimizes, obfuscates, and preverifies Java class files, producing smaller and faster applications and libraries.Read 5 Oct 2026 · guardsquare.com
ProGuardCORE
ProGuardCORE is a free, open-source library for reading, writing, analyzing, and processing Java bytecode, including Kotlin metadata.Read 5 Oct 2026 · guardsquare.com
R8 compatibility
The manual states that Android's default shrinker, R8, is compatible with ProGuard configuration.Read 5 Oct 2026 · guardsquare.com
Shrinking
The shrinking step detects and removes unused classes, fields, methods, and attributes.Read 5 Oct 2026 · guardsquare.com
Supported apps
Guardsquare describes ProGuard as suitable for Java and Kotlin apps on mobile, embedded, and desktop environments.Read 5 Oct 2026 · guardsquare.com

Plans and prices

ProGuard Free Free, open-source shrinker for Java/Kotlin apps Read 5 Oct 2026 · guardsquare.com

Every ProGuard plan and price →

Strong points and limits

Strong points

  • Free, open-source command-line tool.
  • Removes unused bytecode elements.
  • Compatible with Android R8 configuration.
  • Playground supports experimenting with keep rules.
  • ProGuardCORE handles Java bytecode and Kotlin metadata.

Limits

  • Reflection-based code may need explicit entry points.
  • Library jars or paths must be supplied.
  • Libraries passed as inputs remain unchanged.

Who it suits

ProGuard suits developers working with Java or Kotlin apps who need bytecode shrinking, optimization, obfuscation, or preverification. Its documented build setups cover Android Gradle, Gradle, Ant, and Maven projects.

Verdict

ProGuard offers several bytecode-processing steps and documented integration paths for common Java build systems. Configuration needs particular attention for reflective calls and library inputs.

Where Specifiction places it

Alternatives to ProGuardAll alternatives →