Об этом проекте

Ruffle — это эмулятор Adobe Flash Player с открытым исходным кодом, реализованный на Rust. Он работает как настольное приложение и в браузере через WebAssembly и предназначен для поддержания воспроизведения устаревшего Flash-контента (SWF-файлов) после прекращения поддержки официального Flash Player. Что он предоставляет: - Поддержка ActionScript 1, 2 и 3, которую проект описывает как довольно полную, но всё ещё находящуюся в разработке. - Веб-демо, где пользователи могут загрузить локальный SWF-файл прямо в браузере. - Ночные сборки для настольных и веб-платформ. - Расширения для браузеров Firefox и Chrome, пакет Flathub, пакет npm и пакет AUR. - Настольный клиент, построенный на wgpu-rs, с дополнительными возможностями профилирования (Tracy) и отладочными метками рендеринга. - Утилита сканера для массового разбора коллекций SWF-файлов и отчёта об успешности разбора. - Утилита экспортера, которая создаёт PNG-скриншоты SWF, возможно, по нескольким кадрам, и может работать в безголовом режиме. Основные моменты архитектуры из README: - core: основной эмулятор и общий код - swf: парсер SWF и ActionScript - desktop: настольный клиент - web: веб-клиент и расширение для браузера - render: бэкенды рендеринга для настольных и веб-версий - video: бэкенды декодирования видео - flv: декодер Flash Video - wstr: реализация строк, совместимая с Flash - scanner и exporter: утилиты командной строки Сборка из исходного кода требует недавней стабильной версии инструментария Rust и Java в PATH (для встроенных классов ActionScript 3). Пользователям Linux нужны типичные пакеты разработки, такие как ALSA, udev, fontconfig, freetype и заголовки OpenSSL. Настольные сборки запускаются через cargo, и конкретный SWF можно передать в качестве аргумента. Пользователи macOS могут установить сборку HEAD через Homebrew tap проекта. Веб-сборки и расширения следуют инструкциям в каталоге web, а приложение для Android находится в отдельном репозитории ruffle-android. Лицензирование двойное: Apache-2.0 / MIT, и вклады принимаются на тех же условиях. Проект публикует кодекс поведения и приветствует вклад сообщества.