proguard-core VS Byte Buddy

Compare proguard-core vs Byte Buddy and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
proguard-core Byte Buddy
9 5
269 6,012
1.9% -
9.1 9.0
4 days ago 6 days ago
Java Java
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

proguard-core

Posts with mentions or reviews of proguard-core. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-23.
  • Any news on the Classfile API?
    5 projects | /r/java | 23 Dec 2022
    Anyways, have you looked at Proguard core?
  • Resources for generating and execution JVM bytecode
    2 projects | /r/ProgrammingLanguages | 20 Aug 2022
    For generating Java bytecode/class files you could take a look at ProGuardCORE . It's a bytecode manipulation and analysis library that grew out of ProGuard.
  • JEP draft: Classfile API
    5 projects | /r/java | 17 Jun 2022
    The MethodBuilder "low-level" example looks like the ProGuardCORE API for building classes & code sequences, which can be written as:
  • Show HN: I spent my vacation writing a modern JVM assembler
    12 projects | news.ycombinator.com | 2 Jun 2022
    Something else that could make your code generation for your JVM language easier: ProGuardCORE (https://github.com/Guardsquare/proguard-core). It can be used to read, generate and analyse Java bytecode.

    Some examples for code generation: ProGuard where the project originated (https://github.com/Guardsquare/proguard), Brainf*ck compiler (https://github.com/mrjameshamilton/bf), Lox compiler (https://github.com/mrjameshamilton/klox)

    Disclaimer: I work at Guardsquare on ProGuardCORE so may be biased ;)

  • Looking for resources on building a compiler
    3 projects | /r/Compilers | 22 Feb 2022
    I implemented Lox in Kotlin based on the book's Java interpreter then added a JVM backend using ProGuardCORE: https://github.com/mrjameshamilton/klox
  • Building a simple Log4Shell detector with ProGuardCORE
    1 project | /r/Compilers | 3 Feb 2022
    You can find out more about ProGuardCORE on GitHub and the manual contains some further examples.
  • Is there any books or guides on how to target JVM bytecode?
    2 projects | /r/Compilers | 30 Jan 2022
    Not a book or guide but a useful library for working with/generating JVM class files is ProGuardCORE. It's the underlying library used by ProGuard and I also recently used it to add a JVM backend to my implementation of Lox from the Crafting Interpreters book.
  • Concise language to write an interpreter for?
    3 projects | /r/ProgrammingLanguages | 28 Jan 2022
    After completing the first part of the book (using Kotlin instead of Java), I added a JVM backend using ProGuardCORE (https://github.com/Guardsquare/proguard-core).
  • AppSweep, mobile application scanning for developers
    3 projects | /r/androiddev | 3 Aug 2021
    The biggest difference is our initial goal of creating a tool for application developers rather than a security team. This means we aim to exclude information that the application developer definitely knows and doesn't want to see again, e.g. the list of permissions an application is requesting. Furthermore we try to focus on nice and intuitive UX that is familiar to this audience, enabling an application developer to be very efficient in reading & interpreting the results (e.g. easy comparison of two builds). Also note that this is built on the same core technology as ProGuard. This foundation of compiler components (e.g. our partial evaluator) and the knowledge and experience at Guardsquare that comes with it will unlock many more in-depth code checks.

Byte Buddy

Posts with mentions or reviews of Byte Buddy. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-21.
  • Monkey-patching in Java
    2 projects | dev.to | 21 Sep 2023
    As seen above, the API exposes the user to low-level bytecode manipulation via byte arrays. It would be unwieldy to do it directly. Hence, real-life projects rely on bytecode manipulation libraries. ASM has been the traditional library for this, but it seems that Byte Buddy has superseded it. Note that Byte Buddy uses ASM but provides a higher-level abstraction.
  • Any news on the Classfile API?
    5 projects | /r/java | 23 Dec 2022
    Just a drive-by comment: ByteBuddy is worth a look https://bytebuddy.net/. It is built on top of ASM.
  • Proposed: A new CMake scripting language usable alongside existing one
    9 projects | news.ycombinator.com | 6 Dec 2022
    > can you show an example of how you'd parse, say, a .java.in

    The canonical way to do such a thing is through the java annotation processing api [1] and using a tool like java poet [2]. Before you did that, you'd probably decide if you wanted to instead use bytecode generation with a library like bytebuddy [3]

    But, assuming for some reason, you wanted to torture yourself and actually consume a java.in file and apply a regex, then you'd probably pull out the "maven-replacer-plugin" [4] and configure that for the task at hand. (or use your favorite templating language plugin. There's a million of them).

    Though, to be fair, this really isn't something that comes up in regular java programming due to the nature of the ecosystem. Anything you'd want to codegen likely already has a library and anything you didn't would receive (legitimate) push back.

    [1] https://www.baeldung.com/java-annotation-processing-builder

    [2] https://github.com/square/javapoet

    [3] https://bytebuddy.net/

    [4] https://github.com/beiliubei/maven-replacer-plugin

  • is rust the only language to have procedural macros?
    2 projects | /r/rust | 19 Feb 2022
    Have a look at byte buddy.
  • Byte Buddy on Android made possible
    5 projects | /r/android_devs | 28 Mar 2021
    If you've ever used libraries like https://github.com/JakeWharton/hugo or https://hibernate.org/ (if you've ever done some backend development) and wondered how do they seem to add some code/logic into your app just by adding some annotation to some method, or if you ever wondered how mocking frameworks like Mockito can change a class behavior for example, then most likely you're interested in a programming technique that allows to modify existing code, usually known as Aspect oriented programming (also known in Java as Bytecode instrumentation) which, even though it might sound intimidating at first, some really cool tools such as Byte Buddy or AspectJ make it quite easy to accomplish.

What are some alternatives?

When comparing proguard-core and Byte Buddy you can also consider the following projects:

proguard - ProGuard, Java optimizer and obfuscator

Javassist - Java bytecode engineering toolkit

JaCoCo - :microscope: Java Code Coverage Library

Byteman - Byteman Project main repo

emv-qrcode - Java Based EMV QR Code Generator and Parser (MPM, CPM)

easydeviceinfo - :iphone: [Android Library] Get device information in a super easy way.

appsweep-gradle - This Gradle plugin can be used to continuously integrate app scanning using AppSweep into your Android app build process

timber - A logger with a small, extensible API which provides utility on top of Android's normal Log class.

bytecode-viewer - A Java 8+ Jar & Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger & More)

joda-time-android - Joda-Time library with Android specialization

Maker - Lightweight, full-featured, low-level dynamic Java class generator designed for ease of use.

StatusBarUtil - A util for setting status bar style on Android App.