<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Thibaut Roche</title>
    <description>The latest articles on DEV Community by Thibaut Roche (@aeradriel).</description>
    <link>https://dev.to/aeradriel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F917881%2F906549a4-049d-461b-a387-1acc0021a0cb.jpeg</url>
      <title>DEV Community: Thibaut Roche</title>
      <link>https://dev.to/aeradriel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aeradriel"/>
    <language>en</language>
    <item>
      <title>Notre première route avec Rocket</title>
      <dc:creator>Thibaut Roche</dc:creator>
      <pubDate>Tue, 06 Sep 2022 07:16:44 +0000</pubDate>
      <link>https://dev.to/aeradriel/notre-premiere-route-avec-rocket-30ad</link>
      <guid>https://dev.to/aeradriel/notre-premiere-route-avec-rocket-30ad</guid>
      <description>&lt;h2&gt;
  
  
  Ajout de Rocket à notre projet
&lt;/h2&gt;

&lt;p&gt;Bon, il est maintenant temps de se salir les mains et d'ajouter notre framework web à notre projet. Nous utiliserons &lt;a href="https://rocket.rs/"&gt;Rocket&lt;/a&gt; car c'est à mon sens la crate la plus facile à appréhender et à mettre en place. Vous pouvez également consulter la crate &lt;a href="https://actix.rs/"&gt;actix-web&lt;/a&gt; qui peut être une très bonne alternative.&lt;br&gt;
Pour les personnes n'étant pas familières avec le concept de crates, il s'agit de librairies (plugins, package...) permettant d'étendre les fonctionnalités du langage sans avoir besoin de réinventer la roue.&lt;/p&gt;

&lt;p&gt;Si vous utilisez la crate &lt;code&gt;cargo-edit&lt;/code&gt; vous pouvez simplement taper &lt;code&gt;cargo add rocket&lt;/code&gt; dans votre terminal. Sinon, ajoutez simplement la version à votre fichier Cargo. Pour cet article, nous utiliserons la version &lt;code&gt;0.5.0-rc.2&lt;/code&gt;. Votre Cargo.toml devrait maintenant ressembler à ça :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[package]&lt;/span&gt;
&lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"web_server"&lt;/span&gt;
&lt;span class="py"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.1.0"&lt;/span&gt;
&lt;span class="py"&gt;edition&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"2021"&lt;/span&gt;

&lt;span class="nn"&gt;[dependencies]&lt;/span&gt;
&lt;span class="py"&gt;rocket&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.5.0-rc.2"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On est paré ! Commençons à coder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Créons notre première route
&lt;/h2&gt;

&lt;p&gt;Mettre en place un serveur web en Rust avec Rocket est vraiment (très) simple. Qui a dit que le Rust était seulement un langage de bas niveau ?&lt;/p&gt;

&lt;p&gt;Remplaçons le contenu de notre &lt;code&gt;main.rs&lt;/code&gt; et voyons ce que ça donne.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="nd"&gt;#[macro_use]&lt;/span&gt;
&lt;span class="k"&gt;extern&lt;/span&gt; &lt;span class="k"&gt;crate&lt;/span&gt; &lt;span class="n"&gt;rocket&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nd"&gt;#[get(&lt;/span&gt;&lt;span class="s"&gt;"/health"&lt;/span&gt;&lt;span class="nd"&gt;)]&lt;/span&gt;
&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;healthcheck&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="k"&gt;'static&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"OK"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nd"&gt;#[launch]&lt;/span&gt;
&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;rocket&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nn"&gt;rocket&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;build&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="nf"&gt;.mount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nd"&gt;routes!&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;healthcheck&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Les deux premières lignes nous permettent d'utiliser les macros de Rocket telles que &lt;code&gt;get&lt;/code&gt; ou &lt;code&gt;launch&lt;/code&gt;. Vous devriez être familier avec ça si vous avez déjà fait du Rust. Vous pouvez aussi décider de retirer ces lignes et n'importer que les macros dont vous avez besoin.&lt;/p&gt;

&lt;p&gt;La macro &lt;code&gt;get&lt;/code&gt; transforme notre simple fonction en un endpoint pour notre API. Elle prend en paramèter une string qui correspond au chemin de notre endpoint (à noter que cette route peut être préfixée comme nous le verrons ci-après). Ce n'est évidemment pas la seule macro de ce type et il en existe d'autres correspondant à tous les &lt;a href="https://api.rocket.rs/v0.4/rocket/index.html#attributes"&gt;verbes HTTP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Notez qu'une route peut retourner n'importe quel type implémentant le trait &lt;code&gt;Responder&lt;/code&gt;. Il est déjà implémenté pour certains types tels que &lt;code&gt;&amp;amp;str&lt;/code&gt;, &lt;code&gt;String&lt;/code&gt;, ou encore &lt;code&gt;Json&lt;/code&gt; mais vous pouvez aussi l'implémenter pour vos propres types. Je vous encourage à aller consulter &lt;a href="https://rocket.rs/v0.5-rc/guide/responses/"&gt;cette page&lt;/a&gt; si vous souhaitez en savoir plus sur le trait &lt;code&gt;Responder&lt;/code&gt; et les réponses en général.&lt;/p&gt;

&lt;p&gt;Finalement, la macro &lt;code&gt;launch&lt;/code&gt; génère une fonction main qui appelle la fonction &lt;code&gt;launch&lt;/code&gt; de la structure retournée par la fonction à laquelle la macro est appliquée. En l'occurrence, le code généré serait le suivant :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="nd"&gt;#[rocket::main]&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;rocket&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="nf"&gt;.launch&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enfin, en ce qui concerne la fonction &lt;code&gt;rocket()&lt;/code&gt; elle-même, elle se contente de monter les routes transmises en paramètre, préfixées du chemin indiqué. Notez qu'il est tout à fait possible d'appeler plusieurs fois la fonction &lt;code&gt;mount&lt;/code&gt; si l'on souhaite monter différentes routes avec différents préfixes (nous aurons l'occasion d'y revenir plus tard dans cette série d'articles).&lt;/p&gt;

&lt;p&gt;Nous pouvons maintenant lancer le serveur en tapant la commande &lt;code&gt;cargo run&lt;/code&gt; dans notre terminal et voir les lignes suivantes nous indiquant que le serveur a démarré avec succès.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Configured for debug.
   &amp;gt;&amp;gt; address: 127.0.0.1
   &amp;gt;&amp;gt; port: 1234
   &amp;gt;&amp;gt; workers: 8
   &amp;gt;&amp;gt; ident: Rocket
   &amp;gt;&amp;gt; limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB
   &amp;gt;&amp;gt; temp dir: C:\Users\Thibaut\AppData\Local\Temp\
   &amp;gt;&amp;gt; http/2: true
   &amp;gt;&amp;gt; keep-alive: 5s
   &amp;gt;&amp;gt; tls: disabled
   &amp;gt;&amp;gt; shutdown: ctrlc = true, force = true, grace = 2s, mercy = 3s
   &amp;gt;&amp;gt; log level: debug
   &amp;gt;&amp;gt; cli colors: true
Routes:
   &amp;gt;&amp;gt; (healthcheck) GET /health
Fairings:
   &amp;gt;&amp;gt; Shield (liftoff, response, singleton)
registering event source with poller: token=Token(0), interests=READABLE | WRITABLE
Shield:
   &amp;gt;&amp;gt; X-Frame-Options: SAMEORIGIN
   &amp;gt;&amp;gt; Permissions-Policy: interest-cohort=()
   &amp;gt;&amp;gt; X-Content-Type-Options: nosniff
Rocket has launched from http://127.0.0.1:1234
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rendez-vous dans votre navigateur à l'adresse indiquée (en n'oubliant pas d'y ajouter le chemin de notre endpoint) et vous devriez voir le contenu souhaité à savoir "OK".&lt;/p&gt;

&lt;h2&gt;
  
  
  Changer la configuration avec le ficher Rocket.toml
&lt;/h2&gt;

&lt;p&gt;Vous souhaitez peut-être configurer votre serveur Rocket pour qu'il se lance sur un port différent, avec un niveau de log plus ou moins élevé ou encore changer le nombre de workers ? Peut-être souhaitez vous aussi avoir des configurations différentes dépendamment des environnements dans lesquels sont déployés l'application ? Bonne nouvelle, le fichier &lt;code&gt;Rocket.toml&lt;/code&gt; est là pour ça.&lt;/p&gt;

&lt;p&gt;Dans ce fichier, vous pouvez spécifier comment lancer votre serveur et configurer celui-ci par profil. Vous pouvez aussi avoir des configurations par défaut ou au contraire des configurations écrasant toutes les autres valeurs.&lt;/p&gt;

&lt;p&gt;Voici une exemple de configuration. Vous pouvez trouver tous les champs disponibles dans &lt;a href="https://rocket.rs/v0.5-rc/guide/configuration/"&gt;la documentation&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[debug]
address = "127.0.0.1"
port = 1234
log_level = "debug"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dans le prochain article, nous irons un peu plus loin en ajoutant un système d'authentification à notre serveur !&lt;/p&gt;

</description>
      <category>rust</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>rocket</category>
    </item>
    <item>
      <title>Rust : Comment avoir un backend performant et résilient?</title>
      <dc:creator>Thibaut Roche</dc:creator>
      <pubDate>Tue, 30 Aug 2022 10:31:00 +0000</pubDate>
      <link>https://dev.to/aeradriel/comment-avoir-un-backend-performant-et-resilient-1485</link>
      <guid>https://dev.to/aeradriel/comment-avoir-un-backend-performant-et-resilient-1485</guid>
      <description>&lt;h2&gt;
  
  
  Les serveurs web
&lt;/h2&gt;

&lt;p&gt;Les serveurs web sont partout de nos jours. Légion sont les sites ne reposant plus simplement sur du HTML et du CSS pour afficher du contenu à leurs utilisateurs mais aussi sur un serveur (un "backend") afin de pouvoir leur offrir plus (e.g. une authentification, de la persistance, etc…).&lt;/p&gt;

&lt;p&gt;Ces serveurs sont à l'origine d'une grande partie des "actions" effectuées par une application (que l'on parle de site web, application mobile ou tout autre application ayant recours à un service) et permettent de retourner des données ainsi que parfois en sauvegarder dans une base de données. Le serveur web parfait a donc plusieurs atouts. Parmi eux on compte :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;La performance&lt;/strong&gt; : un serveur lent impliquera des requêtes qui traînent dans le temps et par conséquent une expérience utilisateur dégradée.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;La sécurité&lt;/strong&gt; : un serveur non sécurisé pourra voir ses données volées ou modifiées.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;La stabilité&lt;/strong&gt; : un serveur buggé dégradera encore une fois l'expérience utilisateur allant parfois jusqu'à rendre un service totalement inutilisable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les technologies du web ont beaucoup évolué ces dernières années. Là où le PHP était un standard il y a 10/15 ans on observe maintenant une grande diversité dans les langages et les outils nous permettant de construire des services web. Parmi les langages on peut notamment citer Ruby,  Java, Python, Javascript et bien d'autres ! Si chacun a bien évidemment ses avantages, ils sont évidemment aussi livrés avec leurs mauvais côtés. Ainsi un langage comme le Ruby, très facile d'accès et avec lequel on peut faire beaucoup de choses très rapidement, ne sera pas aussi performant qu'un langage compilé comme le C# par exemple.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le Rust
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bon, c'est bien beau tout ça mais où est-ce que tu veux en venir ?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Et bien tout simplement au Rust. Pour ceux qui ne connaissent pas le Rust, c'est un langage développé initialement chez Mozilla (dans le but de construire un nouveau moteur web nommé "Servo") puis soutenu par la "Rust Foundation" depuis 2020. La promesse du Rust est d'offrir un langage performant, fiable et productif.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Les performances du Rust se rapprochent de celles du C, la référence en terme de rapidité.&lt;/li&gt;
&lt;li&gt;Le langage est, grâce à son système de typing et d'ownership, thread safe et memory safe; ce qui limite un grand nombre d'erreurs.&lt;/li&gt;
&lt;li&gt;Enfin Rust dispose d'une excellente documentation, d'un compilateur bienveillant, avec des messages d'erreur utiles, et d'outils de premier ordre, le tout assurant une excellente expérience de code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En bref, le Rust a su tirer des leçons de ses prédécesseurs afin de profiter des points forts de chacun tout en y ajoutant ses propres atouts. C'est pour cette raison qu'il est devenu un choix de premier ordre pour les backends web.&lt;/p&gt;

&lt;p&gt;Dans cette série d'articles, nous étudierons comment monter un serveur web en Rust, de la mise en place du workspace jusqu'à la mise en production, en passant par l'authentification ou la connexion à une base de données.&lt;/p&gt;

&lt;p&gt;Une connaissance de base du langage Rust est requise afin de suivre au mieux les différentes étapes. Si ce n'est pas votre cas, n'hésitez pas à ouvrir le Book Rust sur un autre onglet pendant votre lecture !&lt;/p&gt;

&lt;p&gt;Dans la prochaine partie, nous installerons notre workspace afin de pouvoir coder dans les meilleures conditions possibles.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Mise en place du workspace</title>
      <dc:creator>Thibaut Roche</dc:creator>
      <pubDate>Tue, 30 Aug 2022 10:31:00 +0000</pubDate>
      <link>https://dev.to/aeradriel/mise-en-place-du-workspace-4e8m</link>
      <guid>https://dev.to/aeradriel/mise-en-place-du-workspace-4e8m</guid>
      <description>&lt;h2&gt;
  
  
  Installation de Rust
&lt;/h2&gt;

&lt;p&gt;Tout d'abord, nous devons installer Rust. Pour cela, je recommande d'utiliser rustup afin de pouvoir facilement gérer et mettre à jours nos toolchains.&lt;/p&gt;

&lt;p&gt;Si vous êtes un utilisateur Linux, vous pouvez simplement lancer cette commande dans votre terminal : &lt;code&gt;curl - proto '=https' - tlsv1.2 -sSf https://sh.rustup.rs | sh&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Si vous utilisez Windows, vous devez télécharger et installer &lt;a href="https://www.rust-lang.org/tools/install"&gt;l'exécutable d'installation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Un fois installé, vous pouvez vérifier le succès de la procédure en tapant rustup -v dans un terminal. Cela devrait afficher à la fois la version de rustup (gestionnaire de toolchains) ainsi que de rustc (compilateur).&lt;/p&gt;

&lt;p&gt;Maintenant, il n'en tient qu'à vous de décider de la toolchain que vous souhaitez utiliser.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stable : limiter un maximum les bugs.&lt;/li&gt;
&lt;li&gt;Nightly : accéder aux dernières fonctionnalités.&lt;/li&gt;
&lt;li&gt;Beta : un mix des deux.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour cet article, supposons que nous souhaitons travailler avec la version "nightly" de Rust :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rustup default nightly&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation de VSCode &amp;amp; Rust Analyzer
&lt;/h2&gt;

&lt;p&gt;Quand il s'agit d'écrire du code en Rust, je recommande souvent l'utilisation de &lt;a href="https://rust-analyzer.github.io/"&gt;Rust Analyzer&lt;/a&gt;. En effet, cet outil améliore votre IDE sur de nombreux aspects. Par exemple :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://rust-analyzer.github.io/manual.html#magic-completions"&gt;Complétion de code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rust-analyzer.github.io/manual.html#completion-with-autoimport"&gt;Auto-import&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rust-analyzer.github.io/manual.html#inlay-hints"&gt;Types des variables et paramètres inline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rust-analyzer.github.io/manual.html#semantic-syntax-highlighting"&gt;Highliting semantique de la syntaxe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Et bien d'autres…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://code.visualstudio.com/"&gt;VSCode&lt;/a&gt; étant l'éditeur le mieux supporté, c'est celui-ci que nous utiliserons dans cet article. Cependant, Rust Analyzer s'intègre aussi avec d'autres éditeurs. Je vous encourage donc à consulter le &lt;a href="https://rust-analyzer.github.io/manual.html"&gt;manuel&lt;/a&gt; si vous souhaitez l'intégrer à votre IDE favori.&lt;/p&gt;

&lt;p&gt;Une fois VSCode installé, afin d'installer Rust Analyzer, il suffit de se rendre dans l'onglet des plugins à gauche de la fenêtre.&lt;/p&gt;

&lt;p&gt;Aussi vous trouverez ci-après quelques autres plugins pouvant rendre votre vite plus facile lors du développement en Rust :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better TOML : Pratique pour les fichiers de configuration, ajoute le support des fichiers toml.&lt;/li&gt;
&lt;li&gt;crates : Vous permet de gérer les versions de vos crates directement depuis l'IDE.&lt;/li&gt;
&lt;li&gt;GitLens : Ajoute une intégration git directement dans VSCode.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_weXLkqI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dkcd1f3hm8qi92e33ypm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_weXLkqI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dkcd1f3hm8qi92e33ypm.png" alt="Installation de Rust Analyzer dans VSCode" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Création de notre projet
&lt;/h2&gt;

&lt;p&gt;Nous sommes maintenant prêt à créer notre projet. Pour celà rien de plus simple, il suffit de taper &lt;code&gt;cargo new &amp;lt;project_name&amp;gt; --bin&lt;/code&gt;. L'option &lt;code&gt;--bin&lt;/code&gt; est là pour indiquer que nous souhaitons créer un programme et non une lib (&lt;code&gt;--lib&lt;/code&gt;). A noter qu'un dépôt git est initialisé par défaut.&lt;br&gt;
Votre arborescence devrait ressembler à ça :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;├── Cargo.toml
└── src
    └── main.rs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dans le prochain article, nous verrons comment mettre au point notre première route en Rust avec Rocket !&lt;/p&gt;

</description>
      <category>rust</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>vscode</category>
    </item>
  </channel>
</rss>
