ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to modify existing classes or to dynamically generate classes, directly in binary form. ASM provides some common bytecode transformations and analysis algorithms from which custom complex transformations and code analysis tools can be built. ASM offers similar functionality as other Java bytecode frameworks, but is focused on performance. Because it was designed and implemented to be as small and as fast as possible, it is well suited for use in dynamic systems (but can of course be used in a static way too, e.g. in compilers).

ASM is used in many projects, including:


ASM can be downloaded from the OW2 Maven repository (which provides releases and snapshots), or from the Maven Central repository (releases only). The source code is hosted on Gitlab.

Recent news

26 March 2018: release of ASM 6.1.1