Rust for web development
本篇blog作者是今年七月要出的rust新书Black Hat Rust
的作者,在两年前作者就已经开始尝试用Rust去进行web开发,这篇blog谈的是他开发的一些感受,一些经验,同时提到了他开发中用到了哪些crate。
Read More: https://kerkour.com/blog/rust-for-web-development-2-years-later/
MoonZoon 一个 Rust 全栈框架
维护这个框架的作者是seed
的主要维护者,所以,理所当然的在前端部分选择了seed
。
ReadMore: https://moonzoon.rs/
笨方法学习Rust所有权机制
为了真正了解Rust,我们需要了解其关键的区别于其它语言的特性: 所有权。本篇blog用了笨方法的方式来讲解Rust的所有权。
ReadMore: https://chrismorgan.info/blog/rust-ownership-the-hard-way/
WebRTC.rs
一个纯Rust实现的WebRTC栈。用Rust重写Pion的WebRTC栈。
WebRTC是一个实时P2P通信的规范。详情可以看这里:https://webrtc.org/。
现WebRTC被用于浏览器中的视频会议和语音通信。谷歌Meet或Discord voice,他们正在使用WebRTC进行数据传输。它还被用于多人游戏,文件传输,基本上任何需要 P2P 通信的事情。
官网: https://webrtc.rs/
This Week in Rust 379
379。
Read More:https://this-week-in-rust.org/blog/2021/02/24/this-week-in-rust-379/
经典 Rust 面试题六道及其解析
前天日报的六道问题答案公布在了当日论坛评论之中,考虑到有小伙伴看的是公众号,所以在此整理题目和对应解析给大家:
RwLock<T>
对想要在多线程下正确使用,T的约束是?
The type parameter T represents the data that this lock protects. It is required that T satisfies Send to be shared across threads and Sync to allow concurrent access through readers.
- 如下代码:
trait A{ fn foo(&self) -> Self; }
Box<Vec<dyn A>>;
是否可以通过编译?为什么?
不可以,参考object safe 三条规则。
Clone
与Copy
的区别是什么?
Copy
是marker trait,告诉编译器需要move的时候copy。Clone
表示拷贝语义,有函数体。不正确的实现Clone
可能会导致Copy
出BUG。
deref
的被调用过程?
Deref
是一个trait,由于rust在调用的时候会自动加入正确数量的 * 表示解引用。则,即使你不加入*也能调用到Deref
。
- Rust里如何实现在函数入口和出口自动打印一行日志?
调用处宏调用、声明时用宏声明包裹、proc_macro包裹函数、邪道一点用compiler plugin、llvm插桩等形式进行。(Go:我用snippet也行)
Box<dyn (Fn() + Send +'static)>
是什么意思?
一个可以被Send到其他线程里的没有参数和返回值的callable对象,即
Closure
,同时是 ownershiped,带有static
的生命周期,也就说明没有对上下文的引用。
再次感谢@wayslog
老师的题目和解析,同时感谢@huangjj27
的整理。
同时我看到不少小伙伴评论想要加入TG群,我只知道Rust众
[https://t.me/joinchat/BScxlkthNrn4Vo0L1dG__w
],不知道是不是大家想要加的群。
From 日报小组 Cupnfish Jancd
社区学习交流平台订阅:
评论区
写评论已更正,多谢
--
👇
rdigua: 检查一下哦 现在是: https://rustcc.cn/moonzoon.rs
--
👇
Cupnfish: 浏览器自动跳转了,所以就直接用了
https://moonzoon.rs/
毕竟*.rs
看起来要cool一点👇
rdigua: MoonZoon 貌似需要修正一下
https://github.com/MoonZoon/MoonZoon https://moonzoon.rs/
浏览器自动跳转了,所以就直接用了
https://moonzoon.rs/
毕竟*.rs
看起来要cool一点👇
rdigua: MoonZoon 貌似需要修正一下
https://github.com/MoonZoon/MoonZoon https://moonzoon.rs/