{"id":13638404,"url":"https://github.com/bytecodealliance/wizer","last_synced_at":"2026-03-05T09:06:26.228Z","repository":{"id":38306496,"uuid":"314024477","full_name":"bytecodealliance/wizer","owner":"bytecodealliance","description":"The WebAssembly Pre-Initializer","archived":false,"fork":false,"pushed_at":"2026-02-24T19:13:54.000Z","size":7460,"stargazers_count":1072,"open_issues_count":20,"forks_count":65,"subscribers_count":11,"default_branch":"main","last_synced_at":"2026-02-24T23:44:02.512Z","etag":null,"topics":[],"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/bytecodealliance.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-11-18T18:36:11.000Z","updated_at":"2026-02-14T03:06:14.000Z","dependencies_parsed_at":"2023-02-08T16:01:46.374Z","dependency_job_id":"c886b8bf-8513-41db-ae26-792fd0fd9379","html_url":"https://github.com/bytecodealliance/wizer","commit_stats":{"total_commits":128,"total_committers":16,"mean_commits":8.0,"dds":0.4140625,"last_synced_commit":"25bc65bd3f2265be6b6060c8c67994f8eb5757b8"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/bytecodealliance/wizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bytecodealliance","download_url":"https://codeload.github.com/bytecodealliance/wizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwizer/sbom","scorecard":{"id":260287,"data":{"date":"2025-08-11","repo":{"name":"github.com/bytecodealliance/wizer","commit":"090082ba18e6c9fa33cc001dc53fa7cc27f54d53"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: topLevel permissions set to 'write-all': .github/workflows/release.yml:11"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":1,"reason":"1 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":9,"reason":"Found 22/24 approved changesets -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":5,"reason":"binaries present in source code","details":["Warn: binary detected: benches/regex_bench.control.wasm:1","Warn: binary detected: benches/regex_bench.wizer.wasm:1","Warn: binary detected: benches/uap_bench.control.wasm:1","Warn: binary detected: benches/uap_bench.wizer.wasm:1","Warn: binary detected: tests/regex_test.wasm:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: RustCargoFuzzer integration found: fuzz/fuzz_targets/same_result.rs:18"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v9.0.0 not signed: https://api.github.com/repos/bytecodealliance/wizer/releases/222902376","Warn: release artifact dev not signed: https://api.github.com/repos/bytecodealliance/wizer/releases/222901767","Warn: release artifact v8.0.0 not signed: https://api.github.com/repos/bytecodealliance/wizer/releases/203075679","Warn: release artifact v7.0.5 not signed: https://api.github.com/repos/bytecodealliance/wizer/releases/173741239","Warn: release artifact v7.0.4 not signed: https://api.github.com/repos/bytecodealliance/wizer/releases/171173870","Warn: release artifact v9.0.0 does not have provenance: https://api.github.com/repos/bytecodealliance/wizer/releases/222902376","Warn: release artifact dev does not have provenance: https://api.github.com/repos/bytecodealliance/wizer/releases/222901767","Warn: release artifact v8.0.0 does not have provenance: https://api.github.com/repos/bytecodealliance/wizer/releases/203075679","Warn: release artifact v7.0.5 does not have provenance: https://api.github.com/repos/bytecodealliance/wizer/releases/173741239","Warn: release artifact v7.0.4 does not have provenance: https://api.github.com/repos/bytecodealliance/wizer/releases/171173870"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:91: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:99: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/bytecodealliance/wizer/release.yml/main?enable=pin","Warn: containerImage not pinned by hash: .github/actions/github-release/Dockerfile:1: pin your Docker image by updating node:slim to node:slim@sha256:9e08f846e8f0a55d7e15726dc2f58b479ec9523b3a54a0d34d3b16def4f78b97","Warn: containerImage not pinned by hash: ci/docker/aarch64-linux/Dockerfile:1: pin your Docker image by updating ubuntu:16.04 to ubuntu:16.04@sha256:1f1a2d56de1d604801a9671f301190704c25d604a416f59e03c04f5c6ffee0d6","Warn: containerImage not pinned by hash: ci/docker/s390x-linux/Dockerfile:1: pin your Docker image by updating ubuntu:16.04 to ubuntu:16.04@sha256:1f1a2d56de1d604801a9671f301190704c25d604a416f59e03c04f5c6ffee0d6","Warn: containerImage not pinned by hash: ci/docker/x86_64-linux/Dockerfile:1: pin your Docker image by updating almalinux:8 to almalinux:8@sha256:2d4abdee2caecd851d2d6591dfb2205ba18549bc080ad5377875c990331e41c4","Warn: npmCommand not pinned by hash: .github/actions/github-release/Dockerfile:6","Warn: npmCommand not pinned by hash: .github/workflows/release.yml:119","Warn: npmCommand not pinned by hash: .github/workflows/release.yml:131","Info:   0 out of  13 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 containerImage dependencies pinned","Info:   0 out of   3 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"16 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: RUSTSEC-2021-0139","Warn: Project is vulnerable to: RUSTSEC-2021-0145 / GHSA-g98v-hv3f-hcfr","Warn: Project is vulnerable to: RUSTSEC-2024-0375","Warn: Project is vulnerable to: RUSTSEC-2024-0421 / GHSA-h97m-ww89-6jmq","Warn: Project is vulnerable to: RUSTSEC-2024-0436","Warn: Project is vulnerable to: RUSTSEC-2024-0370","Warn: Project is vulnerable to: GHSA-rr8g-9fpq-6wmg","Warn: Project is vulnerable to: RUSTSEC-2025-0023","Warn: Project is vulnerable to: RUSTSEC-2025-0046 / GHSA-fm79-3f68-h2fc"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T10:41:37.655Z","repository_id":38306496,"created_at":"2025-08-17T10:41:37.655Z","updated_at":"2025-08-17T10:41:37.655Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30117511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T08:19:04.902Z","status":"ssl_error","status_checked_at":"2026-03-05T08:17:37.148Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-08-02T01:00:45.264Z","updated_at":"2026-03-05T09:06:26.218Z","avatar_url":"https://github.com/bytecodealliance.png","language":"Rust","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eWizer\u003c/h1\u003e\n\n  \u003cp\u003e\n    \u003cstrong\u003eThe WebAssembly Pre-Initializer!\u003c/strong\u003e\n  \u003c/p\u003e\n\n  \u003cstrong\u003eA \u003ca href=\"https://bytecodealliance.org/\"\u003eBytecode Alliance\u003c/a\u003e project\u003c/strong\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/bytecodealliance/wizer/actions?query=workflow%3ACI\"\u003e\u003cimg src=\"https://github.com/bytecodealliance/wizer/workflows/CI/badge.svg\" alt=\"build status\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://bytecodealliance.zulipchat.com/#narrow/stream/223391-wasm\"\u003e\u003cimg src=\"https://img.shields.io/badge/zulip-join_chat-brightgreen.svg\" alt=\"zulip chat\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://docs.rs/wizer\"\u003e\u003cimg src=\"https://docs.rs/wizer/badge.svg\" alt=\"Documentation Status\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003ch3\u003e\n    \u003ca href=\"https://docs.rs/wizer\"\u003eAPI Docs\u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://github.com/bytecodealliance/wizer/blob/main/CONTRIBUTING.md\"\u003eContributing\u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://bytecodealliance.zulipchat.com/#narrow/stream/223391-wasm\"\u003eChat\u003c/a\u003e\n  \u003c/h3\u003e\n\u003c/div\u003e\n\n* [About](#about)\n* [Install](#install)\n* [Example Usage](#example-usage)\n* [Caveats](#caveats)\n* [Using Wizer as a Library](#using-wizer-as-a-library)\n* [How Does it Work?](#how-does-it-work)\n\n## About\n\n\u003e **Note**: Development of Wizer has moved upstream into the [Wasmtime\n\u003e repository](https://github.com/bytecodealliance/wasmtime). The source code can\n\u003e be found in [the `crates/wizer`\n\u003e subdirectory](https://github.com/bytecodealliance/wasmtime/tree/main/crates/wizer).\n\u003e The `wasmtime wizer` subcommand replaces the `wizer` CLI for future use.\n\nDon't wait for your Wasm module to initialize itself, pre-initialize it! Wizer\ninstantiates your WebAssembly module, executes its initialization function, and\nthen snapshots the initialized state out into a new WebAssembly module. Now you\ncan use this new, pre-initialized WebAssembly module to hit the ground running,\nwithout making your users wait for that first-time set up code to complete.\n\nThe improvements to start up latency you can expect will depend on how much\ninitialization work your WebAssembly module needs to do before it's ready. Some\ninitial benchmarking shows between 1.35 to 6.00 times faster instantiation and\ninitialization with Wizer, depending on the workload:\n\n| Program                | Without Wizer | With Wizer | Speedup          |\n|------------------------|--------------:|-----------:|-----------------:|\n| [`regex`][regex-bench] | 248.85 us     | 183.99 us  | **1.35x faster** |\n| [UAP][uap-bench]       | 98.297 ms     | 16.385 ms  | **6.00x faster** |\n\n[regex-bench]: https://github.com/bytecodealliance/wizer/tree/main/benches/regex-bench\n[uap-bench]: https://github.com/bytecodealliance/wizer/tree/main/benches/uap-bench\n\nNot every program will see an improvement to instantiation and start up\nlatency. For example, Wizer will often increase the size of the Wasm module's\n`Data` section, which could negatively impact network transfer times on the\nWeb. However, the best way to find out if your Wasm module will see an\nimprovement is to try it out! Adding an initialization function isn't too hard.\n\nFinally, you can likely see further improvements by running\n[`wasm-opt`][binaryen] on the pre-initialized module. Beyond the usual benefits\nthat `wasm-opt` brings, the module likely has a bunch of initialization-only\ncode that is no longer needed now that the module is already initialized, and\nwhich `wasm-opt` can remove.\n\n[binaryen]: https://github.com/WebAssembly/binaryen\n\n## Install\n\nDownload the a pre-built release from the\n[releases](https://github.com/bytecodealliance/wizer/releases) page. Unarchive\nthe binary and place it in your `$PATH`.\n\nAlternatively you can install via `cargo`:\n\n```shell-session\ncargo install wizer --all-features\n```\n\n## Example Usage\n\nFirst, make sure your Wasm module exports an initialization function named\n`wizer.initialize`. For example, in Rust you can export it like this:\n\n```rust\n#[export_name = \"wizer.initialize\"]\npub extern \"C\" fn init() {\n    // Your initialization code goes here...\n}\n```\n\nFor a complete C++ example, see [this](https://github.com/bytecodealliance/wizer/tree/main/examples/cpp).\n\nThen, if your Wasm module is named `input.wasm`, run the `wizer` CLI:\n\n```shell-session\nwizer input.wasm -o initialized.wasm\n```\n\nNow you have a pre-initialized version of your Wasm module at\n`initialized.wasm`!\n\nMore details, flags, and options can be found via `--help`:\n\n```shell-session\nwizer --help\n```\n\n## Caveats\n\n* The initialization function may not call any imported functions. Doing so will\n  trigger a trap and `wizer` will exit. You can, however, allow WASI calls via\n  the `--allow-wasi` flag.\n\n* The Wasm module may not import globals, tables, or memories.\n\n* Reference types are not supported yet. It isn't 100% clear yet what the best\n  approach to snapshotting `externref` tables is.\n\n## Using Wizer as a Library\n\nAdd a dependency in your `Cargo.toml`:\n\n```toml\n# Cargo.toml\n\n[dependencies]\nwizer = \"9\"\n```\n\nAnd then use the `wizer::Wizer` builder to configure and run Wizer:\n\n```rust\nuse wizer::Wizer;\n\nlet input_wasm = get_input_wasm_bytes();\n\nlet initialized_wasm_bytes = Wizer::new()\n    .allow_wasi(true)?\n    .run(\u0026input_wasm)?;\n```\n\n## Using Wizer with a custom Linker\n\nIf you want your module to be able to import other modules during instantiation, you can\nuse the `.make_linker(...)` builder method to provide your own Linker, for example:\n\n```rust\nuse wizer::Wizer;\n\nlet input_wasm = get_input_wasm_bytes();\nlet initialized_wasm_bytes = Wizer::new()\n    .make_linker(Some(Rc::new(|e: \u0026wasmtime::Engine| {\n        let mut linker = wasmtime::Linker::new(e);\n        linker.func_wrap(\"foo\", \"bar\", |x: i32| x + 1)?;\n        Ok(linker)\n    })))\n    .run(\u0026input_wasm)?;\n```\n\nNote that `allow_wasi(true)` and a custom linker are currently mutually exclusive\n\n## How Does it Work?\n\nFirst we instantiate the input Wasm module with Wasmtime and run the\ninitialization function. Then we record the Wasm instance's state:\n\n* What are the values of its globals?\n* What regions of memory are non-zero?\n\nThen we rewrite the Wasm binary by intializing its globals directly to their\nrecorded state, and removing the module's old data segments and replacing them\nwith data segments for each of the non-zero regions of memory we recorded.\n\nWant some more details? Check out the talk [\"Hit the Ground Running: Wasm\nSnapshots for Fast Start\nUp\"](https://fitzgeraldnick.com/2021/05/10/wasm-summit-2021.html) from the 2021\nWebAssembly Summit.\n","funding_links":[],"categories":["Manipulating (optimization, transformation, instrumentation)","Misc","Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytecodealliance%2Fwizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytecodealliance%2Fwizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytecodealliance%2Fwizer/lists"}