GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ruffle-rs/rust-flash-lso: A fast and safe parser for Adobe Flash Local Shared Object files (.sol), AMF0 and AMF3 in rust

BranchesTags
Open more actions menu

Latest commit

 

History

318 Commits
318 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
flash-lso
flash-lso
 
 
fuzz
fuzz
 
 
lso-to-json
lso-to-json
 
 
web
web
 
 
.gitignore
.gitignore
 
 
Cargo.toml
Cargo.toml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
regenerate-json.sh
regenerate-json.sh
 
 
rust-toolchain.toml
rust-toolchain.toml
 
 

Repository files navigation

flash-lso

GitHub license GitHub issues

A parser/encoder for Adobe Local Shared Object (LSO) file format (.sol), AMF0 and AFM3 in 100% safe rust.

Features:

  • Parsing and encoding fully supported
  • Heavily tested and fuzzed
  • Circular references fully supported
  • Support for externalizable types (flash.utils.IExternalizable)
  • Support for Adobe flex types

Example

use std::fs::File;
use std::io::Read;
use flash_lso::read::Reader;
fn main() {
    let mut x = File::open(path).expect("Couldn't open file");
    let mut data = Vec::new();
    let _ = x.read_to_end(&mut data).expect("Unable to read file");
    let d = Reader::default().parse_full(&data).expect("Failed to parse lso file");
    println!("{:#?}", d);
}

Fuzzing

This project makes use of cargo-fuzz to ensure correct handling of invalid data

cargo +nightly fuzz run --release fuzz_amf3_body

Running tests

cargo test --release

Web

Requires:

  • wasm-pack
  • something to host the resulting page: srv / miniserve

Building

cd web/
wasm-pack build --out-name web --out-dir ./static --target web --release
miniserve ./static --index index.html

LLM policy

Please ensure all contributions to this project are conducted with respect to our LLM policy

License

This project is licensed under MIT.

Icons used in the web editor (web/static/icon) are sourced from https://feathericons.com under MIT

Some test cases are covered under their own License, see README.md for details

About

A fast and safe parser for Adobe Flash Local Shared Object files (.sol), AMF0 and AMF3 in rust

Resources

Readme
MIT license
Activity
Custom properties

Stars

21 stars

Watchers

12 watching

Forks

21 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.