Sobre o projeto

Ruffle é um emulador de código aberto para o Adobe Flash Player, implementado em Rust. Ele roda tanto como aplicativo de desktop quanto no navegador via WebAssembly, e tem como objetivo manter o conteúdo Flash legado (arquivos SWF) reproduzível após o Flash Player oficial ter sido descontinuado. O que ele oferece: - Suporte a ActionScript 1, 2 e 3, descrito pelo projeto como bastante completo, mas ainda em desenvolvimento. - Um demo web onde os usuários podem carregar um arquivo SWF local diretamente no navegador. - Builds noturnos para plataformas desktop e web. - Extensões de navegador para Firefox e Chrome, um pacote Flathub, um pacote npm e um pacote AUR. - Um cliente desktop construído sobre wgpu-rs, com recursos opcionais de perfilamento (Tracy) e rótulos de debug de renderização. - Um utilitário scanner para análise em lote de coleções de arquivos SWF e relato de sucesso de análise. - Um utilitário exportador que renderiza capturas de tela PNG de um SWF, opcionalmente em vários quadros, e pode ser executado sem interface gráfica (headless). Destaques da arquitetura do README: - core: emulador principal e código comum - swf: parser de SWF e ActionScript - desktop: cliente desktop - web: cliente web e extensão de navegador - render: backends de renderização para desktop e web - video: backends de decodificação de vídeo - flv: decodificador de Flash Video - wstr: implementação de string compatível com Flash - scanner e exporter: utilitários de linha de comando Compilar a partir do código-fonte requer uma toolchain estável recente do Rust e Java no PATH (para as classes ActionScript 3 embutidas). Usuários Linux precisam de pacotes de desenvolvimento típicos, como ALSA, udev, fontconfig, freetype e cabeçalhos OpenSSL. Builds desktop são executados via cargo, e um SWF específico pode ser passado como argumento. Usuários macOS podem instalar um build HEAD através do tap Homebrew do projeto. Builds web e de extensão seguem as instruções no diretório web, e o aplicativo Android fica em um repositório separado ruffle-android. O licenciamento é duplo Apache-2.0 / MIT, e as contribuições são aceitas sob os mesmos termos. O projeto publica um código de conduta e recebe contribuições da comunidade.