ruffle-rs/ruffle

GitHub: ruffle-rs/ruffle

Ruffle 是一款用 Rust 编写的 Adobe Flash Player 模拟器,通过 WebAssembly 和桌面端应用让已废弃的 Flash 内容在现代环境中重新运行。

Stars: 18193 | Forks: 1037

Ruffle

Rust Build Status Web Build Status Ruffle Flathub Ruffle npm Ruffle AUR Ruffle Discord Ruffle translations
website | demo | nightly builds | wiki

# Ruffle Ruffle 是一款使用 Rust 编程语言编写的 Adobe Flash Player 模拟器。Ruffle 利用 WebAssembly 同时支持桌面端和 Web 端。 ## 目录 * [项目状态](#project-status) * [使用 Ruffle](#using-ruffle) * [从源码构建](#building-from-source) * [前置条件](#prerequisites) * [Linux 前置条件](#linux-prerequisites) * [桌面端](#desktop) * [构建](#build) * [macOS](#macos) * [Web 或扩展程序](#web-or-extension) * [Android](#android) * [Scanner](#scanner) * [Exporter](#exporter) * [结构](#structure) * [赞助商](#sponsors) * [许可证](#license) * [贡献](#contributing) ## 项目状态 Ruffle 对 ActionScript 1、2 和 3 的支持已经相当不错,但无论如何都尚未完全完成。请在[问题追踪器](https://github.com/ruffle-rs/ruffle/issues)中报告任何问题。 ## 使用 Ruffle 试用 Ruffle 最简单的方法是访问[Web 演示页面](https://ruffle.rs/demo/),然后点击“选择文件”按钮来加载您选择的 SWF 文件。 Ruffle 的[每日构建版本](https://ruffle.rs/downloads#nightly-releases)提供了桌面端和 Web 平台的下载。 有关更详细的说明,请参阅我们的[Wiki 页面](https://github.com/ruffle-rs/ruffle/wiki/Using-Ruffle)。 ## 从源码构建 ### 前置条件 * 最新稳定版的 [Rust](https://www.rust-lang.org/tools/install) * Java,并在您的 PATH 中可用作 `java`(用于构建包含 ActionScript 3 内置 Flash 类的库时需要) ### Linux 前置条件 以下是 Linux 的典型依赖项: * Ubuntu/Debian: sudo apt install pkg-config libasound2-dev libudev-dev libfontconfig-dev libssl-dev default-jre-headless g++ * Fedora/RHEL: sudo dnf install pkgconf-pkg-config alsa-lib-devel systemd-devel fontconfig-devel openssl-devel java-latest-openjdk-headless gcc-c++ ### 桌面端 #### 构建 使用以下命令来构建并运行桌面端应用: `cargo run --release --package=ruffle_desktop` 要运行特定的 SWF 文件,请将 SWF 路径作为参数传入: `cargo run --release --package=ruffle_desktop -- test.swf` 要在 debug 模式下构建,只需在命令中省略 `--release` 即可。 #### macOS Ruffle 桌面端可以通过我们的 [Homebrew Tap](https://github.com/ruffle-rs/homebrew-ruffle/) 进行构建: `brew install --HEAD ruffle-rs/ruffle/ruffle` _注意:由于它仅提供 HEAD 版本,每次需要更新时您都必须运行 `brew upgrade --fetch-HEAD ruffle`。_ ### Web 或扩展程序 请按照 [web 目录中的说明](web/README.md#building-from-source) 构建 Ruffle 的 Web 版本或浏览器扩展版本。 本项目使用 BrowserStack 进行测试。 ### Android 请按照 `ruffle-android` 项目中的[说明](https://github.com/ruffle-rs/ruffle-android/blob/main/CONTRIBUTING.md#building-from-source) 构建 Ruffle 的 Android 应用程序。 ### Scanner 如果您有一批“真实世界”的 SWF 文件可用于测试,可以使用 scanner 来基准测试 ruffle 的解析能力。只需提供一个文件夹和输出文件名,它就会尝试读取 所有的 Flash 文件,并报告此任务的成功情况。 `cargo run --release --package=ruffle_scanner -- scan folder/with/swfs/ results.csv` ### Exporter 如果您有一个 SWF 文件并希望从中捕获图像,您可以使用 exporter 工具。 目前这需要硬件加速,但可以在无界面(没有窗口)的情况下运行。 - `cargo run --release --package=exporter -- path/to/file.swf` - `cargo run --release --package=exporter -- path/to/file.swf path/to/screenshots --frames 5` ## 结构 - `core` - 核心模拟器和通用代码 - `swf` - SWF 和 ActionScript 解析器 - `desktop` - 桌面客户端(使用 `wgpu-rs`) - `web` - Web 客户端和浏览器扩展(使用 `wasm-bindgen`) - `render` - 用于桌面端和 Web 的各种渲染后端 - `video` - 视频解码后端 - `flv` - Flash Video 解码器 - `wstr` - 兼容 Flash 的字符串实现 - `scanner` - 用于批量解析 SWF 文件的实用工具 - `exporter` - 用于生成 SWF 文件 PNG 截图的实用工具 ## 许可证 Ruffle 根据以下任一许可证进行授权 - Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) - MIT License (http://opensource.org/licenses/MIT) 由您自行选择。 Ruffle 依赖于兼容许可证下的第三方库。完整信息请参阅 [LICENSE.md](LICENSE.md)。 ### 贡献 Ruffle 欢迎所有人的贡献。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取入门帮助。 除非您明确声明,否则由您有意提交以包含在本作品中的任何贡献, 都将按上述方式进行双重许可,无需任何附加条款或条件。 整个 Ruffle 社区,包括聊天室和 GitHub 项目,都应遵守 Rust 项目本身所遵循的[行为准则](https://www.rust-lang.org/policies/code-of-conduct)。
标签:AI工具, Flash播放器, Rust, WebAssembly, 信息收集, 内核驱动漏洞利用, 可视化界面, 桌面应用, 网络流量审计, 通知系统