awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
raphw avatar

raphw/byte-buddy

0
View on GitHub↗

Byte Buddy

Byte Buddy is a runtime code generation and bytecode manipulation library for Java. It provides a fluent API for creating and modifying Java classes during execution, enabling developers to define class structures, methods, and fields programmatically without requiring a compiler or direct bytecode assembly.

The library supports agent-based class transformation, allowing loaded classes to be modified during JVM startup or runtime through a Java agent that intercepts class loading. It offers bytecode-level method interception for fine-grained control over method behavior, annotation-based code weaving for metadata injection, and automatic stack map frame computation required by the JVM verifier. Byte Buddy also includes a class file pool abstraction for efficient caching and reuse of bytecode across multiple transformations, along with dynamic class loading integration for loading generated classes into the JVM.

Beyond its core identity as a bytecode manipulation tool, Byte Buddy enables runtime class creation, modification, and generation, as well as dynamic proxy creation and testing mock generation. It functions as an instrumentation library for weaving monitoring, tracing, or mocking logic into classes, and provides a Java agent framework for transforming loaded classes during application startup or execution. The library's capabilities extend to application code instrumentation, method override with fixed logic, and runtime bytecode transformation of already-loaded classes.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI
bytebuddy.net
↗

Features

  • Bytecode Manipulation - Directly edits Java bytecode to add, replace, or remove methods and fields in classes.
  • Bytecode Manipulation - Offers low-level bytecode editing capabilities for adding, replacing, or removing methods and fields.
  • Java Agents - Provides a Java agent API for transforming loaded classes during application startup or execution.
  • Arbitrary Structure Class Generators - Generates new Java classes during execution with arbitrary structures beyond simple proxies.
  • Code Instrumentation Utilities - Weaves monitoring, tracing, or mocking logic into classes for observability or testing.
  • Runtime Bytecode Instrumentation - Modifies bytecode of already-loaded classes during execution, including through a Java agent.
  • Bytecode Generators - Generates new Java classes from scratch at runtime by producing bytecode directly.
  • Java Agent Class Transformers - Provides a Java agent framework for transforming loaded classes during JVM startup or execution.
  • Runtime Class Constructors - Creates new Java classes from scratch during execution without needing a compiler.
  • Runtime Class Modifications - Alters behavior of loaded classes at runtime by adding, replacing, or removing methods and fields.
  • Runtime Instrumentation Agents - Transforms loaded classes during JVM startup or runtime via a Java agent for monitoring or profiling.
  • Type-Driven Bytecode Generators - Generates Java bytecode at runtime by manipulating type structures through a fluent API.
  • Runtime Bytecode Compilation - Creates or modifies Java classes at runtime without a compiler, enabling dynamic behavior.
  • Bytecode Generators - Generates and modifies Java bytecode at runtime without requiring a compiler or source code.
  • Bytecode-Level Interceptors - Offers bytecode-level method interception for fine-grained control over method behavior.
  • Instrumentation Libraries - Weaves monitoring, tracing, and mocking logic into Java classes for observability and testing.
  • Type Manipulation Fluent APIs - Provides a fluent API for creating and modifying Java classes during execution without bytecode assembly.
  • Runtime Annotation Weavers - Supports adding, removing, or modifying annotations during bytecode transformations for instrumentation.
  • Fixed Logic Method Overrides - Replaces method implementations with constant return values or custom bytecode via matchers.
  • Custom Class Loader Integrations - Loads generated or modified classes into the JVM using custom class loaders.
  • Runtime Mock Generators - Generates mock or stub classes at runtime for unit testing with controlled behavior.
  • Method Interception Proxies - Generates proxy classes at runtime that delegate method calls to custom handlers.
  • Code Generation and Bytecode - Runtime code generation for the Java virtual machine.
6,856 stars·850 forks·Java·Apache-2.0·35 views

Star history

Star history chart for raphw/byte-buddyStar history chart for raphw/byte-buddy

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Projects sharing features with Byte Buddy

These projects share indexed features with Byte Buddy. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • jboss-javassist/javassistjboss-javassist avatar

    jboss-javassist/javassist

    4,230View on GitHub↗

    Javassist is a bytecode engineering toolkit for analyzing, modifying, and generating Java bytecode and class files. It functions as a bytecode manipulation library that allows for the editing of class files through either direct bytecode access or high-level source code syntax. The project provides specialized tools for the programmatic creation of new Java classes and interfaces during runtime. It includes a dynamic proxy generator for intercepting method calls and a class loader interceptor that automatically modifies class definitions as they are loaded into the Java Virtual Machine. Addi

    Javajavajava-bytecode
    View on GitHub↗4,230
  • cglib/cglibcglib avatar

    cglib/cglib

    4,896View on GitHub↗

    cglib is a suite of tools for JVM bytecode generation, class transformation, and dynamic proxying. It provides a high-level API for creating and transforming Java bytecode at runtime to modify class behavior and a framework for intercepting method calls and field access. The project implements dynamic proxy generation to support aspect oriented programming and custom data access patterns. It also includes a serialization manager to implement serialization contracts by adding specific methods and controlling object replacement within proxy classes. The library covers bytecode manipulation and

    Java
    View on GitHub↗4,896
  • alibaba/arthasalibaba avatar

    alibaba/arthas

    37,367View on GitHub↗

    Arthas is a Java diagnostic tool and runtime debugger designed for real-time troubleshooting of applications. It functions as a remote diagnostics agent that allows users to inspect the runtime state of a Java process, including its heap objects and classloader hierarchies, without requiring a process restart. The project distinguishes itself through advanced bytecode manipulation capabilities, enabling live class hotswapping and the modification of bytecode in running processes. It supports in-memory source compilation and runtime bytecode decompilation to verify and update logic instantly w

    Javaagentalibabaarthas
    View on GitHub↗37,367
  • powermock/powermockpowermock avatar

    powermock/powermock

    4,174View on GitHub↗

    Powermock is a Java mocking framework and unit testing tool that uses bytecode manipulation to mock static methods, final classes, and private constructors. It includes a Java agent instrumentation tool and a reflection-based testing utility to bypass encapsulation and modify class behavior at runtime. The project distinguishes itself by providing the ability to intercept the instantiation of objects via the new keyword and simulate the behavior of core Java system classes and native methods. It can override final modifiers on classes and methods and bypass signature restrictions for classes

    Java
    View on GitHub↗4,174
Compare all 30 related projects→

Frequently asked questions

What does raphw/byte-buddy do?

Byte Buddy is a runtime code generation and bytecode manipulation library for Java. It provides a fluent API for creating and modifying Java classes during execution, enabling developers to define class structures, methods, and fields programmatically without requiring a compiler or direct bytecode assembly.

What are the main features of raphw/byte-buddy?

The main features of raphw/byte-buddy are: Bytecode Manipulation, Java Agents, Arbitrary Structure Class Generators, Code Instrumentation Utilities, Runtime Bytecode Instrumentation, Bytecode Generators, Java Agent Class Transformers, Runtime Class Constructors.

Which projects share features with raphw/byte-buddy?

Projects with overlapping indexed features include: jboss-javassist/javassist — Javassist is a bytecode engineering toolkit for analyzing, modifying, and generating Java bytecode and class files. It… cglib/cglib — cglib is a suite of tools for JVM bytecode generation, class transformation, and dynamic proxying. It provides a… alibaba/arthas — Arthas is a Java diagnostic tool and runtime debugger designed for real-time troubleshooting of applications. It… powermock/powermock — Powermock is a Java mocking framework and unit testing tool that uses bytecode manipulation to mock static methods,… m0bilesecurity/rms-runtime-mobile-security — This project is an Android security analysis toolkit and mobile app runtime manipulator designed for reverse… alibaba/jvm-sandbox — jvm-sandbox is a bytecode instrumentation framework and plugin container for the Java Virtual Machine. It acts as a…