Skip to content

typetools/asm

Repository files navigation

ASM

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).

Building the Project

To build the project, you need to have Java 11+ installed on your system. You can build the project by running the following command:

./gradle/gradlew clean build

After the build is complete, you can find the compiled JAR files in the corresponding build/libs directory of each submodule.

To run only the project tests, you can use the following command:

./gradle/gradlew test

How to Contribute

To contribute to the ASM project fork this repository on GitLab, make changes, then send us a merge request. We will review your changes and apply them to the master branch. To avoid frustration, before sending us your merge request, please run a full Gradle build to ensure that your changes do not violate our quality standards:

./gradle/gradlew clean build

All submodules are checked with googleJavaFormat, Checkstyle and PMD.

Reporting Issues

If you encounter any issues with the ASM project, please create a new issue on the GitLab issue tracker.

License

ASM is licensed under the BSD 3-Clause License.