4个版本 (2个破坏性更新)

0.3.0 2024年7月16日
0.2.1 2024年5月20日
0.2.0 2024年5月17日
0.1.0 2024年5月11日

#56 in 机器人

每月下载量50

MIT 和可能 GPL-3.0-only…

250KB
2K SLoC

vexide

VEX V5机器人的开源Rust运行时。vexide提供了一个no_std Rust运行时、异步执行器、设备API等,用于VEX V5大脑!

vexide是pros-rs的后续产品,它是一组使用PROS绑定的未维护的API。

[警告] vexide仍然被视为实验性的,但可以现在使用。查看我们的文档了解如何入门。

入门指南

vexide发布在crates.io上,可以像正常的嵌入式Rust包一样使用。

如果你刚开始,我们建议你阅读我们的文档,其中提供了使用vexide-template设置开发环境的逐步说明。

项目结构

vexide运行时是一个相当标准的Rust monorepo,分为7个子仓库

这些子crates 从单个 vexide crate 导出,该crate旨在作为一个完整的包使用。

构建

vexide 依赖于仅在 Rust 的 nightly 版本中可用的某些功能,因此您需要切换到使用 nightly。我们还依赖于 rust-src 组件,因为我们的嵌入式目标需要构建 core

rustup override set nightly
rustup component add rust-src

这个项目与其他 Rust 项目一样编译,但有一个例外 - 我们有一个自己的 cargo 包装器,称为 cargo-v5,它将一些额外的参数传递给 cargo 以正确地为平台构建。

您可以使用以下命令安装该工具

cargo install cargo-v5

从那里,项目可以通过 cargo-v5 以任何其他 rust 库的方式构建

cargo v5 build --release

示例也可以以这种方式构建

cargo v5 build --example basic --release

cargo build --target ./armv7a-vex-v5.json -Zbuild-std=core,alloc,compiler_builtins

测试您的更改

当对 vexide 进行更改时,测试它们是一个好主意。最简单的方法是运行我们的示例之一。可以使用如下命令使用 cargo-v5 上传示例

cargo v5 upload --example basic --release

根据您的更改,基本示例可能不是测试的最佳示例。我们有多个示例涵盖了 vexide 的不同部分,因此请选择适用于您的更改的示例。如果没有,请随时添加它!

为 WASM 构建

vexide 运行时也设计成可以编译为 wasm32-unknown-unknown 目标(以及现有的裸金属 ARM 目标)。这是为了允许在 WASM 环境中模拟程序

要为这个存储库中的项目构建 WebAssembly,请运行 cargo v5 build -s 这将自动传递所有正确的参数给 cargo。

依赖关系

~0–18MB
~253K SLoC