【Rust日报】embive - RISC-V字节码虚拟机

科技   2024-11-27 22:29   加拿大  

embive - RISC-V字节码虚拟机

Embive是一个低级沙箱化库,专注于在受约束的环境中嵌入不受信任的代码。它通过解释RISC-V字节码来支持多种语言(Rust、C、C++、Zig、TinyGo等)。它默认不需要外部crate、动态内存分配或标准库(no_std和no_alloc)。Embive被设计为任何执行期间的错误都是可恢复的,允许主机根据需要处理它。

该库目前支持RV32I[M]非特权指令集(默认启用M扩展)。它提供了运行在Embive中的Rust、C/C++程序的模板示例。Embive的计划包括完全支持RV32G指令集、系统调用、资源限制器、CI/CD集成、字节码优化(AOT和JIT)、回调等功能。

Embive遵循Apache 2.0或MIT许可证。

https://github.com/embive/embive

q3vm - 轻量级可嵌入式字节码解释器/虚拟机

这是一个基于经典Quake III Arena虚拟机(Q3VM)的轻量级可嵌入式字节码解释器/虚拟机。它包含一个完整的C语言编译器(LCC)来生成.qvm字节码文件。该解释器只有一个C文件(vm.c),体积小巧,可嵌入到任何项目中。它支持在沙箱环境中运行不完全可信的代码,用于游戏引擎模组、IoT应用插件等。项目提供了独立的q3vm.exe演示程序,以及把解释器集成到自己项目的示例代码。通过实现4个回调函数,可以让字节码调用宿主程序的本地函数。该虚拟机经过20年Quake III引擎的实践检验,性能优于其他类似解释器。除了解释器,项目还包含了用于生成字节码的LCC编译器和q3asm链接器。

https://github.com/jnz/q3vm

Shuttle2024年圣诞编码挑战赛

这个由Shuttle发起的活动灵感来自于Advent of Code,邀请参与者使用Rust语言在一个轻松有趣的氛围中解决各种挑战。在每个挑战中,你需要实现HTTP端点来返回挑战的解决方案。这是一个不错的机会开始学习Rust和Shuttle!参与者将有机会提高Rust技能,结识志同道合的朋友,并享受CountDown圣诞的乐趣。第一个挑战将于2024年12月2日12:00 UTC发布,一共会在12月份发布7个挑战。注册和热身挑战将在11月底开放。如果你在2024年12月31日23:59 UTC之前完成所有7个挑战,就有资格获得奖品池,所以无需匆忙赶工。想参加了可以通过下面链接上官网报名。

https://shuttle.rs/cch

--

From 日报小组 Mike

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区


Rust语言中文社区
Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
 最新文章