ObjectWeb Consortium

Advanced Search - Powered by Google

  Consortium     Activities     Projects     Forge     Events 


· Users
· Team
· Contacts


ASM logo

ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to modify existing classes or dynamically generate classes, directly in binary form. Provided common transformations and analysis algorithms allow to easily assemble custom complex transformations and code analysis tools.

ASM offer similar functionality as other bytecode frameworks, but it is focused on simplicity of use and performance. Because it was designed and implemented to be as small and as fast as possible, it makes it very attractive for using in dynamic systems*.

(*) ASM can of course be used in a static way too.

"ASM: a code manipulation tool to implement adaptable systems", E. Bruneton, R. Lenglet and T. Coupaye, Adaptable and extensible component systems, November 2002, Grenoble, France. Also available in french.

"Using ASM framework to implement common bytecode transformation patterns", E. Kuleshov, AOSD.07, March 2007, Vancouver, Canada.

ASM is already used in many Java products. Please let us know if your project is using ASM. You can also add the "Powered by ASM" button below to your project page.

Powered by ASM


The best way to learn to use ASM is to write a Java source file that is equivalent to what you want to generate and then use the ASMifier mode of the Bytecode Outline plugin for Eclipse (or the ASMifier tool) to see the equivalent ASM code. If you want to implement a class transformer, write two Java source files (before and after transformation) and use the compare view of the plugin in ASMifier mode to compare the equivalent ASM code.

The following document provides an in-depth introduction to ASM 4.0, going from the basic features to advanced topics such as bytecode analysis.

ASM 4.0 A Java bytecode engineering library.

Tutorial for ASM 2.0.

Tutorial for ASM 1.5.x.

Tutorial for using J2SE 5.0 Annotations with ASM 1.5.x.

Frequently Asked Questions.

External articles

ASM 2.0 Classworking.

Annotations with ASM 2.0.

Generics with ASM 2.0.


ASM 6.0 API (noframes).

ASM 5.0 API (noframes).

ASM 4.0 API (noframes).

Recent News

11 March 2018: release of ASM 6.1

Copyright © 1999-2009, OW2 Consortium | contact | webmaster | Last modified at 2018-03-11 10:51 AM