프로젝트 소개

Ruffle은 Rust로 구현된 Adobe Flash Player용 오픈소스 에뮬레이터입니다. 데스크톱 애플리케이션과 WebAssembly를 통한 브라우저에서 모두 실행되며, 공식 Flash Player가 중단된 후에도 레거시 Flash 콘텐츠(SWF 파일)를 재생할 수 있도록 하는 것이 목적입니다. 제공 기능: - ActionScript 1, 2, 3 지원. 프로젝트에 따르면 상당히 완성도가 높지만 아직 개발 중입니다. - 사용자가 브라우저에서 직접 로컬 SWF 파일을 로드할 수 있는 웹 데모. - 데스크톱 및 웹 플랫폼용 나이틀리 빌드. - Firefox 및 Chrome용 브라우저 확장 프로그램, Flathub 패키지, npm 패키지, AUR 패키지. - wgpu-rs 기반 데스크톱 클라이언트, 선택적 프로파일링 기능(Tracy) 및 렌더 디버그 라벨 포함. - SWF 파일 컬렉션을 일괄 파싱하고 파싱 성공 여부를 보고하는 스캐너 유틸리티. - SWF의 PNG 스크린샷을 렌더링하는 내보내기 유틸리티. 선택적으로 여러 프레임에 걸쳐 렌더링할 수 있으며 헤드리스로 실행할 수 있습니다. README의 아키텍처 하이라이트: - core: 핵심 에뮬레이터 및 공통 코드 - swf: SWF 및 ActionScript 파서 - desktop: 데스크톱 클라이언트 - web: 웹 클라이언트 및 브라우저 확장 프로그램 - render: 데스크톱 및 웹용 렌더링 백엔드 - video: 비디오 디코딩 백엔드 - flv: Flash Video 디코더 - wstr: Flash 호환 문자열 구현 - scanner 및 exporter: 명령줄 유틸리티 소스에서 빌드하려면 최신 안정 Rust 툴체인과 PATH에 Java(내장 ActionScript 3 클래스용)가 필요합니다. Linux 사용자는 ALSA, udev, fontconfig, freetype, OpenSSL 헤더와 같은 일반적인 개발 패키지가 필요합니다. 데스크톱 빌드는 cargo로 실행되며 특정 SWF를 인수로 전달할 수 있습니다. macOS 사용자는 프로젝트의 Homebrew 탭을 통해 HEAD 빌드를 설치할 수 있습니다. 웹 및 확장 프로그램 빌드는 web 디렉토리의 지침을 따르며, Android 앱은 별도의 ruffle-android 저장소에 있습니다. 라이선스는 Apache-2.0 / MIT 이중 라이선스이며, 기여는 동일한 조건으로 허용됩니다. 프로젝트는 행동 강령을 게시하고 커뮤니티 기여를 환영합니다.