Rustfmt 1.0 发布预告
当前 0.99.2版本,将作为Rustfmt 1.0 RC版本,将在9.13号进入stable Rust
Tower Web 0.2 发布
上周 Tower Web才发布了0.1,其中使用了注释魔法来替代Rust的属性功能。
impl_web! {
impl HelloWorld {
/// @get("/")
fn hello_world(&self) -> Result<String, ()> {
Ok("Hello world".to_string())
}
}
}
比如上面的 /// @get("/")
。 然后serde、syn、quote的作者dtolnay看不下去了,就给提交了一个PR,将文档注释魔法改成了 属性的写法
impl_web! {
impl HelloWorld {
#[get("/")]
fn hello_world(&self) -> Result<String, ()> {
Ok("Hello world".to_string())
}
}
}
于是Tower Web的作者就赶紧发布了0.2版本,就当0.1从来没有存在过一样。
文章作者还解释了他之前为什么要用文档注释魔法来替代属性。
Futrues 0.3 - alpha 3发布
主要发布了 0.3和0.1的兼容层,现在可以在Tokio的executor上运行0.3 futures和async函数了
Rust 和Wasm 本周报告第6期
简要:
- 正在为wasm添加SIMD 128位矢量类型的支持
- 让Firefox的debbuger工具可以使用DWARF调试信息对Rust+Wasm的内联栈帧进行调试,WebAssembly官方成立了调试小组
- wasm-bindgen 0.2.16发布
- 首次发布wasm-bindgen-futures,支持在Rust Futures和JavaScript Promises之间无缝切换。
- 在wasm book中增加了两章:「你应该知道的工具」以及「你应该知道的crate」
- rustwasm组收到了新的RFC: 通过wasm-bindgen实现Rust的trait和Javascript的类继承的无缝切换。此功能在stdweb中已经被实现。
基于ggez框架和ECS架构实现的游戏
WebAssembly: How and Why
WebAssembly对JavaScript和Web开发的未来意味着什么?
为什么需要WebAssembly?
- 将许多其他应用程序能做的事带到浏览器上,比如运行大型游戏、渲染等需要大量计算的事情
- Web才是未来,真正的通用平台
- WebAssembly提供了速度、可移植性和灵活性。 wasm文件大小比js更小,速度更快,更可靠的性能保证
- WebAssembly提供了可移植性。不仅仅是Web可用,其他平台也可用,包括iOS和Android、区块链等。
- WebAssembly提供了巨大的灵活性。JS将不再是浏览器支持的唯一语言,在遇到瓶颈的时候,开发者可以选择任意喜欢的其他语言(包括js本身)来优化现有js系统的性能,并且是无缝对接。目前C、C++、Rust、Kotlin和.NET均先后增加支持
WebAssembly如何工作?
- 需要一个将代码编译为WASM的工具。C/C++通过LLVM和Emscripten,而Rust编译器可以直接编译wasm。
- 将编译出来的wasm通过js加载,可以和js无缝互通
未来?
- 正在开发新的特性
- 比如支持dom、线程和垃圾回收
- 支持调试工具
- 虽然js无法直接编译为wasm,但是有工具可以将js转换为wasm的文本格式,然后再转为wasm
Rust和WASM实现的交互式文本游戏
最流行的一个是Z-Machine,该网站就是Z-Machine的Rust和WASM实现
1
共 0 条评论, 1 页
评论区
写评论还没有评论