网络

为什么选择 Rust?

A feather

低占用空间

控制资源使用,将内存和 CPU 占用空间降至最低。借助编译器的帮助,确保代码正确无误。并使用一个高效且易于使用的生态系统来完成这些操作。

A shield

安全可靠

Rust 的强大类型检查器可以防止整类错误。确保您准确了解状态共享和变异的时间和位置。在部署之前获得帮助来捕获故障点。

Connected gears

大规模并发

使用任何适合您的并发方法组合。Rust 将确保您不会意外地在线程或任务之间共享状态。它使您能够无畏地榨取每一丝可扩展性。

开始吧!

Rust 拥有不断增长的 Web 易用库生态系统。以下仅举两个例子

发布一些 JSON

// This will POST a body of
//     `{"lang": "rust", "body": "json"}`
#[derive(Serialize)]
struct Body<'a> {
    lang: &'a str,
    body: &'a str,
}

let client = reqwest::Client::new();
let res = client.post("http://httpbin.org/post")
    .json(&Body {
        lang: "rust",
        body: "json",
    })
    .send()?;
了解更多关于 reqwest 的信息

处理 JSON POST

#[derive(Deserialize)]
struct Task { name: String, completed: bool }

#[post("/", data = "<task>")]
fn new(task: Json<Task>) -> Flash<Redirect> {
    if task.name.is_empty() {
        Flash::error(Redirect::to("/"),
            "Cannot be empty.")
    } else {
        Flash::success(Redirect::to("/"),
            "Task added.")
    }
}
了解更多关于 Rocket 的信息

生产使用

firefox
将我们的推送连接基础设施迁移到 Rust 为我们提供了一个更易于维护的代码库,重点关注正确性,同时提供出色的性能。现在,我们在高峰时段使用 Rust 服务器处理多达 2000 万个 websocket 连接。

– Benjamin Bangert,Mozilla 员工工程师

Rust 是 Linkerd 项目技术路线图的基础。它的类型系统使我们能够构建模块化、可测试、可组合的单元,而不会牺牲运行时性能。然而,最令人惊讶的是,Rust 的生命周期/借用检查系统如何使我们能够避免大量资源泄漏。经过 2 年,我真的无法想象使用其他任何语言来完成这项工作。

– Oliver Gould,Buoyant 首席技术官,Buoyant

buoyant