프로젝트 소개
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 이중 라이선스이며, 기여는 동일한 조건으로 허용됩니다. 프로젝트는 행동 강령을 게시하고 커뮤니티 기여를 환영합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.