java
ASM is a Java bytecode manipulation framework. It can be used to
dynamically generate stub classes or other proxy classes, directly in
binary form, or to dynamically modify classes at load time, i.e., just
before they are loaded into the Java Virtual Machine.
ASM offers similar functionalities as BCEL or SERP, but is much more
smaller (25KB instead of 350KB for BCEL and 150KB for SERP) and faster
than these tools (the overhead of a load time class transformation is of
the order of 60% with ASM, 700% or more with BCEL, and 1100% or more
with SERP). Indeed ASM was designed to be used in a dynamic way* and was
therefore designed and implemented to be as small and as fast as
possible.