{"id":13626184,"url":"https://github.com/mewz-project/mewz","last_synced_at":"2025-05-15T17:04:55.996Z","repository":{"id":214485008,"uuid":"736513494","full_name":"mewz-project/mewz","owner":"mewz-project","description":"A unikernel designed specifically for running Wasm applications and compatible with WASI","archived":false,"fork":false,"pushed_at":"2025-05-11T08:03:20.000Z","size":1250,"stargazers_count":576,"open_issues_count":11,"forks_count":15,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-11T09:19:06.669Z","etag":null,"topics":["kernel","unikernel","wasm","webassembly","webassembly-runtime","zig"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mewz-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2023-12-28T05:40:06.000Z","updated_at":"2025-05-11T08:03:24.000Z","dependencies_parsed_at":"2024-04-27T03:26:52.485Z","dependency_job_id":"85bfdcee-f555-4018-bfac-436bc82b2218","html_url":"https://github.com/mewz-project/mewz","commit_stats":{"total_commits":61,"total_committers":6,"mean_commits":"10.166666666666666","dds":"0.29508196721311475","last_synced_commit":"d44819cdca172fec771cee6281628c71594b1cf7"},"previous_names":["mewz-project/mewz"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mewz-project%2Fmewz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mewz-project%2Fmewz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mewz-project%2Fmewz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mewz-project%2Fmewz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mewz-project","download_url":"https://codeload.github.com/mewz-project/mewz/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254384987,"owners_count":22062422,"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":["kernel","unikernel","wasm","webassembly","webassembly-runtime","zig"],"created_at":"2024-08-01T21:02:12.398Z","updated_at":"2025-05-15T17:04:55.979Z","avatar_url":"https://github.com/mewz-project.png","language":"Zig","funding_links":[],"categories":["Zig","Applications"],"sub_categories":[],"readme":"[![CI](https://github.com/mewz-project/mewz/actions/workflows/ci.yaml/badge.svg)](https://github.com/mewz-project/mewz/actions/workflows/ci.yaml)\n\n# Mewz\n\n![](img/mewz-logo.png)\n\nMewz is a unikernel designed specifically for running Wasm applications and compatible with WASI.\n\n## What's new with Mewz\n\nThere are now various Wasm runtimes, but they operate on general-purpose operating systems such as Linux or Windows.\n\nMewz is **a specialized kernel designed for running Wasm**. Mewz runs a single Wasm application within the kernel by linking it together during the build process with the Wasm application. (A kernel composed in this manner is commonly referred to as a **unikernel**.) In this way, Mewz provides **the minimal required features and environment for executing Wasm**.\n\n![](img/mewz-architecture.png)\n\n## Quick Start\n\nThere are some example programs. Please check out [examples](https://github.com/Mewz-project/Mewz/tree/main/examples).\n\n### Option1: Docker\n\nWe prepare for a Docker image that has a environment for running Mewz.\n\n```sh\ncurl -o helloworld.wat https://raw.githubusercontent.com/Mewz-project/Wasker/main/helloworld.wat\ndocker run -v .:/volume ghcr.io/mewz-project/mewz helloworld.wat\n```\n\nThis image internally run [Wasker](https://github.com/mewz-project/wasker), build Mewz, and run it on QEMU.\n\n![](img/mewz-demo.gif)\n\n### Option2: Dev Container\n\nYou can use Dev Container on GitHub Codespaces or your local VSCode.\n\nTo start Codespaces,\n\n- Click Code -\u003e Codespaces -\u003e New codespace on this repository page.\n- Wait for a while, then you can see VSCode on browser.\n- Open terminal on VSCode\n\n```sh\n# On the Dev Container\ngit submodule update --init\ncurl -o helloworld.wat https://raw.githubusercontent.com/Mewz-project/Wasker/main/helloworld.wat\nwasker helloworld.wat\nzig build -Dapp-obj=wasm.o run\n```\n\n### Option3: Build from source\n\nCompile a Wasm file into a native object file, using [Wasker](https://github.com/mewz-project/wasker). Follow the instruction [here](https://github.com/mewz-project/wasker#how-to-run-wasker).\n\nThen, build Mewz and run it on QEMU with the following commands.\n\n```sh\nzig build -Dapp-obj=\u003cpath to the object file generated by Wasker\u003e run\n```\n\nTo use file systems, specify the directory by `-Ddir=\u003cpath to dir\u003e`. See [examples/static_file_server](examples/static_file_server/).\n\n\u003e [!WARNING]\n\u003e This option makes an archive of the directory by `tar` and attach it to QEMU.\n\n\u003e [!NOTE]\n\u003e QEMU's port 1234 is mapped to localhost:1234.\n\n\n## Development\n\n### GDB\n\nYou can debug Mewz with GDB. When you run Mewz with QEMU, it listens on port 12345 for GDB. You can connect to it by just running GDB at the root of the repository as `.gdbinit` is already configured.\n\n```sh\nzig build -Dapp-obj=\u003cpath to the object file generated by Wasker\u003e run\n# In another terminal\ngdb\n```\n\n`zig build debug` command prevent Mewz from booting up until GDB connects to it. This is useful when you want to debug the boot process.\n\n```sh\nzig build -Dapp-obj=\u003cpath to the object file generated by Wasker\u003e debug\n# In another terminal\ngdb\n```\n\n### Run integration tests\n\n```sh\nzig bulid -Dtest=true run\n```\n\n## Current Status\n\n\n|        Feature        |                                                Status                                                |\n|:---------------------:| :--------------------------------------------------------------------------------------------------: |\n|       WASI Preview 1  |                            In Progress: Partial Implementation (Please refer to https://github.com/Mewz-project/Mewz/issues/1)                  |\n|       Socket          |                            ✅ (WasmEdge Compatible)                                                   |\n|       Component Model |                              Not yet                                                                 |\n|       File System     |                            On memory, read only                                                      |\n|       Network         |                             ✅                                                                        |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmewz-project%2Fmewz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmewz-project%2Fmewz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmewz-project%2Fmewz/lists"}