【Rust日报】2024-05-09 使用 Tokio 编写多线程聊天服务器

2024-05-11 10:58:42 浏览数 (1)

项目 - ctreg ,编译时正则表达式

ctreg 是一个用于编译时处理正则表达式的库,其核心理念是在编译阶段就处理正则表达式,以提高运行效率并避免运行时错误。

  • 正则表达式在编译时就已确定,无需在运行时解析,从而加快正则表达式对象的构建速度,同时避免了运行时可能出现的解析错误。
  • ctreg 同样生成一个包含所有命名捕获组的类型,这种方法较之在运行时通过字符串或数字键访问捕获组的传统方式提供更好的用户体验。

尽管声称 "编译时正则表达式",但是 ctreg 实际完成的工作相当于是在编译时进行解析和验证,详细讨论可以参考下面的 Reddit 帖子,其中包含了 regex crate 作者 burntsushi 对这个库的相关讨论 。

docs.rs - ctreg: https://docs.rs/ctreg/latest/ctreg/

New crate announcement: ctreg! : https://www.reddit.com/r/rust/comments/1cmxydb/new_crate_announcement_ctreg_compiletime_regular/

教程 - 使用 Tokio 编写多线程聊天服务器

来自 @pretzelhammer 的渐进式教程,面向并发编程初学者,展示了如何使用 Rust 和 Tokio 实现一个多线程聊天服务器。

代码语言:javascript复制
$ just telnet # concurrent client 1
> 1: hello # msg 1
1: hello ❤️
> 1: anybody there? # msg 2
1: anybody there? ❤️
2: i am right here ❤️
2: how are you ❤️
> 1: i am doing great # msg 5

除了聊天服务器相关功能的代码实现之外,文章还介绍了关于 Future、锁、错误处理的一些相关知识。

Beginner's Guide to Concurrent Programming: Coding a Multithreaded Chat Server using Tokio : https://github.com/pretzelhammer/rust-blog/blob/master/posts/chat-server.md

This Week In Rust 546

新一期的 Rust 周报速递发布,快来看看有哪些内容你曾经关注过 :)

This Week In Rust 546: https://this-week-in-rust.org/blog/2024/05/08/this-week-in-rust-546/

From 日报小组 PsiACE

0 人点赞