在开发无法实际访问的远程硬件系统时(如火星探测器或海洋航运器),应该采用何种编程语言和设计理念
这篇文章讨论了在开发无法实际访问的远程硬件系统时(如火星探测器或海洋航运器),应该采用何种编程语言和设计理念。作者对比了两种观点:
Rust语言的理念是在开发初期就确保程序的正确性,这样一旦部署就可以永久运行而无需修补。
Elixir/BEAM VM语言的理念是允许出错,但提供了恢复错误的机制,即"让它崩溃"(Let it crash)。
一位评论者提到,虽然无法远程修补代码,但硬件本身也可能会发生老化等物理故障。他认为如果真的无法修补,Rust的理念会让人更加放心。但要注意除了类型安全外,还需要使运行时系统具备容错其他硬件降级错误的能力。
另一位评论者指出,即使是火星探测器这种极端情况,NASA也曾利用Lisp的REPL在1.5亿英里外成功远程调试过代码。因此即使无法修补,通过良好的设计也不是完全无法调试和恢复。
https://www.reddit.com/r/elixir/comments/1gp34om/language_philosophies_for_distant_hardware/
Alum - Rust实现的类OpenMesh的网格库
Alum使用半边数据结构(Halfedge)实现的多边形网格库。它的灵感来自于OpenMesh,因此API与OpenMesh非常相似。作者由于在Rust中找不到等效的库,因此编写了这个库。该库目前的功能是为了服务于作者的其他项目,与OpenMesh的Core模块功能相当,将来可能还会根据需要添加新功能。
该库可以通过crates.io作为依赖添加到Rust项目中。它默认使用glam提供几何类型(如点、法向量等),也可以通过实现适配器使用自定义几何类型。该库还包含了一个属性系统,类似于OpenMesh但做了一些改进,使用RefCell确保运行时借用检查。属性会随着网格元素的增删和垃圾回收而自动同步。文档中有更多关于使用属性系统的详细说明。
https://github.com/ranjeethmahankali/alum/
Flusso - 高性能的Kubernetes Ingress控制器
Flusso是一个用Rust语言编写的轻量级、高性能的Kubernetes Ingress控制器。它为现代云原生环境提供了安全性和灵活性。以下是Flusso的主要特点:
轻量级和高速:使用Rust编写,占用资源少。 高级负载均衡:支持自定义负载均衡算法。 安全设计:实现了现代TLS协议。 动态后端:自动根据Kubernetes服务变化更新路由。 灵活配置:可通过YAML文件或环境变量轻松配置。 最小依赖关系:避免不必要的依赖项。
您可以使用Docker或Helm在Kubernetes集群中部署Flusso。它通过监视Ingress资源自动将传入流量路由到服务。Flusso还提供Web GUI用于监控后端和路由。
https://github.com/DioCrafts/flusso
rust-portscanner - 多线程端口扫描器
这是一个用Rust编写的简单高效的多线程端口扫描器。它可以扫描指定主机上的开放和关闭的服务器端口。主要特点包括:
多线程扫描:利用所有可用的CPU内核,最大化扫描过程的性能和速度。
并发性:利用tokio运行时进行异步网络操作。
用户友好的命令行界面:使用clap进行命令行参数解析。
该项目需要Rust、tokio异步运行库、clap命令行参数解析库和可用CPU内核数。可以通过git克隆仓库,使用cargo构建和运行:
cargo build --release
./target/release/port_scanner
总的来说,这是一款功能强大的Rust编写的端口扫描工具。
https://github.com/ash2228/rust-portscanner
--
From 日报小组 Mike
社区学习交流平台订阅:
Rustcc论坛: 支持rss 微信公众号:Rust语言中文社区