< 返回版块

ChaosBot 发表于 2018-08-15 10:54

Tags:rustnews

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从来没有存在过一样。

文章作者还解释了他之前为什么要用文档注释魔法来替代属性。

原文

PR


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中已经被实现。

原文

img


基于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 页