| Crates.io | swf-parser |
| lib.rs | swf-parser |
| version | 0.14.0 |
| created_at | 2017-07-31 20:48:53.933121+00 |
| updated_at | 2022-05-08 10:34:02.419773+00 |
| description | SWF parser |
| homepage | https://github.com/open-flash/swf-parser |
| repository | https://github.com/open-flash/swf-parser |
| max_upload_size | |
| id | 25892 |
| size | 218,915 |
SWF parser implemented in Rust.
Converts bytes to swf-types movies.
use swf_parser::parse_swf;
use swf_types::Movie;
fn main() {
let swf_bytes: Vec<u8> = ::std::fs::read("movie.swf").expect("Failed to read movie");
let movie: Movie = parse_swf(&swf_bytes).expect("Failed to parse SWF");
}
SWF decompression is provided by the following features, enabled by default:
deflate: enable support for CompressionMethod::Deflate, using the inflate crate.lzma: enable support for CompressionMethod::Lzma, using the lzma-rs crate.Disabling these features will cause the SWF parsing functions to fail when passed the corresponding CompressionMethod.
This repo uses Git submodules for its test samples:
# Clone with submodules
git clone --recurse-submodules git://github.com/open-flash/swf-parser.git
# Update submodules for an already-cloned repo
git submodule update --init --recursive --remote
This library is a standard Cargo project. You can test your changes with
cargo test. The commands must be run from the rs directory.
The Rust implementation supports fuzzing:
# Make sure that you have `cargo-fuzz`
cargo install cargo-fuzz
# Fuzz the `swf` parser
cargo fuzz run swf
Prefer non-master branches when sending a PR so your changes can be rebased if
needed. All the commits must be made on top of master (fast-forward merge).
CI must pass for changes to be accepted.