EVERYTHING XIAOMI
Get listed

ProGuard

ProGuard is a free, open-source command-line tool for shrinking Java bytecode and optimizing code.

Place
#12 of 34
Score
6.4
ProGuard's website

What ProGuard 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 renames remaining classes, fields, and methods with short, meaningless names. It also preverifies the files, producing smaller and faster applications or libraries. Guardsquare describes it as suitable for Java and Kotlin applications in mobile, embedded, and desktop environments. Build setup is documented for Android Gradle, Java or Kotlin Gradle, Ant, and Maven. Android's default shrinker, R8, accepts ProGuard configuration. Developers can experiment with and share keep rules in ProGuard Playground without rebuilding an app. The separate ProGuardCORE library is free and open source, and can read, write, analyze, and process 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 the configuration.

Good

  • Free and open source
  • Removes unused code and attributes
  • Supports Java and Kotlin projects
  • Integrates with multiple build systems
  • Compatible with ProGuard configuration for R8

Watch out

  • Reflection-called code may need explicit entry points
  • Library paths must be supplied and remain unchanged

Who it suits

ProGuard suits developers working on Java or Kotlin applications who want bytecode shrinking, optimization, and obfuscation as part of a command-line build. It supports projects using several documented build systems, including Android Gradle, Maven, and Ant.

Verdict

ProGuard offers bytecode shrinking and optimization for Java and Kotlin projects, with build integrations and a keep-rule playground. Account for library inputs and reflection configuration when planning its use.

Plans and prices

From ProGuard's own pricing page, checked 5 Oct 2026.

All about pricing
PlanPriceWhat it gives you
ProGuardFreeFree, open-source shrinker for Java/Kotlin apps

The facts

Each one read from ProGuard's own pages, with the date it was checked.

What it does

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

The company

Headquarters
Leuven, Belgiumchecked 28 Sep 2026
Maker
Guardsquare says Eric Lafortune released ProGuard in 2002 and the company was founded in 2014.checked 5 Oct 2026

Where it runs

Supported apps
Guardsquare describes ProGuard as suitable for Java and Kotlin apps on mobile, embedded, and desktop environments.checked 5 Oct 2026
The full review of ProGuard

Overview

ProGuard is a free, open-source command-line tool for processing compiled Java bytecode. It is best suited to developers who want to shrink or obfuscate Java and Kotlin applications within a build workflow.

Its combination of shrinking, optimization and build integrations is useful, but the project must account for library inputs and reflective calls in its configuration.

Key features

ProGuard can shrink, optimize, obfuscate and preverify Java class files. Shrinking removes unused classes, fields, methods and attributes; optimization improves bytecode and removes unused instructions. These steps can produce smaller, faster applications and libraries, making the tool relevant when output size or execution efficiency matters.

Obfuscation replaces the names of surviving classes, fields and methods with short, meaningless names. That makes compiled code less readable, but it does not amount to anti-tamper protection; ProGuard has no anti-tamper controls. Choose it for bytecode processing, not as a standalone defense against tampering.

Documented build setups cover Android Gradle, Java or Kotlin Gradle, Ant and Maven. Android's default shrinker, R8, accepts ProGuard configuration, a practical advantage for projects already maintaining those rules. ProGuard Playground lets developers experiment with 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 takes care. Dynamically invoked code reached through reflection may need to be declared as an entry point, or shrinking can remove code the application needs. ProGuard also requires library jars or equivalent library paths as inputs and leaves those libraries unchanged. That makes correct inputs and rule maintenance important parts of adopting it.

Pricing

ProGuard costs nothing. Its free, open-source plan covers shrinking for Java and Kotlin apps, with Java, Kotlin and Android among its supported targets. The price is compelling for individual developers and teams able to manage their own build configuration; there are no paid plan tiers in the stated offer to compare.

Platforms

ProGuard is a desktop-deployed command-line tool, with platforms listed for Android, Linux, macOS and Windows. Its build integrations suit projects using Android Gradle, Java or Kotlin Gradle, Ant or Maven. Android projects can also use ProGuard configuration with R8.

Who it's for

Choose ProGuard if you build Java or Kotlin software for mobile, embedded or desktop environments and want free bytecode shrinking, optimization and obfuscation as part of a build. It is a weaker fit if you need anti-tamper controls, or if your project cannot maintain reflection rules and provide library inputs accurately.

Pros and cons

  • Pros: Free and open source, with shrinking, optimization, obfuscation and preverification in one bytecode-processing tool.
  • Pros: Documented integrations cover four build systems, and R8 compatibility supports Android projects using ProGuard configuration.
  • Pros: The Playground supports keep-rule experiments and sharing without rebuilding the app.
  • Cons: Reflection-driven code may need explicit entry-point configuration, creating a maintenance burden.
  • Cons: Library jars or equivalent paths must be supplied, and ProGuard leaves those libraries unchanged.
  • Cons: It does not provide anti-tamper controls.

Alternatives

For a wider comparison, browse Code Obfuscation Software.

ByteHide Shield is worth considering if you want a freemium option with a free core obfuscation plan for individual developers and small projects, across platforms including iOS and web.

Tigress is another alternative with a free plan and free trial, for readers comparing paid software.

JS-Confuser is free and open source; consider it as an alternative when that is the key requirement.

yEd Graph Editor is a free alternative with personal and commercial use permitted under its stated terms.

Obfuscar offers free, open-source basic .NET assembly obfuscation, so it is the alternative to consider for .NET assemblies rather than Java bytecode.

JavaScript Obfuscator is a free alternative for JavaScript obfuscation; its free plan has a 25 MB lifetime VM quota and a 4 MB VM file-size limit.

Obfuscator.io is a freemium alternative for web and API use, with a free plan carrying a 25 MB lifetime VM quota and a 4 MB VM file-size limit.

Allatori is another freemium option for readers comparing obfuscation software.

Verdict

ProGuard is a sound choice for Java and Kotlin developers who want a free bytecode processor integrated into an established build workflow. Its strongest case is the useful combination of shrinking, optimization and obfuscation with broad build-system support. Look elsewhere if anti-tamper controls are essential, or if your project cannot reliably configure library inputs and reflective entry points.

Alternatives to ProGuard

All alternatives
  1. 1

    Enigma Protector

    WebAPILinuxSelf-hosted
    7.4
  2. 2

    JS-Confuser

    Free planOpen sourceWebAPILinuxmacOS
    7.4Free plan
  3. 3

    Jscrambler

    AndroidiOSWebAPI
    7.0
  4. 4

    Tigress

    Free planAndroidLinuxmacOSWindows
    6.8Free plan
  5. 5ByteHide Shield logo

    ByteHide Shield

    Free planAndroidiOSWebLinux
    6.7Free plan
  6. 6

    JavaScript Obfuscator

    Free planWebAPIExtensionSelf-hosted
    6.7From $19 a month