This is a living list of tools for program debloating and software specialization.

  • DepClean Automatically removes unused dependencies from Java projects

  • jlink Tool to assemble and optimize a set of Java modules and their dependencies into a custom runtime image.

  • docker-slim Minify and Secure Your Docker Containers.

  • R8 Google substitute of Proguard.

  • Proguard Shrinker, optimizer and obfuscator of Java Bytecode.

  • JShrink Java shrinker and obfuscator.

  • JShrink Javascript Minifier built in PHP.

  • RAZOR A Framework for Post-deployment Software Debloating.

  • JavaSlicer an open-source dynamic slicing tool developed at Saarland University.

  • bpftrace High-level tracing language for Linux eBPF.

  • STrace A diagnostic, debugging and instructional userspace utility for Linux.

  • DTrace A comprehensive dynamic tracing framework

  • JDCallgraph Dynamic call graph generation for Java.

  • constant-pool-scanner Simple utility to scan Java bytecode for class references in the constant pool.

  • java-callgraph Programs for producing static and dynamic (runtime) call graphs for Java programs.

  • jvm-callgraph Call graph generator for JVM bytecode.

  • jvm-tools Small set of tools for JVM troublshooting, monitoring and profiling.

  • bytecode-examples Java Bytecode Engineering Examples & Tutorials.

  • maven-lifecycle-logger Logger to record maven lifecycle events and timing.

  • dex-method-counts Command-line tool to count per-package methods in Android .dex files.