Что такое формат файла SWC?
Файл .swc - это скомпилированная библиотека компонентов ActionScript, используемая в экосистемах разработки Adobe Flash и Flex. Название расшифровывается как ShockWave Component. Во время сборки компиляторы Flex SDK mxmlc (компилятор приложений) и compc (компилятор компонентов) связывают библиотеки .swc с финальным приложением SWF, встраивая содержащиеся в них предварительно скомпилированный байт-код и ресурсы.
Структурно .swc представляет собой стандартный ZIP-архив, содержащий как минимум два элемента: catalog.xml, в котором перечислены классы ActionScript, их зависимости и метки времени изменения, и library.swf - предварительно скомпилированный SWF, содержащий экспортированные символы, байт-код и встроенные ресурсы. Переименование .swc в .zip и его распаковка позволяют просмотреть это содержимое напрямую.
Формат появился в Macromedia Flash MX в 2002 году и стал стандартной единицей распространения для повторно используемых библиотек ActionScript 3 и компонентов пользовательского интерфейса в Adobe Flex (Flash Builder) и Apache Flex.
Вся экосистема SWC в настоящее время устарела:
- Adobe Flash Player достиг завершения жизненного цикла 31 декабря 2020 года; Adobe заблокировала запуск среды с 12 января 2021 года
- Adobe Flash Builder снят с производства
- Adobe Animate (преемник Flash) ориентирован на HTML5 Canvas, а не на SWF
- Apache Flex SDK находится только в режиме поддержки (последний выпуск 4.16.1 в 2017 году)
- Эмулятор Ruffle (
ruffle.rs) воспроизводит некоторые устаревшие SWF, но имеет пробелы в поддержке ActionScript 3
Современные пакеты npm для JavaScript/TypeScript выполняют ту же роль, которую когда-то играли библиотеки .swc.
Безопасность и защита
РИСК: LOWSWC - это библиотека разработчика, используемая во время компиляции, а не конечными пользователями во время выполнения. Она не может быть запущена автономно и не содержит самоисполняемого кода вне цепочки инструментов Flash/Flex. Однако library.swf внутри теоретически может содержать вредоносный ActionScript, если SWC получен из ненадежного источника. На практике файлы SWC из неизвестных источников представляют минимальный риск, так как плагин Flash, который мог бы их исполнить, больше не существует; только разработчики, создающие приложения Flash/AIR, все еще подключают SWC.
Детали формата
в двух словах- Библиотека среды выполнения анимации Spine 2D - Spine (Esoteric Software) использует .swc для своей библиотеки среды выполнения, распространяемой для разработчиков Flash/Flex; тот же контейнер ZIP, другое содержимое.
Программы, открывающие файлы SWC
Технические подробности
глубокая спецификация| Формат контейнера | ZIP-архив (PKZIP); сигнатура (magic bytes) 50 4B 03 04 по смещению 0 |
| Обязательное содержимое | catalog.xml (манифест классов) и library.swf (скомпилированный SWF с байт-кодом и ресурсами) |
| Инструменты компиляции | compc (компилятор компонентов) и mxmlc (компилятор приложений) из Flex/Apache Flex SDK |
| Виртуальная машина ActionScript | Байт-код AVM1 (ActionScript 2) или AVM2 (ActionScript 3) внутри library.swf |
| Сжатие | DEFLATE для каждого элемента ZIP; сжатие на уровне всего пакета отсутствует |
| Типичный размер файла | 20 КБ - 5 МБ (от небольшой служебной библиотеки до крупной библиотеки компонентов) |
| Контрольная сумма | ZIP CRC-32 для каждого элемента; подпись на уровне пакета отсутствует |
| Дополнительное содержимое | Папка метаданных META-INF/, таблица стилей default.css, дополнительные папки с ресурсами |
| Метаданные каталога | Версия Flex SDK и даты изменения классов, встроенные в catalog.xml |
| Операционная система | Windows, macOS, Linux (кроссплатформенность Apache Flex/AIR SDK) |
| Метод проверки | Переименуйте .swc в .zip и извлеките любым инструментом ZIP для просмотра catalog.xml и library.swf |
| Устаревание | Завершение жизненного цикла Flash Player 31 декабря 2020 г.; Flash Builder снят с производства; Apache Flex только в режиме поддержки |
| Выпущен | 2002 (Macromedia Flash MX; SWC concept expanded in Flash 8 / Flex SDK 1.0 ~2004-2005) |
| Последняя версия | Flash/Flex SDK era ended; Apache Flex SDK 4.16.1 (2017) is the last meaningful release |
| Спецификация | help.adobe.com |
Конвертации SWC
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах SWC.