【Rust日报】 2019-05-17
「讨论」mio异步計時器如何使用?
官方說明文件
沒有範例程式碼,其實很難了解怎麼用
回覆中有人給出了答案
extern crate mio;
extern crate mio_extras;
use mio::*;
use mio_extras::timer::{Timer, Builder};
use std::time::Duration;
fn main()
{
const TIMER: Token = Token(2);
let poll = Poll::new().unwrap();
let mut gman: Timer<u64> = Default::default();
poll.register(&gman, TIMER, Ready::readable(), PollOpt::edge()).unwrap();
let mut gman_tout1;
let mut events = Events::with_capacity(1024);
gman_tout1 = gman.set_timeout(Duration::from_millis(2000), 9001);
gman.cancel_timeout(&gman_tout1);
loop {
poll.poll(&mut events, None).unwrap();
for event in &events {
match event.token() {
TIMER => {
println!("Timer-Event!");
if gman.poll() == Some(9001) {
println!("my timeout occured");
}
},
_ => println!("awkward"),
}
}
}
}
Read more
「比原生更快:在 Linux 内核中运行 WebAssembly」
WASM 運行在kernel 會得到性能跟靈活性,
作者覺得是一個很有前景的應用,
我個人覺得WASM之後應該會加上一些IO函數變成一個跨平台的新標準。
(文章里主要是说wasmer这个WASM运行时)
中文介紹 Read more
一个通用型嵌入式芯片烧录软件
目前还只支持windows和st-link,长远目标是代替OpenOCD。目前比竞品好的地方是可以同时烧两个芯片,这样做双机通讯测试就不用插拔dongle了
来自 @洛佳
Read more
零成本抽象
官方核心团队无船同志的新博文,探讨了「零成本抽象」。
零成本抽象在C++跟Rust是一個很重要的概念
簡單來說就是:不希望有很大很重的runtime,並且可以在編譯時被優化。
作者覺得 rust 有幾個很棒的 零成本抽象
所有權、借用保證内存的正確使用
迭代器、閉包函數可以輕鬆的串接 map, filter 等函數做處理
await 异步函數當前的await語法雖然還沒有確定,但使用pinning 做到零成本抽象是確定的
Unsafe 函數、模块邊界由於rust的語法複雜性,有很多實作會需要Unsafe的底層實作
這些Unsafe函數實作了零成本抽象的底層
讓我們在上層能安全的使用這些模块
另外无船同志还表示:trait对象目前不是零成本抽象,他想花点时间(至少需要18个月)去研究这个问题,然而总是有更优先的事情。
Reddit 讨论 Read Morewasm-bindgen v0.2.44 开始支持futures 0.3和async/await
wasm 已經可以使用 async了,快看看怎麼用吧
Reddit讨论 Read MoreTerraform 產生3D地形
透過google map得到高度圖,再轉換成3D模形
裡面影片是youtube
Read more
From 日报小组 @Damody 责编 @Chaos
日报订阅地址:
独立日报订阅地址:
Telgram Channel 阿里云语雀订阅 Steemit GitHub社区学习交流平台订阅:
Rust.cc论坛: 支持rss Rust Force: 支持rss 微信公众号:Rust语言学习交流文章来源:
Author:Rust.cc
link:https://rust.cc/article?id=913a0467-9633-4b76-8a59-1cc6847290f5