{"id":29419879,"url":"https://github.com/bytecodealliance/weval","last_synced_at":"2025-07-12T01:13:14.054Z","repository":{"id":256804229,"uuid":"850059423","full_name":"bytecodealliance/weval","owner":"bytecodealliance","description":"the WebAssembly partial evaluator","archived":false,"fork":false,"pushed_at":"2025-07-08T07:36:00.000Z","size":2356,"stargazers_count":76,"open_issues_count":0,"forks_count":6,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-07-12T00:44:57.132Z","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}},"created_at":"2024-08-30T19:47:14.000Z","updated_at":"2025-07-10T07:38:34.000Z","dependencies_parsed_at":"2024-09-13T05:46:37.802Z","dependency_job_id":"e54ef3ac-1e13-49ca-bfde-7e7da1a67d1d","html_url":"https://github.com/bytecodealliance/weval","commit_stats":null,"previous_names":["bytecodealliance/weval"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/bytecodealliance/weval","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fweval","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fweval/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fweval/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fweval/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bytecodealliance","download_url":"https://codeload.github.com/bytecodealliance/weval/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fweval/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264922908,"owners_count":23683705,"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":[],"created_at":"2025-07-12T01:13:13.327Z","updated_at":"2025-07-12T01:13:14.042Z","avatar_url":"https://github.com/bytecodealliance.png","language":"Rust","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eweval\u003c/h1\u003e\n\n  \u003cp\u003e\n    \u003cstrong\u003eweval Wasm partial evaluator\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/weval/actions?query=workflow%3ACI\"\u003e\u003cimg src=\"https://github.com/bytecodealliance/weval/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/weval\"\u003e\u003cimg src=\"https://docs.rs/weval/badge.svg\" alt=\"Documentation Status\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003ch3\u003e\n    \u003ca href=\"https://github.com/bytecodealliance/weval/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`weval` partially evaluates WebAssembly snapshots to turn interpreters into\ncompilers (see [Futamura\nprojection](https://en.wikipedia.org/wiki/Partial_evaluation#Futamura_projections)\nfor more).\n\n`weval` binaries are available via releases on this repo or via an [npm\npackage](https://www.npmjs.com/package/@cfallin/weval).\n\nUsage of weval is like:\n\n```\n$ weval weval -w -i program.wasm -o wevaled.wasm\n```\n\nwhich runs Wizer on `program.wasm` to obtain a snapshot, then processes any\nweval requests (function specialization requests) in the resulting heap image,\nappending the specialized functions and filling in function pointers in\n`wevaled.wasm`.\n\nSee the API in `include/weval.h` for more.\n\n### Releasing Checklist\n\n- Bump the version in `Cargo.toml` and `cargo check` to ensure `Cargo.lock` is\n  updated as well.\n- Bump the tag version (`TAG` constant) in `npm/weval/index.js`.\n- Bump the npm package version in `npm/weval/package.json`.\n- Run `npm i` in `npm/weval/` to ensure the `package-lock.json` file is\n  updated.\n\n- Commit all of this as a \"version bump\" PR.\n- Push it to `main` and ensure CI completes successfully.\n- Tag as `v0.x.y` and push that tag.\n- `cargo publish` from the root.\n- `npm publish` from `npm/weval/`.\n\n### Further Details\n\nThe theory behind weval is described in the author's blog post\n[here](https://cfallin.org/blog/2024/08/28/weval/), covering partial evaluation\nand Futumura projections as well as how weval's main transform works.\n\n### Uses\n\nweval is in use to provide ahead-of-time compilation of JavaScript by wevaling\na build of the [SpiderMonkey](https://spidermonkey.dev) interpreter, providing\n3-5x speedups over the generic interpreter. Please let us know if you use it\nelsewhere!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytecodealliance%2Fweval","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytecodealliance%2Fweval","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytecodealliance%2Fweval/lists"}