百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
Q

q3vm

> 编程语言
开源

Q3VM - 单文件 (vm.c) 字节码虚拟机/解释器,用于 C 语言输入

943 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

Q3VM - 单文件 (vm.c) 字节码虚拟机/解释器,用于 C 语言输入

Q3VM 使用说明

这是一个轻量级(单文件:vm.c)可嵌入式的解释器/虚拟机(VM),用于基于古老的 C 语言输入(.c)的编译后字节码文件(.qvm)。包含了用于生成 .qvm 文件的完整 C 编译器(LCC)。解释器基于 Quake III Arena 虚拟机(因此命名为 q3vm),但解释器不局限于 Quake III Arena,可用于任何类型的项目。例如,需要在沙箱中运行的代码。


/ _ \ |___ /\ \ / / / | || | | | |_ \ \ \ / /| |/| | | || |) | \ V / | | | | _____/ _/ || |_| vm.c / vm.h

Jan Zwiener, 2018-2024. 邮箱: [email protected] 阅读 Fabien Sanglard 关于 Q3VM 的精彩介绍:

  • http://fabiensanglard.net/quake3/qvm.php Gif: 编译简单的 hello world 示例(main.c) 并使用虚拟机解释器 q3vm 运行它。 安装

vm.c 和 vm.h 文件可以 被添加到现有的 C 项目中,并与之一起编译。实现 你项目中的 4 个回调函数: Com_malloc, Com_free, Com_Error 以及 systemCalls。 特点

  • 体积小、重量轻(只需要包含一个 .c 文件,无需依赖其他文件)
  • 经实战检验(在 Quake III Arena 中使用了 20 年)
  • VM 和 LCC 来自于维护良好的 ioquake3 代码基础
  • 工具测试(静态代码分析、测试覆盖率、Valgrind)
  • 没有必要学习新的脚本语言(例如 Lua)
  • 语言中有静态类型检查(C)
  • C 中有静态内存分配,没有不可预测的垃圾回收器

用例 ---------- * 为不完全信任的代码提供沙箱 (例如从 Web 服务器下载字节码) * 为业余游戏引擎提供插件 * 有许多虚拟机,但并非所有都如此小,且具有静态类型

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Cbytecodeembeddedinterpreterquake3

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言