Разработчик (и) | Консорциум OW2 |
---|---|
Стабильный выпуск | 9.0 / 22 сентября 2020 г. (2020-09-22) |
Написано на | Java |
Операционная система | Кросс-платформенная |
Тип | байт-код Инженерная библиотека |
Лицензия | Лицензия BSD |
Веб-сайт | http://asm.ow2.org/ |
Библиотека ASM является проектом Консорциума OW2. Он предоставляет простой API для декомпозиции, изменения и перекомпоновки двоичных классов Java (т. Е. байт-код ). Первоначально проект был задуман и разработан Эриком Брюнетоном. В настоящее время ASM ориентирован на Java и в настоящее время не имеет серверной части, которая предоставляет другие реализации байт-кода (например, байт-код .NET, байт-код Python и т. Д.).
Имя ASM ничего не означает: это просто ссылка на ключевое слово C asm, которое позволяет реализовать некоторые функции на языке ассемблера.
ASM предоставляет простой библиотека, которая предоставляет внутренние агрегированные компоненты данного класса Java через его посетитель ориентированный API. ASM также предоставляет поверх этого API посетителя древовидный API, который представляет классы как конструкции объекта. Оба API-интерфейса могут использоваться для изменения двоичного байт-кода, а также для создания нового байт-кода (путем внедрения нового кода в существующий код или путем генерации новых классов в целом). Библиотека ASM использовалась в нескольких различных приложениях, таких как :
Начиная с версии 3.2, в ASM добавлена поддержка нового кода invokedynamic
, который позволяет вызывать методы, полагаясь на динамические проверка типов в последних двоичных файлах JDK 7, что упрощает поддержку языков с динамической типизацией.
В этой таблице представлены только выпуски со значительными шагами в истории ObjectWeb ASM, кроме версий, в которых в основном исправлены ошибки и повышена производительность.
Выпуск | Дата выпуска | Основные моменты |
---|---|---|
2.0 | 17 мая 2005 г. | Поддержка языка Java 5 |
3.2 | 2009-06-11 | поддержка нового кода invokedynamic . |
4.0 | 29.10.2011 | Поддержка языка Java 7 |
5.0 | 2016-03-16 | Поддержка языка Java 8 |
6.0 | 23.09.2017 | Кодовая база перенесена на Gitlab. Поддержка языка Java 9 |
6.1 | 2011-03-11 | язык Java 10 поддержка |
7.0 | 2018-10-27 | Поддержка языка Java 11 |
7.1 | 2019-03-03 | Поддержка языка Java 13 |
8.0 | 2020-03-28 | Поддержка языка Java 14 |