使用 Rust 构建跨平台 Hacker News 阅读器
作者首先介绍了命令行界面(CLI)、文本用户界面(TUI)和图形用户界面(GUI)等不同类型的界面。然后作者解释了为什么选择使用 Rust 语言,列举了使用 Rust 的优势,如性能、安全性和并发能力。
接下来,作者详细介绍了使用 Rust 构建 TUI 应用程序的过程。他使用了 ratatui 和 reqwest 这两个 Rust 库,分别用于构建 TUI 和进行网络抓取。文章还介绍了使用 GitHub Actions 进行持续集成和持续部署(CI/CD)的过程。
https://medium.com/codex/hacker-pulse-building-a-cross-platform-hacker-news-reader-in-rust-72965e5700b9?sk=e4109da4baedf105e0a93d5e55734851
Rust中的错误处理为什么在嵌入式中很适用
错误和无结果情况在编程中是无法避免的。Rust语言通过Option和Result两种特殊类型优雅地处理这些情况。
Option表示一个值可能存在或不存在。None表示无值,Some(x)表示有值x。我们可以用match表达式或if let语法来处理Option。
Result表示一个操作可能成功(Ok(x))或失败(Err(e))。我们同样可以用match或?符号来处理不同情况。
Option和Result是Rust独有的类型,编译器可以静态检查是否正确处理了可选值和错误情况,帮助我们减少bug。
Rust的这些设计使得错误处理变得优雅简洁,提高了程序员的幸福感。
关于嵌入式Rust, 提出了在ESP32上如何控制CPU执行、设置存储器映射等问题,这些都是嵌入式系统开发中需要解决的重要问题。
https://bitfieldconsulting.com/posts/rust-errors-option-result
Rust中的类型证人
这个代码库提供了Rust中类型证人(type witness)的几种使用示例。类型证人的概念是通过构造一种类型来验证某些属性,主要优点是在编译期就完成了检查,不需要运行时开销。
代码库中列出了三种主要的类型证人用法:
在不进行类型擦除的情况下进行trait检查([bears]) 将一个值提升为类型([auth]) 将一个类型转换为值([i18n]) 附加:类型同构([equals])
第一个例子展示了如何在不擦除具体类型的情况下,通过构造一个Certified包装器类型来确保某个值实现了Bear trait。这样既能调用Bear trait方法,又能访问具体类型的方法。
https://github.com/tinybeachthor/bear_witness
Dune: 一个新型Shell
本文介绍了一种名为Dune的新型Shell,旨在提供强大的脚本编程能力。Dune结合了Bash和Lisp的特性,一方面可以执行常规的Shell操作,如管道、文件重定向和运行程序;另一方面还提供了标准库和函数式编程抽象,用于各种编程和系统管理任务。
文章给出了用Cargo安装Dune的方法,并解释了.dune-prelude文件的作用,该文件可用于设置环境变量、定义函数等。作者解释了创建Dune的初衷,希望它能提供比Bash更加亲切、个性化和可定制化的Shell体验。文中还列出了Dune支持的算术运算符,并强调它们的行为类似于Python。总的来说,Dune旨在成为一种功能强大、个性化的新型Shell。
https://adam-mcdaniel.github.io/dune-website/
--
From 日报小组 Mike
社区学习交流平台订阅:
Rustcc论坛: 支持rss 微信公众号:Rust语言中文社区