It provides a simple API for decomposing, modifying, and recomposing binary Java classes (i.e. bytecode).
The project was originally conceived and developed by Eric Bruneton.
[1] ASM provides a simple library that exposes the internal aggregate components of a given Java class through its visitor oriented API.
The ASM library has been used in several diverse applications, such as: Since version 3.2, ASM has added support for the new invokedynamic code, which allows method invocation relying on dynamic type checking on the latest JDK 7 binaries, thus easing support for dynamically typed languages.
[2][3] This table presents only releases with significant steps in ObjectWeb ASM history, aside from versions that mainly fixed bugs and improved performance.