{"id":13429764,"url":"https://github.com/WAVM/WAVM","last_synced_at":"2025-03-16T04:31:08.527Z","repository":{"id":36844985,"uuid":"41151921","full_name":"WAVM/WAVM","owner":"WAVM","description":"WebAssembly Virtual Machine","archived":false,"fork":false,"pushed_at":"2024-02-14T18:05:44.000Z","size":16121,"stargazers_count":2670,"open_issues_count":94,"forks_count":226,"subscribers_count":74,"default_branch":"master","last_synced_at":"2025-02-04T17:02:00.139Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://wavm.github.io/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WAVM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2015-08-21T11:14:30.000Z","updated_at":"2025-02-02T03:04:40.000Z","dependencies_parsed_at":"2022-07-09T03:01:11.004Z","dependency_job_id":"130521cd-ab9d-4340-b8f2-7b1dc7344047","html_url":"https://github.com/WAVM/WAVM","commit_stats":null,"previous_names":["andrewscheidecker/wavm"],"tags_count":110,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WAVM%2FWAVM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WAVM%2FWAVM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WAVM%2FWAVM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WAVM%2FWAVM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WAVM","download_url":"https://codeload.github.com/WAVM/WAVM/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243826788,"owners_count":20354220,"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":"2024-07-31T02:00:44.926Z","updated_at":"2025-03-16T04:31:06.027Z","avatar_url":"https://github.com/WAVM.png","language":"C++","funding_links":[],"categories":["C++","Embed-Script/VM/","Non-Web Embeddings","Misc","others","Projects","WASI-compatible Runtimes"],"sub_categories":["Lua","Runtimes"],"readme":"[![BSD license](https://img.shields.io/badge/license-BSD-green)](LICENSE.txt)\n[![GitHub repo](https://img.shields.io/badge/repo-github-green.svg)](https://github.com/WAVM/WAVM)\n[![Discord](https://img.shields.io/discord/484466837988573194)](https://discordapp.com/invite/fchkxFM)\n[![Azure Build Status](https://dev.azure.com/WAVM/WAVM/_apis/build/status/WAVM.WAVM)](https://dev.azure.com/WAVM/WAVM/_build/latest?definitionId=1)\n\n# WAVM\n\n[Getting Started](Doc/GettingStarted.md) | [Building WAVM from Source](Doc/Building.md) | [Exploring the WAVM source](Doc/CodeOrganization.md)\n\n##### WAVM is a WebAssembly virtual machine, designed for use in non-browser applications.\n\n### Fast\n\nWAVM uses [LLVM](https://llvm.org/) to compile WebAssembly code to machine code with close to\nnative performance. It can even beat native performance in some cases, thanks to the ability to\ngenerate machine code tuned for the exact CPU that is running the code.\n\nWAVM also leverages virtual memory and signal handlers to execute WebAssembly's bounds-checked\nmemory accesses at the same cost as a native, unchecked memory access.\n\n### Safe\n\nWAVM prevents WebAssembly code from accessing state outside of WebAssembly virtual machine*, or\ncalling native code that you do not explicitly link with the WebAssembly module.\n\n*\u0026nbsp;WAVM \u003ci\u003eis\u003c/i\u003e vulnerable to some side-channel attacks, such as Spectre variant 2. WAVM may\nadd further mitigations for specific side-channel attacks, but it's impractical to guard against\nall such attacks. You should use another form of isolation, such as OS processes, to protect\nsensitive data from untrusted WebAssembly code.\n\n### WebAssembly 1.0+\n\nWAVM fully supports WebAssembly 1.0, plus many proposed extensions to it:\n* [WASI](https://github.com/WebAssembly/WASI)\n* [128-bit SIMD](https://github.com/WebAssembly/simd)\n* [Threads](https://github.com/WebAssembly/threads)\n* [Reference types](https://github.com/WebAssembly/reference-types)\n* [Multiple results and block parameters](https://github.com/WebAssembly/multi-value)\n* [Bulk memory operations](https://github.com/webassembly/bulk-memory-operations)\n* [Non-trapping float-to-int conversions](https://github.com/WebAssembly/nontrapping-float-to-int-conversions)\n* [Sign-extension instructions](https://github.com/WebAssembly/sign-extension-ops)\n* [Exception handling](https://github.com/WebAssembly/exception-handling)\n* [Extended name section](https://github.com/WebAssembly/extended-name-section)\n* [Multiple memories](https://github.com/WebAssembly/multi-memory)\n\n### Portable\n\nWAVM is written in portable C/C++, with a small amount of architecture-specific assembly and LLVM\nIR generation code.\n\nWAVM is tested on and fully supports X86-64 Windows, MacOS, and Linux. It is designed to run on any\nPOSIX-compatible system, but is not routinely tested on other systems.\n\nSupport for AArch64 is a [work-in-progress](#76).\nWAVM mostly works on AArch64 Linux, but with some known bugs with handling WebAssembly stack\noverflow and partially out-of-bounds stores.\n\nWAVM's runtime requires a 64-bit virtual address space, and so is not portable to 32-bit hosts.\nHowever, WAVM's assembler and disassembler work on 32-bit hosts.\n\n[Portability Matrix](Doc/PortabilityMatrix.md)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWAVM%2FWAVM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FWAVM%2FWAVM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWAVM%2FWAVM/lists"}