wasmer 推出 Wasmer Pack
这是一个与 WebAssembly Package Manager 和 WebAssembly Interfaces("WAI")整合的工具,可以创建可以从其他语言导入的包。
WebAssembly 软件包管理器的 WAI 附加功能,通过为你选择的语言自动生成可安装的软件包,简化了开发者在其应用程序中使用 WebAssembly 的方式。
详情请看:https://wasmer.io/posts/wasmer-takes-webassembly-libraries-manistream-with-wai
WasmEdge增加了Tokio 支持
WasmEdge 成功地移植了 tokio(一个 Rust 异步运行时)到 Wasm:https://github.com/WasmEdge/tokio。其秘诀是使用了自家基于 wasi-socket 开发的 non-blocking socket 和 poll 系统调用,替换掉了 tokio 自己的 non-blocking IO 实现。
代码实现:https://github.com/tokio-rs/mio/commit/c365b7c15b26bf1b4ee76b88b830fbb5054fd35b#diff-e56b51343750c5afbcc6759883c7834d510abb433f1f3fb404bedad21f24b5d7
Hyper 的 11 月报告
bevy_atmosphere 0.5
发布
详情请看:https://www.reddit.com/r/bevy/comments/za93oo/bevy_atmosphere_05_is_now_released/
Leptos 项目
Leptos 是一个全栈、同构的 Rust Web 框架,利用细粒度的反应性来构建声明式用户界面。
使用示例:
代码语言:javascript复制use leptos::*;
#[component]
pub fn SimpleCounter(cx: Scope, initial_value: i32) -> Element {
// create a reactive signal with the initial value
let (value, set_value) = create_signal(cx, initial_value);
// create event handlers for our buttons
// note that `value` and `set_value` are `Copy`, so it's super easy to move them into closures
let clear = move |_| set_value(0);
let decrement = move |_| set_value.update(|value| *value -= 1);
let increment = move |_| set_value.update(|value| *value = 1);
// this JSX is compiled to an HTML template string for performance
view! {
cx,
<div>
<button on:click=clear>"Clear"</button>
<button on:click=decrement>"-1"</button>
<span>"Value: " {move || value().to_string()} "!"</span>
<button on:click=increment>" 1"</button>
</div>
}
}
// Easy to use with Trunk (trunkrs.dev) or with a simple wasm-bindgen setup
pub fn main() {
mount_to_body(|cx| view! { cx, <SimpleCounter initial_value=3 /> })
}
项目地址:https://github.com/gbj/leptos
From 日报小组 @Jancd
社区学习交流平台订阅:
- Rust.cc论坛: 支持rss
- 微信公众号:Rust语言学习交流