< 返回版块

qwy16 发表于 2020-07-20 19:57

Tags:FBI小白, rust

【Rust日报】2020-07-20

文章类

Rust 模块系统的超清晰解释

Rust 的模块系统可能对于新人来说有些困惑,这篇文章通过几个循序渐进的小例子,让你快速且清晰的对 Rust 模块系统有一个基本的认识.

Read more

使用 Rust 实现 boids 算法 (Game)

这是 Rust 来实现经典的 Boids 算法的一系列文章的 Part1. 做游戏或者对该算法感兴趣,并且希望来学习 Rust 的同学也可以参考一下.有比较详细的过程和代码.

Read more, 关于Boids

Rate Limiting in Rust Using Redis

使用 Redis 来实现 Rate limit.

Read more

Crates

Native-Windows-GUI 发布 1.0 stable 版本

Native-Windows-Gui (NWG) 一个基于 win32 的 rust 库. 号称在 Windows 平台下开发 native GUID 最好且唯一的 Rust 库.

此外,还有一个发布一个姐妹库 Native-Windows-Derive, 可以让开发者使用 Macro 来快速构建 GUI.

Github地址 以及 NGG 指导文档

popol 更小的基于 poll 的 non-blocking IO 库

一个基于 poll 的最小 non-blocking IO 库. 作者设计的初衷是为了解决 peer-to-peer networking 中大量连接的管理问题. 作者不需要一个拥有大量依赖和复杂特性的 async/await runtime, 仅仅需要一个 non-bloking IO 库.

  • mio 更小 ( mio 的 10% 大小)
  • 而且所有的 Rust 标准库可以正常工作(例如 io::Read, io::Write)
  • 仅依赖libc
  • 没有 "runtime"

Github地址

Calcite 用于创建deno plugins的库

Github文档

例子:

cargo build --example sync
deno run --unstable --allow-plugin --allow-read --allow-write examples/sync.ts
cargo build --example async
deno run --unstable --allow-plugin --allow-read --allow-write examples/async.ts

Github地址

tide 发布 v0.12.0

主要变动:

  1. 新增 ResponseBuilder 更加方便的构建 Response.

    app.at("/").get(|_| async {
     let res = Response::builder(203)
         .body(json!({ "hello": "cats!" }))
         .header("X-Nori", "me-ow")
         .header("X-Chashu", "meewwww");
        Ok(res)
    })
    
  2. Server::listen 通过引入新的 Listener trait, 可以提供各种 transport, 默认内置对了 TcpStream,SocketAddrUnixStream的实现.

    let mut app = tide::new();
    let listener = TlsListener::build()
        .addrs("localhost:4433")
        .cert(cert)
        .key(key);
    app.listen(listener).await?;
    
  3. 此外,同时发布的还有 tide::listener::ConcurrentListener,用于处理多个 transports,例如开发者想同时处理 IPV4 和 IPV6.

    let mut app = tide::new();
    let mut listener = listener::ConcurrentListener::new();
    listener.add((Ipv4Addr::new(127, 0, 0, 1), 8000));
    listener.add((Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8000));
    app.listen(listener).await?;
    
  4. State现在必须要 clone.

  5. 迁移所有的 trait 使用 async-trait.

  6. middleware 中错误处理的改进.

Release v0.12.0

From 日报小组 FBI小白,BobQ

独立日报订阅地址:

社区学习交流平台订阅:

评论区

写评论
Neutron3529 2020-07-20 23:14

一处typo

... native GUID 最好且唯一的 Rust 库

应该是

... native GUI 的最好且唯一的 Rust 库
1 共 1 条评论, 1 页