Rust

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page Rust and the translation is 100% complete.
Other languages:

Rust est un langage de programmation multi-paradigmes, de haut niveau et à usage général. Rust met l'accent sur les performances, la sécurité des types et la simultanéité. Rust applique la sécurité de la mémoire, c'est-à-dire que toutes les références pointent vers une mémoire valide sans nécessiter l'utilisation d'un ramasse-miettes (garbage collector) ou d'un compteur de références présent dans d'autres langages sécurisés pour la mémoire.

Module

Le compilateur Rust est disponible sous forme de module.

Question.png
[name@server ~]$ module spider rust

Installer un crate

Un paquet écrit en Rust s'appelle un crate.

1. Chargez les modules requis.

Question.png
[name@server ~]$ module load gcc/9.3.0 rust

2. Construisez et installez le crate localement. Cela doit être fait à partir d'un nœud de connexion.

Question.png
[name@server ~]$ cargo install ungoliant

3. Testez le binaire.

Question.png
[name@server ~]$ $HOME/.cargo/bin/ungoliant -h

Vous pouvez également ajouter .cargo/bin à votre $PATH avec export PATH="$HOME/.cargo/bin:$PATH".

Utiliser le compilateur nightly

Puisque certaines fonctionnalités ne sont pas encore stables, elles ne sont pas incluses dans la version stable offerte, mais sont cependant utilisées par certains crates. Par exemple, si vous voulez utiliser la version nightly du compilateur, vous pouvez l'installer localement.

1. Installez le compilateur en tant que module local.

Question.png
[name@server ~]$ eb Rust-1.53.0.eb --try-software-version=nightly --disable-enforce-checksums

2. Chargez le module local.

Question.png
[name@server ~]$ module load rust/nightly