Skip to content

masterwebx/AS3-Weaver-Github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AS3 Weaver

A desktop application for decompiling, editing, and recompiling ActionScript 3 SWF files — all in one window. image

MIT License Version Platform

Features

  • Drag-and-drop — open any AS3 SWF (or .ssf archive) by dragging it onto the window
  • Multi-class decompiler — decompiles every class in the SWF's DoABC tags with syntax highlighting
  • Built-in code editor — edit any decompiled class inline with Ctrl+F search
  • One-click recompile — compiles your edits with Apache Flex and re-patches the SWF bytecode
  • Save as SWF or SSF — export the patched binary, or save back over the original .ssf
  • VS Code theme browser — search and install VS Code color themes from the marketplace
  • 3 built-in themes — Monokai Dark Soda, Catppuccin Mocha, Dracula
  • Fully portable — single folder, no installer, runs from anywhere

Quick Start (Portable)

Windows

  1. Download AS3Weaver-portable.zip from the Releases page
  2. Extract to any folder
  3. Run AS3Weaver.exe
  4. Drag a .swf or .ssf file onto the window

No Java, Python, or Flex SDK installation required — everything is bundled.

Linux / macOS

Pre-built portable bundles are not yet available for Linux and macOS. You can build from source on those platforms — see Building from Source below.

Building from Source

Prerequisites

Tool Version Notes
Rust 1.77+ rustup recommended
Node.js 18+ For Tauri CLI
Python 3.8+ Standard library only
Apache Flex SDK 4.16.1 Set FLEX_HOME or place at C:\aflex_sdk (Win) / /opt/airsdk_compiler (Linux/macOS)
OpenJDK JDK 21 For jlink and the Flex compiler

Build Steps

# Install Tauri CLI
cd app
npm install

# Development mode (hot-reload)
npm run dev

# Production build
cd src-tauri
cargo build --release

Portable Bundle

Windows (PowerShell):

# Full build + bundle + ZIP (from app/)
.\build_portable.ps1

# Skip Rust compile, just re-bundle
.\build_portable.ps1 -SkipCargo

Output: portable/windows/AS3Weaver/ folder and portable/windows/AS3Weaver-portable.zip

Linux (bash):

# Full build + bundle + tar.gz (from app/)
./build_portable_linux.sh

# Skip Rust compile, just re-bundle
./build_portable_linux.sh --skip-cargo

Output: portable/linux/AS3Weaver/ folder and portable/linux/AS3Weaver-portable.tar.gz

macOS (bash):

# Full build + bundle + tar.gz (from app/)
./build_portable_macos.sh

# Skip Rust compile, just re-bundle
./build_portable_macos.sh --skip-cargo

Output: portable/macos/AS3Weaver/ folder and portable/macos/AS3Weaver-portable.tar.gz

Project Structure

AS3 Weaver/
├── app/                          # Tauri desktop application
│   ├── dist/                     #   Frontend (HTML/CSS/JS)
│   │   └── app.js                #   Main application logic
│   ├── src-tauri/                #   Rust backend
│   │   ├── src/lib.rs            #     Tauri commands
│   │   ├── Cargo.toml            #     Rust dependencies
│   │   └── tauri.conf.json       #     Tauri config
│   ├── tests/                    #   Frontend smoke tests (37 tests)
│   ├── build_portable.ps1        #   Build script
│   └── package.json
├── as3_decompiler/               # Python AS3 decompiler engine
│   ├── abc_parser.py             #   ABC bytecode parser
│   ├── method_decompiler.py      #   Bytecode → AS3 source
│   ├── class_decompiler.py       #   Class-level decompilation
│   ├── abc_patcher.py            #   Bytecode patching
│   ├── swf_reader.py             #   SWF binary reader
│   └── swf_patcher.py            #   SWF binary patching
├── tests/                        # Python backend tests (505 tests)
│   └── golden_output/            #   Golden decompiled outputs
├── docs/                         # Architecture & format docs
├── portable/                     # Built portable distributions
│   ├── windows/                  #   Windows x64 build
│   │   ├── AS3Weaver/            #     Ready-to-run folder
│   │   └── AS3Weaver-portable.zip
│   ├── linux/                    #   Linux x86_64 build
│   │   ├── AS3Weaver/            #     Ready-to-run folder
│   │   └── AS3Weaver-portable.tar.gz
│   └── macos/                    #   macOS arm64/x86_64 build
│       ├── AS3Weaver/            #     Ready-to-run folder
│       └── AS3Weaver-portable.tar.gz
├── LICENSE                       # MIT License
└── requirements.txt              # Python deps (stdlib only)

Testing

# Frontend tests (37 tests, zero dependencies)
cd app
npm test

# Backend tests (505 tests)
python -m pytest tests/ -q

Tech Stack

Component Technology License
Desktop framework Tauri v2 (Rust) MIT/Apache 2.0
Frontend Vanilla JS, CSS
Python bridge PyO3 0.23 MIT/Apache 2.0
AS3 compiler Apache Flex SDK 4.16.1 Apache 2.0
Java runtime OpenJDK 21 JRE GPLv2+CE
Python runtime CPython 3.13 (embedded) PSF License
Theme marketplace VS Code Marketplace API

All bundled components are open-source.

License

MIT

About

Decompile, edit, and compile SWF files with Actionscript 3.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors