[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5977":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},5977,"mvm","mvm-sh\u002Fmvm","mvm-sh","Mvm is a fast interpreter and virtual machine for Go and beyond.","https:\u002F\u002Fmvm.sh",null,"Go",311,7,3,8,0,4,11,152,12,2.71,"BSD 3-Clause \"New\" or \"Revised\" License",false,"main",[26,27,28,5,29],"go","golang","interpreter","vm","2026-06-12 02:01:15","# mvm\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fmvm-sh\u002Fmvm\u002Factions\u002Fworkflows\u002Fgo.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fmvm-sh\u002Fmvm\u002Factions\u002Fworkflows\u002Fgo.yml)\n[![Go Reference](https:\u002F\u002Fpkg.go.dev\u002Fbadge\u002Fgithub.com\u002Fmvm-sh\u002Fmvm.svg)](https:\u002F\u002Fpkg.go.dev\u002Fgithub.com\u002Fmvm-sh\u002Fmvm)\n[![Compat](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fmvm-sh\u002Fmvm\u002Fmain\u002Fcompat\u002Fbadge.json)](https:\u002F\u002Fmvm.sh\u002Fcompat)\n[![License: BSD-3-Clause](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-BSD--3--Clause-blue.svg)](LICENSE)\n\nMvm is a Go interpreter that compiles source to bytecode and runs it on\na stack-based virtual machine. It ships as a single static binary with\nthe full Go standard library bundled in, and embeds in Go or C host\nprograms.\n\n> **Status is alpha.** Language coverage is broad but not yet complete,\n> and the embedding API will still change. Pin a commit if you depend\n> on it.\n\nWant to kick the tires without installing anything?\nTry it in the browser at the [mvm playground](https:\u002F\u002Fmvm.sh\u002Fplayground).\n\n## Features\n\n- Fast, portable bytecode virtual machine\n- Aims for full Go language compatibility\n- Embeddable in Go and C host programs (see [`examples\u002F`](examples\u002F))\n- pure Go, zero dependency\n- Integrated REPL, debugger (`trap()` builtin), and a `go test`-compatible runner (tests, benchmarks, and examples)\n- One single static binary, batteries included (full stdlib)\n\n## Compatibility\n\nMvm aims to run real Go, so we measure it.\nA matrix refreshed weekly (and at every release) records how the standard\nlibrary and a curated set of popular external packages fare when their own\ntest suites run under `mvm test`.\nEach package gets a tier (all tests pass, some pass, fails to load, or no\nrunnable tests) and a tests-passing ratio, with an aggregate trend over time.\n\n\u003C!-- compat:start -->\nStdlib: 69\u002F169 packages fully pass; external: 14\u002F50 fully pass (as of 2026-05-26).\nSee the full matrix at https:\u002F\u002Fmvm.sh\u002Fcompat.\n\u003C!-- compat:end -->\n\nThe data lives in [`compat\u002F`](compat\u002F) and is regenerated by `make compat`\n(which dogfoods mvm: the generator in [`compat\u002Fgen.go`](compat\u002Fgen.go) runs\nthrough the interpreter itself).\nThe full matrix is published at [mvm.sh\u002Fcompat](https:\u002F\u002Fmvm.sh\u002Fcompat).\n\n## Performance\n\nMvm is a bytecode interpreter, not a JIT, but it competes with hand-tuned\nstock interpreters on tight-loop workloads.\n\n\u003C!-- bench:start -->\nsieve(10M): mvm 336 ms, lua5.4 379 ms, lua5.1 590 ms, python3 778 ms (linux\u002Farm64, 2026-05-26).\nSee the full table at https:\u002F\u002Fmvm.sh\u002Fbench.\n\u003C!-- bench:end -->\n\nThe scripts live in [`bench\u002F`](bench\u002F) and the numbers are refreshed on\ndemand by `make bench` (hyperfine + hand-committed JSON; CI hardware\nvaries too much for meaningful microbench numbers).\n\n## Why mvm?\n\n_Disclosure: I (@mvertes) also created yaegi at Traefik, in addition to mvm._\n\nThere are several Go interpreters; mvm fills a different slot:\n\n- **[yaegi](https:\u002F\u002Fgithub.com\u002Ftraefik\u002Fyaegi)**: the most mature\n  option, AST tree-walking, focused on plugin-style use. Mvm makes a\n  different bet: compile once to bytecode, then run on a small VM.\n- **[gomacro](https:\u002F\u002Fgithub.com\u002Fcosmos72\u002Fgomacro)**: also AST-based,\n  with a strong REPL and macro story. Mvm has no macros and\n  concentrates on running ordinary Go code through a compact VM.\n- **[neugram](https:\u002F\u002Fgithub.com\u002Fneugram\u002Fng)**, **[igo](https:\u002F\u002Fgithub.com\u002Fsbinet\u002Figo)**:\n  both no longer maintained.\n\nIf you want a small, embeddable runtime that runs idiomatic Go fast\nenough for non-trivial programs, mvm is built for that.\n\nmvm starts with Go, but the design points further: the scanner\u002Fparser\nfront-end is built to host other languages, the bytecode compiler is\nlanguage-agnostic, and the VM leverages the Go runtime's memory\nmanagement and concurrency. Useful well beyond scripting.\n\n## Usage\n\nInstall the `mvm` command:\n\n    go install github.com\u002Fmvm-sh\u002Fmvm@latest\n\nOr from a clone of the repository:\n\n```\ngo run .                            # start the REPL\ngo run . _samples\u002Ffib.go            # run a Go source file\ngo run . run _samples\u002Ffib.go        # same. \"run\" is the default subcommand\ngo run . run -e \"fmt.Println(1+2)\"  # evaluate an inline expression\ngo run . run -x _samples\u002Ffib.go     # run with execution tracing\ngo run . github.com\u002Fmvm-sh\u002Fmvm\u002Fcmd\u002Fmvmlint .  # fetch and run a remote main package\ngo run . test .\u002Fpkg                 # run TestX functions in a package directory\ngo run . test .\u002Fpkg -v              # ... verbose; -run REGEX selects tests\ngo run . test github.com\u002Fgoogle\u002Fuuid  # fetch a remote module and run its tests\ngo run . help                       # list subcommands\n```\n\nSee [docs\u002Fusage.md](docs\u002Fusage.md) for the full command reference, the\n`-x` \u002F `MVM_TRACE` tracing modes, and the `trap()` debugger.\n\nRemote import paths (run or test) are resolved through the Go module\nproxy and held in memory, so no module sources are written to disk. A\n`trap()` builtin drops the program into an interactive debug REPL where\nyou can inspect the call stack and memory.\n\nThe repository contains two example trees: [`examples\u002F`](examples\u002F) for\nembedding mvm in Go and C host programs, and [`_samples\u002F`](_samples\u002F)\nfor Go programs you can run directly with `mvm run`.\n\nA static file server in one line, using the inlined stdlib:\n\n```sh\nmvm -e 'http.ListenAndServe(\":8080\", http.FileServer(http.Dir(\".\")))'\n```\n\n## Documentation\n\n- [docs\u002Findex.md](docs\u002Findex.md): documentation entry point\n- [docs\u002Fusage.md](docs\u002Fusage.md): CLI reference, tracing, the trap() debugger, remote imports\n- [docs\u002Farchitecture.md](docs\u002Farchitecture.md): pipeline, memory model, key design decisions\n- [docs\u002Fmodules\u002F](docs\u002Fmodules\u002F): per-package reference\n- [docs\u002Fdecisions\u002F](docs\u002Fdecisions\u002F): architecture decision records (ADRs)\n- [CHANGELOG.md](CHANGELOG.md): release notes\n\n## Build\n\n```\nmake fast    # quick inner loop: interp suite, -short + race detector\nmake test    # full interp suite with the race detector\nmake cover   # cross-package coverage profile\nmake lint    # golangci-lint\n```\n\n## Questions and discussions\n\n[GitHub Discussions](https:\u002F\u002Fgithub.com\u002Fmvm-sh\u002Fmvm\u002Fdiscussions) is the\npreferred place to ask anything mvm-related: how to do something, whether\na behavior is a bug or a misuse, or to float an idea for a new feature\nbefore it becomes an issue or a pull request.\nWhen in doubt, start a discussion.\n\n## Contributing\n\nSee the [Contributing Guide](CONTRIBUTING.md)\n\n## License\n\nMvm is distributed under the BSD-3-Clause license. See [LICENSE](LICENSE)\nfor the full text. The bundled Go standard library sources retain their\noriginal BSD-3-Clause license.\n","Mvm 是一个针对 Go 语言及其之外的快速解释器和虚拟机。它将源代码编译为字节码，并在基于栈的虚拟机上运行，提供了一个完整的 Go 标准库集成的单一静态二进制文件，支持嵌入到 Go 或 C 主程序中。该项目的特点包括高性能、便携性以及对 Go 语言的全面兼容性追求，同时具备REPL、调试器等功能。适用于需要动态执行Go代码或希望在受限环境中运行Go应用的场景，如IoT设备、嵌入式系统等。尽管项目仍处于alpha阶段，但其提供的功能已经能够满足基本需求。",2,"2026-06-11 03:05:14","CREATED_QUERY"]