RustyDHCP - 轻量简约的 DHCP 服务器
RustyDHCP 是一个轻量简约的 DHCP 服务器,无 unsafe 代码,有如下特点:
- 无外部依赖,仅需 Rust
- 易于使用和配置
- 快速高效
- 支持跨平台
- 自定义租约文件:支持定义永久租约的"leases"文件,确保客户端始终接收相同的IP地址
同时在项目主页上提供了安装、使用和配置服务器的详细说明。
github项目地址 https://github.com/pj1234678/RustyDHCP
Rust 能否防止逻辑错误吗?
这是一篇介绍 Rust 的优势和局限的文章,作者是一位 Rust 爱好者,他认为 Rust 可以帮助他写出更少 bug 的软件,但也承认 Rust 不能防止所有的错误,尤其是逻辑错误。
文章要点如下:
- 运行时错误和逻辑错误的区别:作者区分了运行时错误和逻辑错误的概念,前者指导致程序崩溃或返回错误的情况,后者指导致程序输出不正确或不符合预期的情况。作者举了几个例子说明 Rust 可以防止一些常见的运行时错误,如空指针异常、未处理的错误、数据竞争等,但也指出了 Rust 无法检测的逻辑错误,如算术溢出、循环边界、类型转换等。
- 表达力强的语言可以帮助防止逻辑错误:作者认为一个语言的表达力可以影响它能否帮助开发者避免逻辑错误。他用 JavaScript 和 Rust 比较了几个场景,如数组遍历、数据库类型检查、并发数据访问等,说明了 Rust 如何通过强类型系统、所有权机制、可变性控制等特性来强制开发者考虑潜在的逻辑错误,并在编译时发现和修复它们。
作者也提到了一些其他的形式化验证方法,如 Agda 和 Coq 等,但它们超出了本文的范围。
原文链接 https://itsallaboutthebit.com/logic-errors-in-rust/
关于 rustc_codegen_cranelift 的进展报告 (2023年10月)
这是一个基于 Cranelift 的 Rust 编译器后端项目。该项目的目标是为 Rust 编译器创建一个基于 Cranelift 的代码生成后端(类似 LLVM),这有可能优化 debug 模式下的编译时间。
自上次的进展报告以来,有很多令人兴奋的进展!自上次进展报告以来,已有 180 次提交。
报告的主要内容:
- rustc_codegen_cranelift 目前在 nightly 版本上可用:用户可以通过特定的命令安装并使用它。
- 支持的目标:目前支持的目标包括 x86_64-unknown-linux-gnu、x86_64-unknown-linux-musl、x86_64-apple-darwin、aarch64-unknown-linux-gnu 和 aarch64-unknown-linux-musl。目前尚未支持 Windows。
- 移动到 rust-lang 组织:Rustc_codegen_cranelift 现在是 rust-lang github 组织的一部分。
- Risc-V 支持:Cranelift 已经有了一个 riscv64 后端,最近一些功能已经被实现,以及一些 bug 修复,使 cg_clif 在 linux riscv64gc 上工作。
- SIMD:实现了更多的 x86_64 和 arm64 供应商内部函数。此外,还实现了 std::simd 使用的新的平台独立simd内部函数。
- 内联汇编:现在在 arm64 和 riscv64 以及 macOS 和 Windows 上支持内联汇编。
当然,还存在一些挑战,欢迎大家积极贡献:
- SIMD:很多 core::arch 中的平台特定供应商内部函数目前不受支持。
- 在堆栈展开时进行清理:Cranelift 目前不支持在堆栈展开期间进行清理。
github项目地址 https://github.com/rust-lang/rustc_codegen_cranelift
原文链接 https://bjorn3.github.io/2023/10/31/progress-report-oct-2023.html
rustc_codegen_cranelift 历史进展 https://bjorn3.github.io/
-- From 日报小组 RustPlumber
社区学习交流平台订阅:
- Rust.cc 论坛: 支持 rss
- 微信公众号:Rust 语言中文社区