Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Code Obfuscation Software
  3. ProGuard

ProGuard

Leuven, Belgium

What it is

ProGuard is a free, open-source command-line tool for processing Java bytecode. It shrinks Java class files by removing unused classes, fields, methods, attributes, and instructions; optimizes the remaining bytecode; renames classes, fields, and methods with short, meaningless names; and preverifies the result. These steps are intended to produce smaller, faster applications and libraries. Guardsquare describes it 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, accepts ProGuard configuration. Developers can also experiment with and share keep rules in ProGuard Playground without rebuilding an app. The separate ProGuardCORE library is free and open source, and handles reading, writing, analyzing, and processing Java bytecode, including Kotlin metadata. ProGuard runs on Android, Linux, macOS, and Windows. Its listed plan is free.

For and against

For

  • Free, open-source command-line tool.
  • Removes unused classes, fields, methods, and instructions.
  • Documented setup for Gradle, Ant, and Maven.
  • Playground supports keep-rule experiments without rebuilding.

Against

  • Reflection-based calls may need configuration entry points.
  • Requires library jars or equivalent paths as inputs.
  • Input libraries are left unchanged.

The verdict

ProGuard combines shrinking, optimization, obfuscation, and preverification in a free tool for Java bytecode. Developers should account for library inputs and dynamically invoked code when configuring it.

Who it suits

ProGuard suits developers building Java or Kotlin applications who need bytecode shrinking, optimization, obfuscation, or preverification. It may fit teams using the documented Gradle, Ant, or Maven setups.

Plans and prices

ProGuard

Free

Free, open-source shrinker for Java/Kotlin apps

Every plan, in full

On the record

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

The review

Overview

ProGuard is a free command-line processor for compiled Java code, best suited to developers who want to slim and obfuscate Java or Kotlin builds across mobile, embedded, or desktop projects. Its broad build-system support is useful, but its results depend on correctly identifying library inputs and code reached through reflection.

Key features

ProGuard combines shrinking, optimization, obfuscation, and preverification when processing Java class files. Shrinking removes unused classes, fields, methods, and attributes; optimization refines bytecode and strips unused instructions. The practical appeal is a smaller output and potentially faster application or library, without paying for the tool.

Obfuscation renames surviving classes, fields, and methods with short, meaningless names. That makes compiled code less readable, but ProGuard has no anti-tamper controls, so it is not a full application-protection solution for teams that need those controls.

Build instructions cover Android Gradle, Java or Kotlin Gradle, Ant, and Maven. Android's default shrinker, R8, accepts ProGuard configuration, which helps when a project already maintains keep rules for an Android build. The ProGuard Playground gives developers a way to test and share keep rules without rebuilding the application. ProGuardCORE is a separate free, open-source library for reading, writing, analyzing, and processing Java bytecode, including Kotlin metadata.

Configuration deserves attention. Calls made through reflection may need to be declared as entry points so shrinking does not remove code that is invoked dynamically. ProGuard also requires library jars or equivalent library paths as inputs, while leaving those libraries unchanged. Projects with complex reflective behavior or poorly documented dependencies should budget time to maintain and verify their rules.

Pricing

ProGuard costs free. The free plan is the open-source Java and Kotlin shrinker, making it a straightforward fit for individual developers and teams that can manage configuration themselves. There are no paid tiers to trade configuration capabilities against, though the GPL license and its GPL exception are relevant to teams assessing how the tool fits their software and distribution terms.

Platforms

ProGuard supports Android, Linux, macOS, and Windows, with desktop deployment and command-line build integration. Its documented project setups span Android Gradle, Java or Kotlin Gradle, Ant, and Maven. The supported application targets include Java, Kotlin, and Android.

Who it's for

Choose ProGuard when you need a no-cost bytecode-processing step for Java or Kotlin software and can explicitly manage library paths and dynamically invoked entry points. It is a less suitable choice when you need built-in anti-tamper controls or want protection without maintaining configuration rules.

Pros and cons

  • Pros: Free and open-source, with shrinking, optimization, obfuscation, and preverification in one tool.
  • Pros: Supports several build systems, and its configuration is compatible with Android's default R8 shrinker.
  • Pros: Playground supports keep-rule experimentation and sharing without rebuilding an app.
  • Cons: Reflectively invoked code may need explicit entry-point configuration to avoid being removed.
  • Cons: Library jars or equivalent paths must be supplied, and ProGuard leaves those libraries unchanged.
  • Cons: It does not include anti-tamper controls.

Alternatives

R8 is another free option for readers comparing shrinkers; ProGuard's configuration compatibility with Android's default R8 may also matter when existing rules are part of the decision.

Tigress is worth comparing if a paid tool with a free plan and free trial is acceptable. ByteHide Shield offers a free core-obfuscation plan and paid plans for readers seeking a freemium alternative.

Allatori has a freemium model and a single-developer license support update priced at $75 a year. DashO may suit teams seeking a trial-based option with paid plans; its Team plan specifies eight seats, five applications, and one development team.

DexGuard and DexProtector are paid alternatives for Android-focused readers; DexProtector also supports iOS and offers a free trial. iXGuard is a paid option for iOS.

Verdict

ProGuard is a strong fit for developers who want a free, open-source way to shrink, optimize, and obfuscate Java or Kotlin bytecode, especially when their build already uses one of its documented integrations. Its main trade-off is configuration responsibility: reflective calls and library inputs need careful handling, and teams needing anti-tamper controls should look elsewhere.

Browse code obfuscation software to compare more options.

Alternatives to ProGuard

Every alternative, ranked