{"id":281,"date":"2023-10-14T21:28:00","date_gmt":"2023-10-14T20:28:00","guid":{"rendered":"https:\/\/noiseonthenet.space\/noise\/?p=281"},"modified":"2023-10-15T21:23:15","modified_gmt":"2023-10-15T20:23:15","slug":"rust-note-001-setup-your-work-environment","status":"publish","type":"post","link":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/","title":{"rendered":"Rust Note 001 Setup Your Work Environment"},"content":{"rendered":"<div id=\"orge04c532\" class=\"figure\">\n\n<img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?ssl=1\" alt=\"altumcode-mCj7UinqOYQ-unsplash-scaled.jpg\" \/>\n\n<\/div>\nPhoto by <a href=\"https:\/\/unsplash.com\/@altumcode?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">AltumCode<\/a> on <a href=\"https:\/\/unsplash.com\/photos\/mCj7UinqOYQ?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a>\n<div id=\"outline-container-orgc3d2dd6\" class=\"outline-2\">\n<h2 id=\"orgc3d2dd6\">Install Rust toolchain<\/h2>\n<div class=\"outline-text-2\" id=\"text-orgc3d2dd6\">\n\n the main tool to download and update the Rust toolchain is called <code>rustup<\/code>\n\n<\/div>\n<div id=\"outline-container-orgc18e9b3\" class=\"outline-3\">\n<h3 id=\"orgc18e9b3\">For Windows<\/h3>\n<div class=\"outline-text-3\" id=\"text-orgc18e9b3\">\n\n download <a href=\"https:\/\/static.rust-lang.org\/rustup\/dist\/i686-pc-windows-gnu\/rustup-init.exe\">rustup-init.exe<\/a> and execute it\n\n<\/div>\n<\/div>\n<div id=\"outline-container-org9742561\" class=\"outline-3\">\n<h3 id=\"org9742561\">For Linux<\/h3>\n<div class=\"outline-text-3\" id=\"text-org9742561\">\n\n execute the following command from a shell\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-bash\" id=\"nil\"><span style=\"color: #ECBE7B;\">curl<\/span> --proto <span style=\"color: #98be65;\">'=https'<\/span> --tlsv1.2 -sSf https:\/\/sh.rustup.rs | sh -s -- --help\n<\/pre>\n<\/div>\nIf you don&rsquo;t like to send unknown scripts in your shell, you can download for your platform from <a href=\"https:\/\/forge.rust-lang.org\/infra\/other-installation-methods.html\">here<\/a>\n\n<\/div>\n<\/div>\n<div id=\"outline-container-org8bf80d2\" class=\"outline-3\">\n<h3 id=\"org8bf80d2\">Compilation Targets<\/h3>\n<div class=\"outline-text-3\" id=\"text-org8bf80d2\">\n\n Rust runs on a very large group of platforms, including &ldquo;embedded&rdquo; chipsets, i.e. without an operating system.\n\nThe toolchain is capable of doing some cross-platform compilation if paired with the correct c compiler and linker &#x2013; but this topic is too complex for this post\n\nthe paltform triple include:\n<ul class=\"org-ul\">\n \t<li>the stability of the toolchain (stable, nightly)<\/li>\n \t<li>the hardware architecture (arm, intel 64 bit, &#x2026;)<\/li>\n \t<li>the os<\/li>\n \t<li>the ABI backend when necessary (like the three musketeers who where actually four)<\/li>\n<\/ul>\nhere are some target identifiers examples, a complete updated list is <a href=\"https:\/\/doc.rust-lang.org\/nightly\/rustc\/platform-support.html\">here<\/a>\n<table border=\"2\" cellspacing=\"0\" cellpadding=\"6\" rules=\"groups\" frame=\"hsides\">\n<colgroup>\n<col  class=\"org-left\" \/>\n<col  class=\"org-left\" \/>\n<col  class=\"org-left\" \/>\n<col  class=\"org-left\" \/>\n<col  class=\"org-left\" \/>\n<\/colgroup>\n<thead>\n<tr>\n<th scope=\"col\" class=\"org-left\">stability<\/th>\n<th scope=\"col\" class=\"org-left\">hardware<\/th>\n<th scope=\"col\" class=\"org-left\">os<\/th>\n<th scope=\"col\" class=\"org-left\">ABI<\/th>\n<th scope=\"col\" class=\"org-left\">target identifier<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"org-left\">stable<\/td>\n<td class=\"org-left\">64-bit Intel<\/td>\n<td class=\"org-left\">Windows<\/td>\n<td class=\"org-left\">Microsoft VS<\/td>\n<td class=\"org-left\">x86_64-pc-windows-msvc<\/td>\n<\/tr>\n<tr>\n<td class=\"org-left\">stable<\/td>\n<td class=\"org-left\">64-bit Intel<\/td>\n<td class=\"org-left\">Windows<\/td>\n<td class=\"org-left\">MingW GCC<\/td>\n<td class=\"org-left\">x86_64-pc-windows-gnu<\/td>\n<\/tr>\n<tr>\n<td class=\"org-left\">stable<\/td>\n<td class=\"org-left\">64-bit Intel<\/td>\n<td class=\"org-left\">Linux<\/td>\n<td class=\"org-left\">GCC<\/td>\n<td class=\"org-left\">x86_64-unknown-linux-gnu<\/td>\n<\/tr>\n<tr>\n<td class=\"org-left\">stable<\/td>\n<td class=\"org-left\">64-bit ARM<\/td>\n<td class=\"org-left\">Linux<\/td>\n<td class=\"org-left\">GCC<\/td>\n<td class=\"org-left\">aarch64-unknown-linux-gnu<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div id=\"outline-container-org6e4e1db\" class=\"outline-3\">\n<h3 id=\"org6e4e1db\">Cargo: Package and project manager<\/h3>\n<div class=\"outline-text-3\" id=\"text-org6e4e1db\">\n\n the toolchain is composed of several pieces; we already mentioned <code>rustup<\/code> (which will be useful also to keep your rust installation updated) but we must get to know\n<ul class=\"org-ul\">\n \t<li><code>rustc<\/code> : the actual rust compiler and<\/li>\n \t<li><code>cargo<\/code> : project \/ package \/ dependencies manager<\/li>\n<\/ul>\n<img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/venti-views-FPKnAO-CF6M-unsplash-scaled.jpg?ssl=1\" alt=\"venti-views-FPKnAO-CF6M-unsplash-scaled.jpg\" \/> Photo by <a href=\"https:\/\/unsplash.com\/@ventiviews?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash\">Venti Views<\/a> on <a href=\"https:\/\/unsplash.com\/photos\/FPKnAO-CF6M?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash\">Unsplash<\/a>\n\nWhile it is entirely possible to develop in rust just using <code>rustc<\/code>, <code>cargo<\/code> is a really convenient command line application which allows to:\n<ul class=\"org-ul\">\n \t<li>set up define and manage projects<\/li>\n \t<li>identify and download all necessary packages<\/li>\n \t<li>define different compilation profiles<\/li>\n \t<li>also cross-compile for different platform. <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/platform_meme.jpg?ssl=1\" alt=\"platform_meme.jpg\" \/><\/li>\n<\/ul>\nLet&rsquo;s introduce some terminology here: rust minimal compilation element is called <code>module<\/code> : each file can define a module; one or more modules are usually grouped into packages which offer a coherent functionalities; these are called <code>crates<\/code> <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2022\/01\/kelli-mcclintock-DcoB_NoNl6U-unsplash-2.jpg?ssl=1\" alt=\"kelli-mcclintock-DcoB_NoNl6U-unsplash-2.jpg\" \/>\n\nPhoto by <a href=\"https:\/\/unsplash.com\/@kelli_mcclintock?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Kelli McClintock<\/a> on <a href=\"https:\/\/unsplash.com\/s\/photos\/box?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a>\n\n<code>cargo<\/code> uses a TOML formatted configuration file in the root directory of the project, which is called <code>Cargo.toml<\/code>\n\n<\/div>\n<\/div>\n<div id=\"outline-container-orgf5bfdc4\" class=\"outline-3\">\n<h3 id=\"orgf5bfdc4\">Check and run test program<\/h3>\n<div class=\"outline-text-3\" id=\"text-orgf5bfdc4\">\n\n Let&rsquo;s use <code>cargo<\/code> to define our first project:\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-bash\" id=\"nil\">cargo init hello\n<\/pre>\n<\/div>\nthis will create all basic directories and files under a newly created &rsquo;hello&rsquo; directory; by default this will be generate a single binary\n\nUnder the <code>src<\/code> directory we can find our main entry point (<code>main.rs<\/code>)\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-rust\" id=\"nil\"><span style=\"color: #51afef;\">fn<\/span> <span style=\"color: #c678dd;\">main<\/span>() {\n    <span style=\"color: #c678dd;\">println!<\/span>(<span style=\"color: #98be65;\">\"Hello, world!\"<\/span>);\n}\n<\/pre>\n<\/div>\nwhich does exactly what you think.\n\nYou can compile and execute it with the following command\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-bash\" id=\"nil\">cargo run\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"outline-container-orge517d64\" class=\"outline-2\">\n<h2 id=\"orge517d64\">Prepare IDE (opinionated)<\/h2>\n<div class=\"outline-text-2\" id=\"text-orge517d64\"><\/div>\n<div id=\"outline-container-org94071e3\" class=\"outline-3\">\n<h3 id=\"org94071e3\">Install VSCode<\/h3>\n<div class=\"outline-text-3\" id=\"text-org94071e3\">\n\n for every platform:\n\n<\/div>\n<div id=\"outline-container-org16e957f\" class=\"outline-4\">\n<h4 id=\"org16e957f\">For Windows<\/h4>\n<div class=\"outline-text-4\" id=\"text-org16e957f\">\n\n <a href=\"https:\/\/code.visualstudio.com\/\">https:\/\/code.visualstudio.com\/<\/a>\n\n<\/div>\n<\/div>\n<div id=\"outline-container-org325e96f\" class=\"outline-4\">\n<h4 id=\"org325e96f\">For Linux<\/h4>\n<div class=\"outline-text-4\" id=\"text-org325e96f\">\n\n you can either download it or use your distribution&rsquo;s package manager e.g.\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-bash\" id=\"nil\">pacman -S vscode\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"outline-container-org7e56f39\" class=\"outline-3\">\n<h3 id=\"org7e56f39\">Install extensions<\/h3>\n<div class=\"outline-text-3\" id=\"text-org7e56f39\">\n<ul class=\"org-ul\">\n \t<li><code>rust-analyzer<\/code>: (<a href=\"https:\/\/rust-analyzer.github.io\/\">site<\/a>) as of today (October 15th, 2023) this is the best <a href=\"https:\/\/en.wikipedia.org\/wiki\/Language_Server_Protocol\">Language<\/a> <a href=\"https:\/\/microsoft.github.io\/language-server-protocol\/\">Server<\/a> available for Rust\n<ul class=\"org-ul\">\n \t<li>provides code highlighting, completion and type hints <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/analyzer_type_hint_2.png?ssl=1\" alt=\"analyzer_type_hint_2.png\" \/><\/li>\n<\/ul>\n<\/li>\n \t<li><code>Better TOML<\/code>: useful to edit files like <code>Cargo.toml<\/code> which include all details about your project<\/li>\n \t<li><code>CodeLLDB<\/code>: debugger<\/li>\n \t<li><code>Crates<\/code>: allows you get the available versions of each crate just hovering on the dependencies secion of your <code>Cargo.toml<\/code> <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/crates_2023-10-15-22-14.gif?ssl=1\" alt=\"crates_2023-10-15-22-14.gif\" \/><\/li>\n \t<li><code>Error Lens<\/code>: help read error in lines easily <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/error_lens_example.png?ssl=1\" alt=\"error_lens_example.png\" \/><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div id=\"outline-container-orge82bfbb\" class=\"outline-3\">\n<h3 id=\"orge82bfbb\">The opinionated part<\/h3>\n<div class=\"outline-text-3\" id=\"text-orge82bfbb\">\n\n this installation setup suggestion is one of the best advice I found for new programmers.\n\nI have to admit that my favrite tool for the job is Emacs, but I will add some configuration setup hint here as soon as I&rsquo;m able to have the same level of features described above.\n\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"how to prepare your environment for rust development","protected":false},"author":1,"featured_media":267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[5],"class_list":["post-281","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-language-learning","tag-rust"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rust Note 001 Setup Your Work Environment - Noise On The Net<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rust Note 001 Setup Your Work Environment - Noise On The Net\" \/>\n<meta property=\"og:description\" content=\"how to prepare your environment for rust development\" \/>\n<meta property=\"og:url\" content=\"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/\" \/>\n<meta property=\"og:site_name\" content=\"Noise On The Net\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-14T20:28:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-15T20:23:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1929\" \/>\n\t<meta property=\"og:image:height\" content=\"2560\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"marco.p.v.vezzoli\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"marco.p.v.vezzoli\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/\"},\"author\":{\"name\":\"marco.p.v.vezzoli\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\"},\"headline\":\"Rust Note 001 Setup Your Work Environment\",\"datePublished\":\"2023-10-14T20:28:00+00:00\",\"dateModified\":\"2023-10-15T20:23:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/\"},\"wordCount\":554,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\"},\"image\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?fit=1929%2C2560&ssl=1\",\"keywords\":[\"Rust\"],\"articleSection\":[\"Language learning\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/\",\"url\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/\",\"name\":\"Rust Note 001 Setup Your Work Environment - Noise On The Net\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?fit=1929%2C2560&ssl=1\",\"datePublished\":\"2023-10-14T20:28:00+00:00\",\"dateModified\":\"2023-10-15T20:23:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?fit=1929%2C2560&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?fit=1929%2C2560&ssl=1\",\"width\":1929,\"height\":2560},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2023\\\/10\\\/rust-note-001-setup-your-work-environment\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rust Note 001 Setup Your Work Environment\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#website\",\"url\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/\",\"name\":\"Noise On The Net\",\"description\":\"Sharing adventures in code\",\"publisher\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\",\"name\":\"marco.p.v.vezzoli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\",\"caption\":\"marco.p.v.vezzoli\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\"},\"description\":\"Self taught assembler programming at 11 on my C64 (1983). Never stopped since then -- always looking up for curious things in the software development, data science and AI. Linux and FOSS user since 1994. MSc in physics in 1996. Working in large semiconductor companies since 1997 (STM, Micron) developing analytics and full stack web infrastructures, microservices, ML solutions\",\"sameAs\":[\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/marco-paolo-valerio-vezzoli-0663835\\\/\"],\"url\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/author\\\/marco-p-v-vezzoli\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rust Note 001 Setup Your Work Environment - Noise On The Net","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/","og_locale":"en_US","og_type":"article","og_title":"Rust Note 001 Setup Your Work Environment - Noise On The Net","og_description":"how to prepare your environment for rust development","og_url":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/","og_site_name":"Noise On The Net","article_published_time":"2023-10-14T20:28:00+00:00","article_modified_time":"2023-10-15T20:23:15+00:00","og_image":[{"width":1929,"height":2560,"url":"https:\/\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"marco.p.v.vezzoli","twitter_card":"summary_large_image","twitter_misc":{"Written by":"marco.p.v.vezzoli","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/#article","isPartOf":{"@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/"},"author":{"name":"marco.p.v.vezzoli","@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982"},"headline":"Rust Note 001 Setup Your Work Environment","datePublished":"2023-10-14T20:28:00+00:00","dateModified":"2023-10-15T20:23:15+00:00","mainEntityOfPage":{"@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/"},"wordCount":554,"commentCount":0,"publisher":{"@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982"},"image":{"@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?fit=1929%2C2560&ssl=1","keywords":["Rust"],"articleSection":["Language learning"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/","url":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/","name":"Rust Note 001 Setup Your Work Environment - Noise On The Net","isPartOf":{"@id":"https:\/\/noiseonthenet.space\/noise\/#website"},"primaryImageOfPage":{"@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/#primaryimage"},"image":{"@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?fit=1929%2C2560&ssl=1","datePublished":"2023-10-14T20:28:00+00:00","dateModified":"2023-10-15T20:23:15+00:00","breadcrumb":{"@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/#primaryimage","url":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?fit=1929%2C2560&ssl=1","contentUrl":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?fit=1929%2C2560&ssl=1","width":1929,"height":2560},{"@type":"BreadcrumbList","@id":"https:\/\/noiseonthenet.space\/noise\/2023\/10\/rust-note-001-setup-your-work-environment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/noiseonthenet.space\/noise\/"},{"@type":"ListItem","position":2,"name":"Rust Note 001 Setup Your Work Environment"}]},{"@type":"WebSite","@id":"https:\/\/noiseonthenet.space\/noise\/#website","url":"https:\/\/noiseonthenet.space\/noise\/","name":"Noise On The Net","description":"Sharing adventures in code","publisher":{"@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/noiseonthenet.space\/noise\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982","name":"marco.p.v.vezzoli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g","caption":"marco.p.v.vezzoli"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g"},"description":"Self taught assembler programming at 11 on my C64 (1983). Never stopped since then -- always looking up for curious things in the software development, data science and AI. Linux and FOSS user since 1994. MSc in physics in 1996. Working in large semiconductor companies since 1997 (STM, Micron) developing analytics and full stack web infrastructures, microservices, ML solutions","sameAs":["https:\/\/noiseonthenet.space\/noise\/","https:\/\/www.linkedin.com\/in\/marco-paolo-valerio-vezzoli-0663835\/"],"url":"https:\/\/noiseonthenet.space\/noise\/author\/marco-p-v-vezzoli\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2023\/10\/altumcode-mCj7UinqOYQ-unsplash-scaled.jpg?fit=1929%2C2560&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pdDUZ5-4x","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts\/281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/comments?post=281"}],"version-history":[{"count":5,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts\/281\/revisions"}],"predecessor-version":[{"id":293,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts\/281\/revisions\/293"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/media\/267"}],"wp:attachment":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/media?parent=281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/categories?post=281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/tags?post=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}