{"id":29602150,"url":"https://github.com/misalcedo/wasm-ast","last_synced_at":"2025-07-20T14:02:02.660Z","repository":{"id":39886728,"uuid":"393221606","full_name":"misalcedo/wasm-ast","owner":"misalcedo","description":"A Rust-native WebAssembly syntax model useful for generating, reading, and emitting WebAssembly code.","archived":false,"fork":false,"pushed_at":"2025-05-21T12:52:28.000Z","size":183,"stargazers_count":16,"open_issues_count":3,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-17T23:04:11.256Z","etag":null,"topics":["ast","rust","syntax","wasm","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/misalcedo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-06T02:10:52.000Z","updated_at":"2024-05-15T09:40:23.000Z","dependencies_parsed_at":"2023-01-30T08:31:15.425Z","dependency_job_id":null,"html_url":"https://github.com/misalcedo/wasm-ast","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/misalcedo/wasm-ast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misalcedo%2Fwasm-ast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misalcedo%2Fwasm-ast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misalcedo%2Fwasm-ast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misalcedo%2Fwasm-ast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/misalcedo","download_url":"https://codeload.github.com/misalcedo/wasm-ast/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misalcedo%2Fwasm-ast/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265687203,"owners_count":23811220,"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":["ast","rust","syntax","wasm","webassembly"],"created_at":"2025-07-20T14:00:42.970Z","updated_at":"2025-07-20T14:02:02.643Z","avatar_url":"https://github.com/misalcedo.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WASM\n[![Build](https://github.com/misalcedo/wasm-ast/actions/workflows/build.yml/badge.svg)](https://github.com/misalcedo/wasm-ast/actions/workflows/build.yml)\n[![License](https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Crates.io Version](https://img.shields.io/crates/v/wasm-ast.svg)](https://crates.io/crates/wasm-ast)\n[![Docs.rs Version](https://docs.rs/wasm-ast/badge.svg)](https://docs.rs/wasm-ast)\n\nA Rust-native WebAssembly syntax model useful for generating, parsing, and emitting WebAssembly code.\n\n## Design\nWASM-AST is designed with minimal validation. The goal is to closely model the WASM syntax specification in order to allow valid and invalid abstract syntax trees. Lastly, modules cannot be mutated once built.\n\n## Features\n### Parser\nA parser for binary WebAssembly format. Attempts to maintain as much of the binary information as possible.\n\n### Text\nA parser for the text and binary WebAssembly formats. The text format is transformed to binary, then passed to the binary parser. Some information may be lost in the text to binary conversion.\n\n### Emitter\nEmits binary WebAssembly format for a module.\n\n\n## Usage\nTo use `wasm-ast`, first add this to your `Cargo.toml`:\n\n```toml\n[dependencies]\nwasm-ast = \"0.1.0\"\n```\n\nThen, add this to your crate:\n\n```rust\nuse wasm_ast::model::Module;\n\nfn main() {\n    let mut builder = Module::builder();\n    let module = builder.build();\n}\n```\n\n## Examples\n\nCreate an empty WASM module:\n\n```rust\nuse wasm_ast::model::Module;\n\nfn main() {\n    let module = Module::empty();\n}\n```\n\nAdditional (i.e., more useful) examples can be found in the repository.\n\n## Stability\nThe interface is considered stable. No breaking changes will be introduced until the next major version (e.g. `1.0`).\n\n# Issues\nPlease file any issues for areas where this crate does not properly adhere to the WebAssembly standard.\n\n## License\n\nLicensed under Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://apache.org/licenses/LICENSE-2.0)\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be \nlicensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisalcedo%2Fwasm-ast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisalcedo%2Fwasm-ast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisalcedo%2Fwasm-ast/lists"}