{"id":44727608,"url":"https://github.com/ryuapp/zemu","last_synced_at":"2026-02-15T18:00:31.280Z","repository":{"id":334046790,"uuid":"1139256933","full_name":"ryuapp/zemu","owner":"ryuapp","description":"A tiny JavaScript runtime built with Zig using Micro QuickJS engine. The binary size is under 500KB.","archived":false,"fork":false,"pushed_at":"2026-02-10T06:40:26.000Z","size":58,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-10T12:56:02.247Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://npmjs.com/package/zemu","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryuapp.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-21T18:16:19.000Z","updated_at":"2026-02-10T06:32:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ryuapp/zemu","commit_stats":null,"previous_names":["ryuapp/zemu"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ryuapp/zemu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryuapp%2Fzemu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryuapp%2Fzemu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryuapp%2Fzemu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryuapp%2Fzemu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryuapp","download_url":"https://codeload.github.com/ryuapp/zemu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryuapp%2Fzemu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29486050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-02-15T18:00:16.964Z","updated_at":"2026-02-15T18:00:31.274Z","avatar_url":"https://github.com/ryuapp.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zemu\n\nA tiny JavaScript runtime built with [Zig](https://ziglang.org/) using [Micro QuickJS](https://github.com/bellard/mquickjs) engine. The binary size is under 500KB.\n\n## Usage\n\nExecute a JavaScript file:\n\n```sh\nzemu examples/hello.js\n```\n\nEvaluate JavaScript code directly:\n\n```sh\nzemu -e \"console.log('Hello World')\"\nzemu -e \"48 + 19\"\n```\n\n### Command Line Options\n\n```sh\nUsage: zemu [options] \u003cfile\u003e\n\nOptions:\n  -h, --help       Print this help message\n  -v, --version    Print this version\n  -e, --eval CODE  Evaluate inline JavaScript code\n\nExamples:\n  zemu hello.js                   Run a JavaScript file\n  zemu -e \"console.log(48 + 19)\"  Evaluate inline code\n```\n\n## Available JavaScript APIs\n\nZemu supports a subset of JavaScript close to **ES5** (ECMAScript 2009). Only `var` declarations are supported. ES6+ features like `let`, `const`, arrow functions, classes, `Promise`, `async`/`await`, and `import`/`export` are **not supported**.\n\nFor detailed API documentation, please refer to [Micro QuickJS](https://github.com/bellard/mquickjs).\n\nThe following sections describe Zemu-specific APIs:\n\n### Console Object\n\n```js\nconsole.log(\"message\"); // Print to stdout\nconsole.info(\"info\"); // Print to stdout\nconsole.error(\"error\"); // Print to stderr\nconsole.warn(\"warning\"); // Print to stderr\n```\n\n### Command-Line Arguments\n\n`Zemu.args` returns the script arguments to the program.\n\n```js\n// Run: zemu script.js -i --verbose hello\nconsole.log(Zemu.args); // [\"-i\", \"--verbose\", \"hello\"]\nconsole.log(Zemu.args[0]); // \"-i\"\nconsole.log(Zemu.args.length); // 3\n\n// Also works with -e flag\n// Run: zemu -e \"console.log(Zemu.args)\" -i --verbose hello\n// Output: -i,--verbose,hello\n```\n\n## Examples\n\nSee the `examples/` directory for sample scripts:\n\n- `hello.js` - Basic console output\n- `fibonacci.js` - Recursive function example\n- `error.js` - Error handling demonstration\n- `args.js` - Command-line arguments usage\n\n## License\n\nMIT\n\n### Third-party License\n\nZemu includes a modified copy of [mitchellh/zig-mquickjs](https://github.com/mitchellh/zig-mquickjs). See [lib/mquickjs/LICENSE](./lib/mquickjs/LICENSE) for the original MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryuapp%2Fzemu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryuapp%2Fzemu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryuapp%2Fzemu/lists"}