{"id":13718874,"url":"https://github.com/paritytech/parity-wasm","last_synced_at":"2025-05-07T10:34:14.196Z","repository":{"id":26417788,"uuid":"86597842","full_name":"paritytech/parity-wasm","owner":"paritytech","description":"WebAssembly serialization/deserialization in rust","archived":true,"fork":false,"pushed_at":"2022-10-01T17:07:51.000Z","size":13849,"stargazers_count":398,"open_issues_count":0,"forks_count":96,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-04-30T12:26:15.606Z","etag":null,"topics":["rust","wasm","wasm-bytecode","webassembly"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paritytech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2017-03-29T15:17:40.000Z","updated_at":"2025-04-06T08:59:10.000Z","dependencies_parsed_at":"2022-07-12T16:08:35.792Z","dependency_job_id":null,"html_url":"https://github.com/paritytech/parity-wasm","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fparity-wasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fparity-wasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fparity-wasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fparity-wasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paritytech","download_url":"https://codeload.github.com/paritytech/parity-wasm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252860072,"owners_count":21815458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rust","wasm","wasm-bytecode","webassembly"],"created_at":"2024-08-03T01:00:38.932Z","updated_at":"2025-05-07T10:34:09.182Z","avatar_url":"https://github.com/paritytech.png","language":"Rust","funding_links":[],"categories":["Languages","Libraries","Misc","Repositories"],"sub_categories":["Rust","Parsing and Generating `.wasm` Binaries"],"readme":"# parity-wasm\n\n\u003e :warning: **This repository/crate is deprecated and unmaintained**: If you interested in maintaining\nthis crate consider forking it. We can provide a link to the most promising forks here.\n\nLow-level WebAssembly format library.\n\n[![Build Status](https://travis-ci.org/paritytech/parity-wasm.svg?branch=master)](https://travis-ci.org/paritytech/parity-wasm)\n[![crates.io link](https://img.shields.io/crates/v/parity-wasm.svg)](https://crates.io/crates/parity-wasm)\n\n[Documentation](https://docs.rs/parity-wasm)\n\n## Rust WebAssembly format serializing/deserializing\n\nAdd to Cargo.toml\n\n```toml\n[dependencies]\nparity-wasm = \"0.42\"\n```\n\nand then\n\n```rust\nlet module = parity_wasm::deserialize_file(\"./res/cases/v1/hello.wasm\").unwrap();\nassert!(module.code_section().is_some());\n\nlet code_section = module.code_section().unwrap(); // Part of the module with functions code\n\nprintln!(\"Function count in wasm file: {}\", code_section.bodies().len());\n```\n\n## Wabt Test suite\n\n`parity-wasm` supports full [wasm testsuite](https://github.com/WebAssembly/testsuite), running asserts that involves deserialization.\n\nTo run testsuite:\n\n- checkout with submodules (`git submodule update --init --recursive`)\n- run `cargo test --release --workspace`\n\nDecoder can be fuzzed with `cargo-fuzz` using [`wasm-opt`](https://github.com/WebAssembly/binaryen):\n\n- make sure you have all prerequisites to build `binaryen` and `cargo-fuzz` (`cmake` and a C++11 toolchain)\n- checkout with submodules (`git submodule update --init --recursive`)\n- install `cargo fuzz` subcommand with `cargo install cargo-fuzz`\n- set rustup to use a nightly toolchain, because `cargo fuzz` uses a rust compiler plugin: `rustup override set nightly`\n- run `cargo fuzz run deserialize`\n\n## `no_std` crates\n\nThis crate has a feature, `std`, that is enabled by default. To use this crate\nin a `no_std` context, add the following to your `Cargo.toml` (still requires allocator though):\n\n```toml\n[dependencies]\nparity-wasm = { version = \"0.41\", default-features = false }\n```\n\n## License\n\n`parity-wasm` is primarily distributed under the terms of both the MIT\nlicense and the Apache License (Version 2.0), at your choice.\n\nSee LICENSE-APACHE, and LICENSE-MIT for details.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in parity-wasm by you, as defined in the Apache-2.0 license, shall be\ndual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fparity-wasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparitytech%2Fparity-wasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fparity-wasm/lists"}