paritytech/parity-wasm

Name: parity-wasm

Owner: Parity Technologies

Description: WebAssembly serialization/deserialization in rust

Created: 2017-03-29 15:17:40.0

Updated: 2018-05-24 10:31:02.0

Pushed: 2018-05-24 10:40:23.0

Homepage:

Size: 13513

Language: WebAssembly

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

parity-wasm

Low-level WebAssembly format library.

Build Status crates.io link

Documentation

Rust WebAssembly format serializing/deserializing

Add to Cargo.toml

endencies]
ty-wasm = "0.31"

and then

rn crate parity_wasm;

module = parity_wasm::deserialize_file("./res/cases/v1/hello.wasm").unwrap();
rt!(module.code_section().is_some());

code_section = module.code_section().unwrap(); // Part of the module with functions code

tln!("Function count in wasm file: {}", code_section.bodies().len());
Wabt Test suite

parity-wasm supports full wabt testsuite (https://github.com/WebAssembly/testsuite), running asserts that invloves deserialization.

To run testsuite:

Decoder can be fuzzed with cargo-fuzz using wasm-opt (https://github.com/WebAssembly/binaryen):

no_std crates

This crate has a feature, std, that is enabled by default. To use this crate in a no_std context, add the following to your Cargo.toml:

endencies]
ty-wasm = { version = "0.31", default-features = false }

Until allocator api is stabilized, this type of use is limited to nightly Rust.

License

parity-wasm is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), at your choice.

See LICENSE-APACHE, and LICENSE-MIT for details.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in parity-wasm by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.