@Alacritic_Super: 如果你正在构建软件定义汽车、机器人技术或嵌入式系统,不妨了解一下 Veecle OS。它是一个开源的…
摘要
Veecle OS 是一个基于 Rust 的开源编程框架,使开发者能够使用统一架构为低功耗嵌入式设备和高性能系统编写软件,面向软件定义汽车、机器人技术和嵌入式应用。
查看缓存全文
缓存时间: 2026/07/12 23:02
如果您正在构建软件定义汽车、机器人或嵌入式系统,请关注 Veecle OS。它是一个基于 Rust 的开源编程框架,旨在让开发者使用统一的架构编写可在低功耗微控制器、嵌入式设备和高性能系统上运行的软件。
您将学到:
- Rust 在嵌入式系统中的应用
- 软件定义汽车 (SDV)
- 硬件抽象层 (HAL)
- 异步编程
- 遥测与可观测性
- 模块化系统架构
- 内存安全的系统编程
- 跨平台嵌入式开发
- 机器人软件
- 实时与嵌入式应用
资源:https://github.com/veecle/veecle-os…
随着车辆、机器人和工业设备变得越来越多软件定义,像 Veecle OS 这样的框架展示了 Rust 如何为新一代嵌入式软件提供更安全、更可移植的基础。
veecle/veecle-os
来源:https://github.com/veecle/veecle-os
Veecle OS
Veecle OS 是一个编程框架,使开发者能够为低功耗嵌入式设备和高性能系统编写软件。Veecle OS 利用 Rust 编程语言的特性,帮助软件开发人员避免常见的复杂性。
请参阅用户手册 (https://veecle.github.io/veecle-os/user-manual/) 了解 Veecle OS 的使用方法。
请参阅 CONTRIBUTING 了解构建说明和其他开发资料。
完成设置说明后,前往 示例 运行一些 Veecle OS 示例程序。
示例
该示例使用最新的开发版本 (main)。将以下依赖添加到您的 Cargo.toml 文件中:
tokio = "1.49.0"
# TODO(#161): 在 ConsolePrettyExporter 发布之前使用 git 依赖。
veecle-os = { git = "https://github.com/veecle/veecle-os", branch = "main", features = [
"osal-std",
"telemetry-enable",
] }
将以下代码添加到您的 main.rs 文件中:
use veecle_os::info;
use veecle_os::osal::api::time::{Duration, Instant, Interval, TimeAbstraction};
use veecle_os::runtime::single_writer::{Reader, Writer};
use veecle_os::runtime::{Never, Storable};
use veecle_os::telemetry::collector::{ConsolePrettyExporter, ProcessId};
#[derive(Debug, PartialEq, Clone, Storable)]
pub struct Tick {
at: Instant,
}
/// 每秒发出一个时间戳。
///
/// 可在任何支持的平台上使用。
#[veecle_os::runtime::actor]
pub async fn ticker_actor(
mut tick_writer: Writer<'_, Tick>,
) -> Result<(), veecle_os::runtime::Error>
where
T: TimeAbstraction,
{
let mut interval = T::interval(Duration::from_secs(1));
loop {
interval.tick().await?;
tick_writer.write(Tick { at: T::now() }).await;
}
}
/// 通过 `veecle-telemetry` 打印每个接收到的滴答。
///
/// 可在任何支持的平台上使用。
#[veecle_os::runtime::actor]
pub async fn ticker_reader(mut reader: Reader<'_, Tick>) -> Never {
loop {
reader
.read_updated(|&Tick { at: tick_at }| {
info!(
"latest tick",
tick = {
i64::try_from(
tick_at
.duration_since(Instant::MIN)
.unwrap()
.as_secs(),
)
.unwrap()
}
);
// 这不影响运行示例。
// 为了在 CI 中测试示例,需要强制终止。
if env!("CARGO_PKG_NAME") == "readme-example" {
std::process::exit(0);
}
})
.await;
}
}
/// 平台特定的 `main` 实现(`std` 版本)。
#[tokio::main]
async fn main() {
// `ConsolePrettyExporter` 仅用于实验。
// 有关完整的遥测功能,请参阅 `veecle-telemetry-ui` 应用程序。
veecle_os::telemetry::collector::build()
.random_process_id()
.exporter(&ConsolePrettyExporter::DEFAULT)
.time::<veecle_os::telemetry::collector::exports::MonotonicClock>()
.thread::<veecle_os::telemetry::collector::exports::ThreadName>()
.set_global()
.expect("exporter was not set yet");
veecle_os::runtime::execute! {
actors: [
TickerReader,
TickerActor,
],
}
.await;
}
最低支持的 Rust 版本策略
当前测试的 Rust 版本定义在 rust-toolchain.toml 中,并通过 Cargo 元数据在 Cargo.toml 中指定为 MSRV。这通常会紧跟最新发布的版本,更新不被视为破坏性变更。
仓库结构
docs:文档源文件。veecle-os:Veecle OS 主外观模块,暴露运行时、OSAL 等组件。examples:使用 Veecle OS 的示例代码。查看此目录以开始运行 Veecle OS 代码。veecle-os-runtime和 宏:Veecle OS 运行时库,包含基础设施(如存储实现)。veecle-os-test:测试 Veecle OS actor 的工具。veecle-telemetry-*:用于收集和导出 Veecle OS 代码可观测性数据的遥测库。veecle-osal-api、veecle-osal-*:支持 Veecle OS 在不同平台上运行的代码。veecle-os-data-support-*和*-someip-*:支持不同数据格式和传输(如 CAN)的代码。workspace:验证支持。.vale:Vale (https://vale.sh/) 的配置,一个用于代码和文档的散文检查器。external:外部项目的代码。Veecle OS 仓库包含其他项目的代码,以便开发者可以在单个提交中跨仓库进行更改。veecle-orchestrator、veecle-orchestrator-*、veecle-ipc、veecle-ipc-*:多运行时编排器原型。在原型阶段尚未发布。
许可证
本项目使用 Apache License Version 2.0 许可。
贡献
除非您明确声明,否则您有意提交给此项目的任何贡献都将以 Apache License Version 2.0 许可,不附加任何额外条款或条件。
相似文章
@omarsar0: https://x.com/omarsar0/status/2070884837372703196
Vercel 发布了 Eve,这是一个开源框架,用于构建和扩展 AI 代理,采用文件系统优先的方法,将代理视为文件目录。该框架开箱即用地提供了持久会话、沙盒、审批、追踪和评估功能。
@seclink: vercel ai sdk
Vercel AI SDK 是一个开源、框架无关的工具包,用于构建人工智能驱动的应用和代理,支持 React、Next.js、Vue、Svelte、Node.js 等。
@heyshrutimishra:我分析了自主机器人背后的软件栈,以下是让它们真正工作的原因:它由50多个工具协同…
对自主机器人背后软件栈的分析,拆解了从感知到云支持的各个组件,并指出大多数工具都是开源的。
@rauchg: 自主、自优化网站和应用的强大构建块。赋予智能体设置……
Vercel 宣布 CLI 支持管理功能标志的目标规则,从而实现自主、自优化的网站和应用。
@heyshrutimishra: 有人悄悄开源了一个智能代理操作系统。技能、记忆、定时任务,自带模型。它叫做 PilotDeck。这里是……
PilotDeck 是一个开源的智能代理操作系统,具备技能、记忆、定时任务,并支持自带模型,目前已悄然发布。