Réseau

Pourquoi Rust ?

Une plume

Faible utilisation mémoire

Prenez le contrôle de l’utilisation des ressources systèmes pour garder la consommation CPU et mémoire à un seuil minimal. Aidez-vous du compilateur pour vous assurer de faire les choses correctement. Et faites-le avec un écosystème qui est et productif, et agréable à utiliser.

Un bouclier

Sûr et fiable

Le puissant contrôleur de type de Rust empêche toute une classe de bugs. Vous êtes sûr de savoir exactement quand et où les états sont partagés et modifiés. Vous êtes également assistés pour connaître les éventuels points d'erreur — avant le déploiement.

engrenages connectés

Concurrent à grande échelle

Utilisez n'importe quel mix d'approches concurrentes qui vous convient. Rust vous assurera que vous ne partagez pas par mégarde un état entre plusieurs threads ou tâches. Il vous donnera la capacité de tirer les performances jusqu'à la dernière goutte, sans risque.

Commencer !

Rust a un écosystème grandissant de bibliothèques faciles à utiliser pour le web. Voici deux exemples :

Poster du 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()?;
En apprendre plus sur reqwest

Gérer un POST encodé en JSON

#[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.")
    }
}
En apprendre plus sur Rocket

Utilisation en production

firefox
Migrer notre infrastructure de connexion Push vers Rust nous a fourni un moyen plus facile de maintenir le code en se concentrant sur la justesse tout en fournissant des performances fantastiques. Nous pouvons maintenant, avec nos serveurs Rust, traiter jusqu'à 20 millions de connections à la fois aux heures de pic.

– Benjamin Bangert, ingénieur opérations, Mozilla

Rust est fondamental dans la feuille de route technologique du projet Linkerd . Son système de type nous permet de construire des unités modulaires, testables et composables sans sacrifier les performances à l’exécution. Ce qui a été le plus surprenant cependant, c'est comment les systèmes de borrowing et de durée de vie nous permettent d'éviter de grandes quantités de fuites de ressources. Après deux ans, Je ne peux vraiment plus imaginer utiliser aucun autre langage pour ce travail.

– Oliver Gould, DSI, Buoyant

buoyant