< 返回版块

Cupnfish 发表于 2021-02-25 20:04

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 面试题六道及其解析

前天日报的六道问题答案公布在了当日论坛评论之中,考虑到有小伙伴看的是公众号,所以在此整理题目和对应解析给大家:

  1. 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.

  1. 如下代码:
trait A{ fn foo(&self) -> Self; }
Box<Vec<dyn A>>;

是否可以通过编译?为什么?

不可以,参考object safe 三条规则。

  1. CloneCopy 的区别是什么?

Copy是marker trait,告诉编译器需要move的时候copy。Clone表示拷贝语义,有函数体。不正确的实现Clone可能会导致Copy出BUG。

  1. deref 的被调用过程?

Deref 是一个trait,由于rust在调用的时候会自动加入正确数量的 * 表示解引用。则,即使你不加入*也能调用到Deref

  1. Rust里如何实现在函数入口和出口自动打印一行日志?

调用处宏调用、声明时用宏声明包裹、proc_macro包裹函数、邪道一点用compiler plugin、llvm插桩等形式进行。(Go:我用snippet也行)

  1. Box<dyn (Fn() + Send +'static)> 是什么意思?

一个可以被Send到其他线程里的没有参数和返回值的callable对象,即 Closure,同时是 ownershiped,带有static的生命周期,也就说明没有对上下文的引用。

再次感谢@wayslog老师的题目和解析,同时感谢@huangjj27的整理。

同时我看到不少小伙伴评论想要加入TG群,我只知道Rust众[https://t.me/joinchat/BScxlkthNrn4Vo0L1dG__w ],不知道是不是大家想要加的群。

From 日报小组 Cupnfish Jancd

社区学习交流平台订阅:

评论区

写评论
作者 Cupnfish 2021-02-26 13:05

已更正,多谢

--
👇
rdigua: 检查一下哦 现在是: https://rustcc.cn/moonzoon.rs

--
👇
Cupnfish: 浏览器自动跳转了,所以就直接用了 https://moonzoon.rs/毕竟*.rs看起来要cool一点

👇
rdigua: MoonZoon 貌似需要修正一下

https://github.com/MoonZoon/MoonZoon https://moonzoon.rs/

作者 Cupnfish 2021-02-25 21:16

浏览器自动跳转了,所以就直接用了 https://moonzoon.rs/毕竟*.rs看起来要cool一点

👇
rdigua: MoonZoon 貌似需要修正一下

https://github.com/MoonZoon/MoonZoon https://moonzoon.rs/

1 共 2 条评论, 1 页