{"id":15482902,"url":"https://github.com/brandonbloom/waet","last_synced_at":"2025-09-21T06:22:39.329Z","repository":{"id":138801249,"uuid":"145345769","full_name":"brandonbloom/waet","owner":"brandonbloom","description":"The WebAssembly Edn Toolkit","archived":false,"fork":false,"pushed_at":"2024-06-03T03:39:56.000Z","size":298,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-22T16:55:51.375Z","etag":null,"topics":["clojure","wasm","webassembly"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brandonbloom.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2018-08-19T23:49:07.000Z","updated_at":"2024-06-03T03:39:59.000Z","dependencies_parsed_at":"2024-05-12T00:29:30.337Z","dependency_job_id":"1b258d7c-d766-4adf-9f85-f30c526f9b21","html_url":"https://github.com/brandonbloom/waet","commit_stats":null,"previous_names":["brandonbloom/waet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brandonbloom/waet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonbloom%2Fwaet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonbloom%2Fwaet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonbloom%2Fwaet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonbloom%2Fwaet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brandonbloom","download_url":"https://codeload.github.com/brandonbloom/waet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonbloom%2Fwaet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276204200,"owners_count":25602731,"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","status":"online","status_checked_at":"2025-09-21T02:00:07.055Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["clojure","wasm","webassembly"],"created_at":"2024-10-02T05:10:17.711Z","updated_at":"2025-09-21T06:22:39.309Z","avatar_url":"https://github.com/brandonbloom.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WAET: The WebAssembly Edn Toolkit\n\nWAET (prounced \"weight\") is the Clojure-equivilent of [WABT, the WebAssembly\nBinary Toolkit](https://github.com/WebAssembly/wabt).\n\nThe WebAssembly Edn Toolkit provides a collection of Babashka scripts in the\nstyle of WABT's C++ programs for manipulating various WebAssembly file formats.\n\n**Provided Tools:**\n\n- `wat2wie` -- Converts WebAssembly Text into WebAssembly In Edn.\n- `wie2wasm` -- Converts WebAssembly In Edn to binary WebAssembly. Accepts the\n  same options as `wat2wasm`.\n- `wat2wie2wasm` -- Behaves as `wat2wasm`, but detours through WIE for testing\n  purposes.\n\nAdditionally -- and perhaps most importantly -- WAET provides the above\nfunctionality as a Clojure library for the purpose of being a pleasant\ncompilation toolkit for compilers targeting WebAssembly.\n\n## Status\n\nFeature incomplete, barely tested, incompletely documented, and completely\nunstable.  The Waet syntax and command line tools are alpha status.  The\nClojure API is expected to undergo significant breaking changes.\n\nPrimarily tested in terms of a subset of wabt's own test suite.\n\n## WIE: WebAssembly In Edn\n\nWAT (WebAssembly Text) is already an sexpression language and so has a great\ndeal of common syntax with EDN (Clojure's Extensible Data Notation).\n\nWhere possible, WAT syntax is used directly. Where not possible, WAT is translated to WAET\nas described here.\n\n### Strings and Data\n\nClojure on the JVM uses UTF-16 strings, but WAT data strings specify UTF-8 data.\nThis means that binary data can not safely be encoded into strings. Instead,\nstrings are treated abstractly and encoded into UTF-8 when written into Wasm binary.\nTo exactly encode binary data, use `#waet/data[ ... ]` tagged literals. Each element of the\nvector is a data \"chunk\" which may be a string or number. Big integers are encoded big-endian,\nother integers are treated as individual bytes.\n\n### Attributes\n\nWAT attributes are encoded with the `#waet/attribute(NAME \u0026 DATA...)` tagged literal.\n\n### Other Differences\n\n- TODO: Document more differences.\n\n## Usage\n\nSee `waet.core`. There will be two modes: Compile an entire module, or\ncompile modulefield-by-modulefield.\n\n## Testing\n\nUse `./test.sh`, which delegates to `$WABT_HOME/run-tests.sh` and injects Waet's toolchain.\n\n## License\n\nCopyright © 2024 Brandon Bloom\n\nDistributed under the Eclipse Public License 1.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrandonbloom%2Fwaet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrandonbloom%2Fwaet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrandonbloom%2Fwaet/lists"}