{"version":"https://jsonfeed.org/version/1","title":"Read Rust - Getting Started","home_page_url":"https://readrust.net/","feed_url":"https://readrust.net/getting-started/feed.json","description":"Introductory posts, guides and tutorials for getting started with Rust.","author":{"name":"Wesley Moore","url":"https://www.wezm.net/"},"items":[{"id":"7b0c67b7-6646-4800-9b33-16dc40bbf7ac","title":"Rust for the Polyglot Programmer","content_text":"There are many guides and introductions to Rust.\r\n\r\nThis one is something different: it is intended for the experienced programmer who already knows many other programming languages.\r\n\r\nI try to be comprehensive enough to be a starting point for any area of Rust, but to avoid going into too much detail except where things are not as you might expect.","url":"https://www.chiark.greenend.org.uk/~ianmdlvl/rust-polyglot/intro.html","date_published":"2021-09-30T23:08:52Z","author":{"name":"Ian Jackson"},"tags":["Getting Started"]},{"id":"24c81c1c-4c09-4375-9282-11986c5ecc1a","title":"Low-Level Academy","content_text":"I'm excited to launch Low-Level Academy, an explorable systems programming course that uses Rust and web assembly for interactive playgrounds and visualisation. It starts with network programming, but it will be expanded to more topics!","url":"https://lowlvl.org/","date_published":"2020-09-21T00:40:23Z","author":{"name":"Nikita Baksalyar"},"tags":["Getting Started"]},{"id":"752c8ca7-d8d2-490a-aabb-536b9215c42e","title":"TL;DR Rust","content_text":"Recently I've been starting to use Rust more and more for larger and larger projects. As things have come up, I realized that I am missing a good reference for common things in Rust as compared to Go. This post contains a quick high-level overview of patterns in Rust and how they compare to patterns in Go. This will focus on code samples. This is no replacement for the Rust book, but should help you get spun up on the various patterns used in Rust code.","url":"https://christine.website/blog/TLDR-rust-2020-09-19","date_published":"2020-09-19T22:26:04Z","author":{"name":"Christine Dodrill"},"tags":["Getting Started"]},{"id":"136ef43c-03bb-4879-ad9e-cdc92502e11c","title":"Rust explained using easy English","content_text":"Rust is a new language that already has good textbooks. But sometimes its textbooks are difficult because they are for native English speakers. Many companies and people now learn Rust, and they could learn faster with a book that has easy English. This textbook is for these companies and people to learn Rust with simple English.\r\n\r\nRust is a language that is quite new, but already very popular. It's popular because it gives you the speed and control of C or C++ but also the memory safety of other newer languages like Python. It does this with some new ideas that are sometimes different from other languages. That means that there are some new things to learn, and you can't just \"figure it out as you go along\". Rust is a language that you have to think about for a while to understand. But it still looks pretty familiar if you know another language and it is made to help you write good code.","url":"https://github.com/Dhghomon/easy_rust/blob/master/README.md","date_published":"2020-08-31T10:22:38Z","author":{"name":"Dhghomon"},"tags":["Getting Started"]},{"id":"75b1cbdc-c664-4729-ab77-1063d664fc06","title":"Rust variables and mut","content_text":"As with any programming language one of the main building blocks of Rust is variable usage. Since I’m just learning Rust I wanted to really dive into the specifics around how it works.","url":"https://laurieontech.com/posts/rust-mut/","date_published":"2020-08-25T11:16:23Z","author":{"name":"Laurie Barth"},"tags":["Getting Started"]},{"id":"b93510b3-3e86-479d-a601-c40710c1a436","title":"A JavaScript Developer's Cheatsheet for Rust","content_text":"Learning a new programming language is a great opportunity to learn new universal concepts and patterns that apply to all languages, not just the one you're learning. However, before you can get a handle on all the new stuff a language provides, first you have to figure out how to write the new language like you would write whatever old language(s) you know.\r\n\r\nFor the JavaScript developer, Rust offers a plethora of new and sometimes brain-bending concepts that exist in Rust but not in JavaScript. But in order to appreciate those concepts, first you have to get a handle on the basic syntax of the language. To speed up that process, you can use the JavaScript you already know to draw parallels to the Rust equivalents.\r\n\r\nThis cheatsheet provides some basic comparisons between JavaScript syntax and their parallels in Rust. It purposefully sticks to the basics that have decent parallels, to get you comfortable writing some simple programs in Rust.","url":"https://tndl.me/blog/2020/rust-javascript-cheatsheet/","date_published":"2020-08-25T10:59:46Z","author":{"name":"Austin Tindle"},"tags":["Getting Started"]},{"id":"fd49efa6-ebfd-4f5d-a212-e80aca1c5714","title":"First thoughts on Rust vs OCaml","content_text":"I'm about two weeks into Rust now, so this feels like a good time to write a critique, before I get Stockholm Syndrome'd.\r\n\r\nMy main motivation in learning Rust is that I have to maintain some of Dark's Rust code. There was a recent outage related to that code, and I had to learn on the fly, so better to actually know what I'm looking at.\r\n\r\nI've also been dreaming of rewriting Dark in Rust for quite some time, largely due to frustrations with OCaml as well as some excellent marketing by the Rust community. I'm trying to evaluate whether this is a good idea, and if so, trying to figure out how to do it in a way that makes sense (which is to say, gradually).","url":"https://blog.darklang.com/first-thoughts-on-rust-vs-ocaml/","date_published":"2020-08-24T10:00:11Z","author":{"name":"Paul Biggar"},"tags":["Getting Started"]},{"id":"fd6503b1-9e9f-44f7-9261-9c0794d4f9e7","title":"How to Read First Impression Posts","content_text":"Rust gets a lot of first impression posts. For people in the community, reading those posts can often be frustrating, with factual errors leaving people concerned that others will get the wrong impression. For people outside the community, they may be unsure of how much said is true, or how to read these posts effectively. In this post, I outline how I think about first impression posts, and why I recommend reading them the same way.","url":"https://www.possiblerust.com/community/how-to-read-first-impression-posts","date_published":"2020-08-24T09:50:54Z","author":{"name":"Andrew Lilley Brinker"},"tags":["Getting Started"]},{"id":"bb879e50-43ed-4489-913c-64ba7c628973","title":"How NOT to Shadow Variables in Rust","content_text":"Ran into a funny variable shadowing situation, and ended up writing about the details of variables, and shadowing, in Rust.","url":"https://maxuuell.com/blog/how-not-to-shadow-variables","date_published":"2020-08-24T09:33:06Z","author":{"name":"Maxwell DeMers"},"tags":["Getting Started"]},{"id":"82163a5d-c982-4040-b4bc-e5a196733906","title":"How I Read \"The Rust Programming Language\"","content_text":"With RustConf 2020 coming tomorrow, I want to tell folks about how I have been “re-reading” The Rust Programming Language. Affectionately known as “The Book”, this resource is the ultimate guide on how to get started with the Rust programming language. You can buy it at almost any storefront, or view it online for free.\r\n\r\nWhy should you care about how I read a book?! Psssssh. “I kNoW hOw tO rEaD A BoOk”.\r\n\r\nYeah… I get it… PLEASE STAY, DON’T LEAVE.","url":"https://nickgerace.dev/post/how-i-read-the-rust-programming-language","date_published":"2020-08-20T10:09:53Z","author":{"name":"Nick Gerace"},"tags":["Getting Started"]},{"id":"9f2bdbb9-1119-4b66-ba8f-6268c99133ae","title":"Learning Rust: The Compiler is your Friend","content_text":"The Rust programming language doesn't just aim to be practical, it also aims to be useful for the people working with it. Not only does this improve productivity, it also helps learning the language! One of the features I want to pick out: the borrow checker of the Rust compiler. This feature helps to avoid a great number of memory related bugs by enforcing correct memory allocation and use of pointers. At the same time, it also seems to be the source for a lot of frustration. This is reflected in in a phrase we often see: \"fighting the compiler\".","url":"https://ferrous-systems.com/blog/the-compiler-is-your-friend/","date_published":"2020-08-18T10:32:42Z","author":{"name":"Tanks"},"tags":["Getting Started"]},{"id":"8f47c765-36b2-422a-aad5-43019a3f5a98","title":"I am a Java, C#, C or C++ developer, time to do some Rust","content_text":"As I've said before, I'm working on a book about lifetimes. Or maybe it's just a long series - I haven't decided the specifics yet. Like every one of my series/book things, it's long, and it starts you off way in the periphery of the subject, and takes a lot of detours to get there.\r\n\r\nIn other words - it's great if you want an adventure (which truly understanding Rust definitely is), but it's not the best if you are currently on the puzzled end of a conversation with your neighborhood lifetime enforcer, the Rust compiler.\r\n\r\nSo, let's try to tackle that the crux of the issue another way - hopefully a more direct one.","url":"https://fasterthanli.me/articles/i-am-a-java-csharp-c-or-cplusplus-dev-time-to-do-some-rust","date_published":"2020-08-13T09:33:59Z","author":{"name":"Amos"},"tags":["Getting Started"]},{"id":"293620dc-4747-4870-a234-323279288736","title":"Getting started with WebAssembly and Rust","content_text":"I initially picked up Rust because of the fantastic work the team has done to support and push WebAssembly. The official documentation is a great resource for building an example project.\r\n\r\nThis guide will serve as an introduction to WebAssembly and a tutorial on how to set up and work in a Rust Wasm environment.","url":"https://blog.logrocket.com/getting-started-with-webassembly-and-rust/","date_published":"2020-08-10T10:42:51Z","author":{"name":"Carlos Chacin"},"tags":["Getting Started","Web and Network Services"]},{"id":"39766bbb-3373-4206-9a39-b2fa919a653a","title":"Cargo [features] explained with examples","content_text":"If you feel confused about all the intricacies of Cargo.toml [features] section you are not alone.\r\n\r\nFirst of all, I assume that you have already read the docs at https://doc.rust-lang.org/cargo/reference/features.html to get some foundation of what \"features\" are before going through these examples. I did read the docs first too, but they left me confused until days later when I had to go much deeper into the topic to make some crates work together. What I think was missing from the docs for me was more examples with explanations how they work. This post was written to fill that gap.","url":"https://dev.to/rimutaka/cargo-features-explained-with-examples-194g","date_published":"2020-08-10T10:40:17Z","author":{"name":"Max"},"tags":["Getting Started"]},{"id":"9d9988fc-2be1-4423-b736-b172aaa069e5","title":"Rust for a Pythonista #2: Building a Rust crate for CSS inlining","content_text":"It is the second part of a series about Rust for Python users.\r\n\r\nIn this article, we will build a foundation for a Rust-powered Python library - a crate that implements CSS inlining. It is a process of moving CSS rules from style tags to the corresponding spots in the HTML body. This approach to including styles is crucial for sending HTML emails or embedding HTML pages into 3rd party resources.","url":"https://dygalo.dev/blog/rust-for-a-pythonista-2/","date_published":"2020-08-10T10:35:34Z","author":{"name":"Dmitry Dygalo"},"tags":["Getting Started"]},{"id":"2acb9a4a-8f4a-45c8-90fe-b321a39ef071","title":"Back to old tricks .. (or, baby steps in Rust)","content_text":"I’ve been learning Rust for the past twenty days or so, working through the Blandy & Orendorff book, coding up things as I go. Once I got into playing with Rust traits and closures and associated types, the similarities to programming in Haskell with typeclasses, data structures, closure passing and associated types was pretty obvious.\r\n\r\nAs a warm up I thought I’d try porting the stream fusion core from Haskell to Rust. This was code I was working on more than a decade ago. How much of it would work or even make sense in today’s Rust? ","url":"https://donsbot.wordpress.com/2020/07/04/back-to-old-tricks-or-baby-steps-in-rust/","date_published":"2020-08-08T10:13:19Z","author":{"name":"Don Stewart"},"tags":["Getting Started"]},{"id":"d8c49e13-5a9b-41fe-9d99-3c404cee1e2b","title":"Rust for a Pythonista #1: Why and when?","content_text":"Rust is getting more popular among software developers, and the Python community is no exception. I started learning Rust a few years ago, but after some point, I began to lose motivation because most of my exercises were toy examples and far away from the real applications. So I questioned myself:\r\n\r\n⏵ Can I use Rust in my day-to-day job as a Python developer?\r\n⏵ Can I build something that will benefit the projects I am working with?\r\n\r\nProbably, many of us, people coming from the Python background, had similar thoughts. In a 3 chapter series, I will share my experience with embedding Rust into Python projects and try to give you some options that may answer such questions.","url":"https://dygalo.dev/blog/rust-for-a-pythonista-1/","date_published":"2020-08-08T09:59:58Z","author":{"name":"Dmitry Dygalo"},"tags":["Getting Started"]},{"id":"5fe6b774-4357-4a49-a8d0-9ea13cb7d97e","title":"Understanding the Rust borrow checker","content_text":"You’ve heard a lot about it, you’ve bought into the hype, and the day has finally come. It’s time for you to start writing Rust!\r\n\r\nSo you sit down, hands on the keyboard, heart giddy with anticipation, and write a few lines of code. You run the cargo run command, excited to see whether the program works as expected. You’ve heard that Rust is one of those languages that simply works once it’s compiled. The compiler starts up, you follow the output, then, suddenly:\r\n\r\nerror[E0382]: borrow of moved value\r\n\r\nUh-oh. Looks like you’ve run into the dreaded borrow checker! Dun, dun, DUUUUUUN!","url":"https://blog.logrocket.com/introducing-the-rust-borrow-checker/","date_published":"2020-08-06T10:10:06Z","author":{"name":"Thomas Heartman"},"tags":["Getting Started"]},{"id":"fcd55dcd-4d82-46cc-ba8a-86f3bcb976e1","title":"Beginner's guide to Error Handling in Rust","content_text":"Error handling in Rust is very different if you’re coming from other languages. In languages like Java, JS, Python etc, you usually throw exceptions and return successful values. In Rust, you return something called a Result.\r\n\r\nThe Result<T, E> type is an enum that has two variants - Ok(T) for successful value or Err(E) for error value:\r\n\r\nenum Result<T, E> {\r\n   Ok(T),\r\n   Err(E),\r\n}\r\n\r\nReturning errors instead of throwing them is a paradigm shift in error handling. If you’re new to Rust, there will be some friction initially as it requires you to reason about errors in a different way.\r\n\r\nIn this post, I’ll go through some common error handling patterns so you gradually become familiar with how things are done in Rust.","url":"http://www.sheshbabu.com/posts/rust-error-handling/","date_published":"2020-08-04T09:59:02Z","author":{"name":"Sheshbabu Chinnakonda"},"tags":["Getting Started"]},{"id":"5e45c16b-6da1-48ff-83f8-e6433683d207","title":"Learning Rust: Mindsets and Expectations","content_text":"We often hear that Rust is a language that is too complex and too difficult to learn. While, yes, the language is complex, we have identified some existing mindsets and expectations that serve as obstacles to the learning process. Let's discuss these obstacles and how we can alleviate them in our first post on learning Rust.","url":"https://ferrous-systems.com/blog/mindsets-and-expectations/","date_published":"2020-08-04T09:52:33Z","author":{"name":"Tanks"},"tags":["Getting Started"]},{"id":"f49092f7-cf41-4a71-bd39-7e9f02df7e6f","title":"Countdown problem in Rust and Haskell","content_text":"The countdown problem was presented in a paper by Graham Hutton with a simple and elegant solution in Haskell. See the paper here. In this post I'll implement the same solution in Rust and see how it looks compared to the original Haskell solution.","url":"https://amitdev.github.io/posts/2020-07-27-countdown-rust/","date_published":"2020-07-29T09:56:50Z","author":{"name":"Amit Dev"},"tags":["Getting Started"]},{"id":"4a3acfb1-d5e3-4a2f-861a-6bb5b9af0414","title":"Enum or Trait Object","content_text":"Rust has two major mechanisms for delegating logic: enums and trait objects, and it may be unclear when to use one or the other. In this post, I will walk through how each works, what the tradeoffs are, and how to choose the right option for your code.","url":"https://www.possiblerust.com/guide/enum-or-trait-object","date_published":"2020-07-29T09:49:34Z","author":{"name":"Andrew Lilley Brinker"},"tags":["Getting Started"]},{"id":"e12a26d8-632f-4b59-b07f-ac765b815e08","title":"Next Algorithm: Backtracking into the n Queens Problem","content_text":"This next algorithm was really fun and a bit more challenging. The Algorithms book I’m going through went through several more examples of breaking a problem into a smaller, simpler problem and letting recursion CPU its way to a solution, like the merge sort we just looked at. Then I moved on to chapter 2 about “backtracking” into the n Queens Problem!","url":"https://rust.graystorm.com/2020/07/16/next-algorithm-backtracking-into-the-n-queens-problem/","date_published":"2020-07-27T09:38:41Z","author":{"name":"Jeff Culverhouse"},"tags":["Computer Science","Getting Started"]},{"id":"451b28e5-fbfd-4e3f-b858-89544146ae08","title":"Rust for JavaScript Developers - Pattern Matching and Enums","content_text":"New chapter in \"Rust for JavaScript Developers\": Pattern Matching, Destructuring, Enum, Option.","url":"http://www.sheshbabu.com/posts/rust-for-javascript-developers-pattern-matching-and-enums/","date_published":"2020-07-25T10:22:46Z","author":{"name":"Sheshbabu Chinnakonda"},"tags":["Getting Started"]},{"id":"ef6393d3-701f-4736-a1e4-7e14dba1da2c","title":"Understanding the Rust Ecosystem","content_text":"Rust, a systems-programming language, which prides itself on being Stack Overflow’s “most loved language for five years in row” and GitHub’s second fastest growing (235% 2018-2019) has gained popularity both internally here at Facebook and externally within the programming community.\r\n\r\nAs a Developer Advocate on the Facebook Open Source Team, I have been focused on developing my own understanding of the space. I work within the DevTools pillar and focus primarily on programming languages. My main priority for H1 of 2020 has been Rust. The goal of this article is: to paint a high-level overview of the ecosystem.\r\n\r\nThe article covers various aspects of the ecosystem including community, companies using the language, selling points, etc.","url":"https://joeprevite.com/rust-lang-ecosystem","date_published":"2020-06-19T01:06:16Z","author":{"name":"Joe Previte"},"tags":["Getting Started"]},{"id":"2c08b848-0452-415a-bca2-f5e87fdc0eaa","title":"Diving into Rust with a CLI","content_text":"A blog post titled, \"Diving into Go by Building a CLI Application\" has been making it's rounds of the internet. It uses a small XKCD downloader as the subject. I thought was small and self contained enough, that it'd be interesting to see the same example in Rust!","url":"https://kbknapp.dev/rust-cli/","date_published":"2020-06-16T07:47:09Z","author":{"name":"Kevin K."},"tags":["Getting Started"]},{"id":"0535a2d2-3cac-4acc-acb6-e9764fd5a64a","title":"String vs &str in Rust","content_text":"Both contain utf-8 encoded text, but:\r\n\r\n* String owns the data stored within it. When the String is deallocated the text data it stores is deallocated as well.\r\n* &str borrows data that is stored elsewhere (usually in a String), it doesn't store any text data of its own. When a &str is deallocated the data it points to is left untouched.\r\n\r\nHandily, a &str can be shorter than the String it references. This helps make string handling fast and memory efficient as we can simply break up a pre-existing String into chunks that all just reference the original String, no heap allocations or data copying needed.","url":"https://fullstackmilk.dev/string_vs_&str_in_rust/","date_published":"2020-06-12T21:59:41Z","author":{"name":"Sam Rowe"},"tags":["Getting Started"]},{"id":"fa8f1850-bcb4-4046-9170-48da987712f5","title":"Errors in Rust: A Deep Dive","content_text":"Rust’s error handling is precise and curious - and in this article, we are going to take a look at why that is the case. I’ll introduce you to the basics of errors in Rust and then explain some more advanced concepts of dealing with errors.","url":"https://www.halcyon.hr/posts/error-handling-in-rust/","date_published":"2020-06-12T02:42:51Z","author":{"name":"Ivan Oštrić"},"tags":["Getting Started"]},{"id":"923f612f-47f1-4d2b-9ad1-7a24f0ce89d1","title":"Zero To Production #1: Setup - Toolchain, IDEs, CI","content_text":"There is more to a programming language than the language itself: tooling is a key element of the experience of using the language.\r\nThe same applies to many other technologies (e.g. RPC frameworks like gRPC or Apache Avro) and it often has a disproportionate impact on the uptake (or the demise) of the technology itself.\r\n\r\nTooling should therefore be treated as a first-class concern both when designing and teaching the language itself.\r\n\r\nThe Rust community has put tooling at the forefront since its early days: it shows.\r\nWe are now going to take a brief tour of a set of tools and utilities that are going to be useful in our journey. Some of them are officially supported by the Rust organisation, others are built and maintained by the community.","url":"https://www.lpalmieri.com/posts/2020-06-06-zero-to-production-1-setup-toolchain-ides-ci/","date_published":"2020-06-10T11:13:22Z","author":{"name":"Luca Palmieri"},"tags":["Getting Started"]},{"id":"ddace54c-8bbb-432f-b802-69213cc22613","title":"Why I'm enjoying learning Rust as a Java programmer","content_text":"It's been a long time since I properly learned a new language—computer or human. Maybe 25 years. That language was Java, and although I've had to write little bits of C (very, very little) and JavaScript in the meantime, the only two languages I've written much actual code in have been Perl and Java.\r\n\r\nI'm a co-founder of a project called Enarx, which is written almost entirely in Rust. These days I call myself an \"architect,\" and it's been quite a long time since I wrote any production code. In the lead-up to Christmas 2019, I completed the first significant project I've written in quite a few years: an implementation of a set of algorithms around a patent application in Java. It was a good opportunity to get my head back into code, and I was quite pleased with it.\r\n\r\nHere are some of my thoughts on Rust, from the point of view of a Java developer with a strong object-oriented background.","url":"https://opensource.com/article/20/5/rust-java","date_published":"2020-05-26T21:27:29Z","author":{"name":"Mike Bursell"},"tags":["Getting Started"]},{"id":"2137f500-027f-4429-93f4-985cf1be2ee6","title":"Rust macro rules in practice","content_text":"This is the first post on my new series \"practical rust bites\" that shows very tiny pieces of rust, taken out of practical real projects. So this article will be super short, easy to follow and hopefully helpful to find your way into the rust eco system.","url":"https://dev.to/sassman/rust-macro-rules-in-practice-40ne","date_published":"2020-05-25T08:39:00Z","author":{"name":"Sven Assmann"},"tags":["Getting Started"]},{"id":"2e6aeda2-7eb3-407b-8451-8bca26450a4f","title":"Learning Rust in 2020","content_text":"When I started learning Rust I made the mistake of following the advice to read The Book first. While it's a great resource, it's pretty overwhelming for a beginner to get told \"If you'd like to learn this programming language the best way to start is to read this 20 chapter book!\" Most people give up before they even get started when they get advice like this. Nobody ever told someone to read a 20 chapter book just to get started with Javascript or Python. Rust's learning curve is no joke but you gotta give the people what they want, and they want to program, not read about programming. Programming is fun and reading about programming is not as fun.","url":"https://github.com/pretzelhammer/rust-blog/blob/master/posts/learning-rust-in-2020.md","date_published":"2020-05-17T21:09:45Z","author":{"name":"pretzelhammer"},"tags":["Getting Started"]},{"id":"6652dc7b-c529-46e2-8738-59ed45462dd1","title":"What I learned contributing to Rust-Analyzer","content_text":"I try to contribute to projects I use in my daily routine to feel the impact of my contributions and be aware about the use cases and the project itself. I use Rust analyzer in VsCode everyday when I write Rust code and I had an issue with it. The issue was a kind of false positive given by rust analyzer.\r\n\r\nI decided it could be an opportunity to contribute to the project and learn a lot of new things. At the same time I also made other pull-requests to improve auto completions and assistances.","url":"https://dev.to/bnjjj/what-i-learned-contributing-to-rust-analyzer-4c7e","date_published":"2020-05-15T00:52:40Z","author":{"name":"Benjamin Coenen"},"tags":["Getting Started"]},{"id":"1edbb6a5-f575-491f-a4b5-7830fceeeed6","title":"Multiple Mutable References","content_text":"I want to start the series with multiple mutable references. We’ve just learned about ownership, and it doesn’t look that hard. We follow some simple rules, we even managed to write some code, see some ownership errors, and fix them.","url":"http://oribenshir.github.io/afternoon_rusting/blog/mutable-reference","date_published":"2020-05-11T22:54:33Z","author":{"name":"Ori Ben-Shir"},"tags":["Getting Started"]},{"id":"846f2e87-3507-404e-bce3-6678ab7ec4c8","title":"Sublime Text 4 - Rust","content_text":"How to set up Sublime Text 4 for Rust development.","url":"https://krupitskas.github.io/posts/sublime-text-rust/","date_published":"2020-05-06T10:12:02Z","author":{"name":"Nikita Krupitskas"},"tags":["Getting Started"]},{"id":"44a78ac9-0b46-4504-a1db-cacf9dcbadf2","title":"Rust Lang in a nutshell: 3# Traits and Generics","content_text":"Welcome to the next part of our Rust programming mini-series. With this part we skim through basic Rust concepts like traits, and generics. These topics are complex enough to require some shift in thinking paradigms from programmer accustomed to OOP like C++/Java in order to be used with ease.","url":"https://www.softax.pl/blog/rust-lang-in-a-nutshell-3-traits-and-generics/","date_published":"2020-05-06T09:56:20Z","author":{"name":"Bartłomiej Kozielski"},"tags":["Getting Started"]},{"id":"a3e2f192-3fbf-41c4-96fc-b33370df3eeb","title":"Tour of Rust","content_text":"Welcome to the Tour of Rust. This is meant to be a step by step guide through the features of the Rust programming language. Rust is often considered a language with a steep learning curve, I hope I can convince you there's a lot to explore before we even get to complex parts.","url":"https://tourofrust.com/","date_published":"2020-05-06T09:29:53Z","author":{"name":"Richard Anaya"},"tags":["Getting Started"]},{"id":"4d027b39-d676-42db-993b-5daae7283884","title":"Rust Learning Plan & Chapter 1 Notes","content_text":"Hello and welcome! This might be the first time we meet so I thought I’d start this post off with a short introduction.\r\n\r\nI’m Joe and previously I worked with JavaScript building web apps and mobile apps. Now, I’m learning Rust both for personal reasons and work-related reasons. I work as a Developer Advocate in the DevTools/Languages space for the open source team. One of my primary focuses for this half of the year is Rust! ","url":"https://joeprevite.com/rust-learning-plan-chapter-1-notes","date_published":"2020-04-27T11:09:46Z","author":{"name":"Joe Previte"},"tags":["Getting Started"]},{"id":"db99f345-2cea-4304-9cbc-40b54c688bc6","title":"Contributing to Rust Open Source","content_text":"As a new Rustacean, I knew it would be best to look for something beginner-friendly such as finding a small bug to fix or contributing to documentation. I am happy to say I found something within my abilities and achieved my goal!","url":"https://joeprevite.com/contributing-to-rust-open-source","date_published":"2020-04-23T07:46:57Z","author":{"name":"Joe Previte"},"tags":["Getting Started"]},{"id":"5155e31c-f015-4e7f-b320-6f7d253f4d29","title":"explaine.rs: interactively explain Rust syntax","content_text":"While staring at the keywords documentation in the standard library, it occurred to me that an interactive playground could be a really effective way of explaining/teaching Rust's syntax.\r\n\r\nexplaine.rs is an interactive playground to explore the syntax of the Rust Programming Language.\r\n\r\nYou can write any Rust code in the editor and the analyzer will allow you to click/tap on different keywords, punctuation elements and other bits of code and help you understand what they mean. ","url":"https://jrvidal.github.io/explaine.rs/","date_published":"2020-04-11T01:41:47Z","author":{"name":"Roberto Vidal"},"tags":["Getting Started"]},{"id":"171a1e62-4b55-4b65-a682-73b013b45f31","title":"Build your own JIRA with Rust","content_text":"A test-driven workshop to learn Rust by building your own JIRA clone! ","url":"https://github.com/LukeMathWalker/build-your-own-jira-with-rust","date_published":"2020-03-26T06:39:31Z","author":{"name":"Luca Palmieri"},"tags":["Getting Started"]},{"id":"10bbd1d0-9a04-4a45-a869-bf6bcc2c5217","title":"References in Rust","content_text":"If you’ve read our article on Rust’s Ownership or if you’ve written your first few programs and wondered what’s the difference between String and &str, you’re most likely aware that there’s the notion of references in Rust. References enable us to give things like functions an data structures access to values, without transferring ownership. Or, in other words, without moving them. In this article we’re going to explore references a bit further and take a closer look at some interesting characteristics.","url":"https://blog.thoughtram.io/references-in-rust/","date_published":"2020-03-17T21:47:45Z","author":{"name":"Pascal Precht"},"tags":["Getting Started"]},{"id":"da18d18d-1c69-49d8-b13b-01a63ea05b1e","title":"Understanding String and &str in Rust","content_text":"Most likely, soon after you’ve started your Rust journey, you ran into this scenario where you tried to work with string types (or should I say, you thought you were?), and the compiler refused to compile your code because of something that looks like a string, actually isn’t a string.","url":"https://blog.thoughtram.io/string-vs-str-in-rust/","date_published":"2020-03-17T10:30:22Z","author":{"name":"Pascal Precht"},"tags":["Getting Started"]},{"id":"69edf108-270f-4735-beb9-5e64308a3054","title":"A C# programmer examines Rust - Part 2","content_text":"In part one we started an initial exploration of the Rust programming language, using a small programming problem as a starting point. The problem was:\r\n\r\nGiven a string which contains comma-separated values, transform it into a list of Globally Unique Identifiers (GUIDs) if and only if every value is a valid GUID. Ignore whitespace and newlines.\r\n \r\nThe following Rust function was given as a candidate solution, which proved to capably solve the problem while retaining excellent runtime performance:\r\n\r\nfn extract_ids(input: &str) -> Option<Vec<&str>> {\r\n    input\r\n        .split(',')\r\n        .map(|s| s.trim())\r\n        .map(|s| Uuid::parse_str(s).ok().map(|_| s))\r\n        .collect()\r\n}\r\n\r\nThis is not necessarily the most optimal way to solve this problem, but it is succinct and correct and good enough for our initial purposes.\r\n\r\nIs it obvious, though, how it works? Let’s unpack it.","url":"https://treit.github.io/rust,/c%23,/programming/2020/03/15/StartingRustPart2.html","date_published":"2020-03-16T09:17:57Z","author":{"name":"Mike Treit"},"tags":["Getting Started"]},{"id":"97690bf9-ee6e-400b-a31d-cec01b2085cd","title":"How I Start: Rust","content_text":"Rust is an exciting new programming language that makes it easy to make understandable and reliable software. It is made by Mozilla and is used by Amazon, Google, Microsoft and many other large companies. \r\n\r\nRust has a reputation of being difficult because it makes no effort to hide what is going on. I’d like to show you how I start with Rust projects. Let’s make a small HTTP service using Rocket. \r\n\r\n \r\n- Setting up your environment \r\n- A new project \r\n- Testing \r\n- Adding functionality \r\n- OpenAPI specifications \r\n- Error responses \r\n- Shipping it in a docker image ","url":"https://christine.website/blog/how-i-start-rust-2020-03-15","date_published":"2020-03-16T09:08:47Z","author":{"name":"Christine Dodrill"},"tags":["Getting Started"]},{"id":"f5fb9b4c-7eb2-4dbb-bb33-e918d04b5806","title":"Getting Acquainted with Rust — First Look","content_text":"You can probably tell by the title of this article that I’m working on learning Rust. Prior to the past week, I had no experience at all in the language, so it’s very fresh, and it’s been quite an adventure so far. My purpose in learning Rust was originally out of individual interest, but I quickly became interested in its potential for becoming a key portion of Apollo’s CLI toolchain. This article is just a brief overview of my experience learning Rust so far, and where I see myself going with it in the future!","url":"https://link.medium.com/GQwP9Q6ON4","date_published":"2020-03-12T21:30:44Z","author":{"name":"Jake Dawkins"},"tags":["Getting Started"]},{"id":"62e0b6a0-eb4e-45a7-9b68-59870057f7d5","title":"A C# programmer examines Rust - Part 1","content_text":"It’s a dark, gloomy February night and I can hear the rain pelting against the windows of my office, behind me. It’s late, but I’ve lost track of time. I am puzzling over some code, kind of hacking away at it, trying to gain clarity. On my second monitor there is a Discord channel running, which I’m trying to follow while experimenting on my own with the code. The book on my desk is open to Chapter 13 and I occasionally refer to it. Something about the problem I’m working on is not quite clicking, but I can feel it…I’m getting close to understanding.\r\n\r\nThe book is The Rust Programming Language and the Discord window is showing the #beginners channel on The Rust Programming Language Discord Server.","url":"https://twitter.com/MikeTreit/status/1236490499944353794?s=20","date_published":"2020-03-10T22:28:37Z","author":{"name":"Mike Treit"},"tags":["Getting Started"]},{"id":"fc1bc983-8bc6-4068-9107-5ef7140e3a3d","title":"Rust for Java Devs","content_text":"I’d like to take a change for this blog and leave the more bleeding edge topics to focus on perhaps one of the most important things one can do in the Rust community: teaching new Rust developers. I’ve been thinking about how best to approach teaching Rust to those used to working with Java, in order to bring a group of developers up to speed with the language for a new project.\r\n\r\nJava was the language I learned & abused in university, so my experience with it is somewhat anachronistic and I haven’t made any real attempt to keep up with the language. When I last wrote Java, if you wanted to pass a function as an argument, you had to declare a new interface or wrap a function in Callable<T>. Java has come along way since then. It’s added features that have a clear influence from functional programming and the ML lineage of langs. I’m talking about lambda’s, Optional types, etc. This article isn’t going to tell you to write everything in Rust, or that you need to throw out all your Java code. Java is a great language with valid use cases. I want to explore some comparisons between Java and Rust for the budding Rust programmer.","url":"https://leshow.github.io/post/rust_for_java_devs/","date_published":"2020-02-20T08:43:44Z","author":{"name":"Evan Cameron"},"tags":["Getting Started"]},{"id":"86b93dfe-d549-45ab-86c2-765cb3fcb825","title":"Rust Lang in a nutshell: 2# Enums, pattern matching and Options","content_text":"Before we begin, let me point out that the aim of the series is to give a gentle introduction to Rust programming language supported by some practical examples. Please note that this is not by any means a systematic introduction to Rust, but rather a coffee break story for those who heard a little bit about Rust and want to get better understanding of the features of the language.\r\n\r\nFor actual learners struggling hard with Rust these articles can be also of interest, mainly because of a possibly different perspective on selected topics or bringing up some details that may have escaped your attention while reading more comprehensive sources.\r\n\r\nIn this part we will discuss enums, pattern matching and, what is very characteristic of Rust, Options.","url":"https://www.softax.pl/blog/rust-lang-in-a-nutshell-2-enums-pattern-matching-options/","date_published":"2020-02-17T10:11:12Z","author":{"name":"Bartłomiej Kozielski"},"tags":["Getting Started"]},{"id":"1948276f-e332-4689-8485-16f807cde0de","title":"Rust adventures - Async [ Part 1 ]","content_text":"A while ago I realized that I was a visual learner which can be frustrating at times since some concepts might take me a bit longer to fully understand until I create the proper mental image(s) for it (or somebody else does it for me).\r\n\r\nWhen I started wrapping my head around Async programming in Rust I felt like I was missing some of those images. What follows is my attempt visualize the concepts around async programming.","url":"https://www.fmendez.com/rust-adventures-async/","date_published":"2020-02-17T10:03:29Z","author":{"name":"Fernando Mendez"},"tags":["Getting Started"]},{"id":"413c5046-9dbe-4104-8652-89392580538c","title":"Generating icosahedrons and hexspheres in Rust","content_text":"I’ve been trying to learn Rust lately, the hot new systems programming language. One of the projects I wanted to tackle with the speed of Rust was generating 3D polyhedron shapes. Specifically, I wanted to implement something like the Three.js IcosahedronGeometry in Rust. If you try to generate icosahedrons in Three.js over any detail level over 5 the whole browser will slow to a crawl. I think we can do better in Rust!","url":"https://www.hallada.net/2020/02/01/generating-icosahedrons-and-hexspheres-in-rust.html","date_published":"2020-02-05T08:38:14Z","author":{"name":"Tyler Hallada"},"tags":["Games and Graphics","Getting Started"]},{"id":"252512ae-1f5b-4fab-9dda-911c929b8112","title":"Rust Ownership by Example","content_text":"This beginner Rust tutorial, unlike most others, features ownership front-and-center. Short examples highlight the practical consequences of ownership. I'm no Rust expert. However, I have tried to choose examples that speak for themselves, and descriptions that jibe with reputable sources when possible.","url":"https://depth-first.com/articles/2020/01/27/rust-ownership-by-example/","date_published":"2020-02-03T06:50:27Z","author":{"name":"Richard L. Apodaca"},"tags":["Getting Started"]},{"id":"1dfaeb19-88bb-4b44-8022-09551c8d29eb","title":"Rust in a nutshell","content_text":"This is the first part of a mini-series of articles addressed to all who want to get familiar with Rust programming language. No previous background in Rust is expected, but understanding of basic concepts of programming languages may be of help. The articles try to skip trivia not to bore the reader, but have to bring them up occasionally for clarification purposes.","url":"https://www.softax.pl/blog/rust-lang-in-a-nutshell-1-introduction/","date_published":"2020-02-03T06:46:35Z","author":{"name":"Bartłomiej Kozielski"},"tags":["Getting Started"]},{"id":"27b3e9c8-de71-485f-8516-db31db97cd57","title":"A half-hour to learn Rust","content_text":"In order to increase fluency in a programming language, one has to read a lot of it. But how can you read a lot of it if you don't know what it means?\r\n\r\nIn this article, instead of focusing on one or two concepts, I'll try to go through as many Rust snippets as I can, and explain what the keywords and symbols they contain mean.\r\n\r\nReady? Go!","url":"https://fasterthanli.me/blog/2020/a-half-hour-to-learn-rust/","date_published":"2020-01-29T10:12:11Z","author":{"name":"Amos"},"tags":["Getting Started"]},{"id":"1f5e1cd9-fe1b-4162-8ab3-d943ebf01b7f","title":"Lessons learnt updating a library to std::future","content_text":"With the new std::future way of doing things and tokio slowly reaching maturation, it's time to look at updating the libraries out there that are using the old ways. For one of my libraries, tmq, a Tokio ZeroMQ library, there is some awesome work already done to get this updated.\r\n\r\nBut, I thought it pertinent to at least get my feet in the water to see how hard it would be, from a library maintainer perspective, to update to std::future. For this effort, I chose my small library: mpart-async. You can see the changes I have made by comparing the versions here. This blog is a small collection of notes & gotches I found when porting code across.","url":"https://cetra3.github.io/blog/mpart-async-0-3-0/","date_published":"2020-01-27T10:51:46Z","author":{"name":"cetra3"},"tags":["Getting Started"]},{"id":"666ee2a0-5aa4-4ea3-81c6-9bf830e07428","title":"Introduction to Rust for Node Developers","content_text":"In this article we will build a simple command line program that returns the word count of a file. This will essentially be a simpler version of the Unix utility wc, written in Rust. The goal of this article is to give an introduction to some core Rust concepts for readers who might be more familiar with web-focused languages such as JavaScript and Typescript. Therefore, the Rust code examples will be compared to similar code and concepts in JavaScript or TypeScript. This guide also assumes no prior knowledge of Rust or related tools, but it does assume you have node installed on your machine already.","url":"https://tndl.me/blog/2020/introduction-to-rust/","date_published":"2020-01-13T09:02:44Z","author":{"name":"Austin Tindle"},"tags":["Getting Started"]},{"id":"46f6d698-4ff0-4174-a291-e14c55b7c216","title":"Mutability in Rust for functions and closures ","content_text":"The aim of the exercise is simple. Start with an empty vector of unsigned integers - as it does not implement the Copy Trait - and create different types of functions and closures to push a new number to the original vector. Now that the goal is set, let's create and instantiate an empty vector.","url":"http://vegapit.com/article/mutability-in-rust-for-functions-and-closures","date_published":"2020-01-09T09:11:00Z","author":{"name":"Vegapit"},"tags":["Getting Started"]},{"id":"94cc12f5-c2cb-4e4a-8f32-415f874cc010","title":"Rust practise questions","content_text":"The book is written so that we newbie Rustaceans can easily dive in the language and get productive as fast as possible. This book is not an attempt to teach you Rust, it simply provides question for practise and it is not a tutorial.","url":"https://sn99.github.io/rust-practise-questions/","date_published":"2020-01-06T10:29:26Z","author":{"name":"Siddharth Naithani"},"tags":["Getting Started"]},{"id":"0250cdc0-652b-4ca2-a15a-4ad82a823bbb","title":"Rust and WebAssembly for masses - Introduction","content_text":"Rust slowly but steadily progressing into the world of web development.\r\n\r\nRust is easy to get started (if you wrap your head around the ownership model) and backed by an awesome community that is ready to help.\r\n\r\nRust provides the first class support for the WebAssembly. Rust and WebAssembly toolchain makes it easier and faster to get started with WebAssembly.\r\n\r\nJavaScript is easy. They enabled millions (even billions) of developers to start writing applications. The fast feedback loop while development and simple API. JavaScript provides a good performance. When optimised correctly, JavaScript may yield a better performance.\r\n\r\nThe performance that JavaScript provides is not reliable and consistent. Any optimisations to increase performance is not consistent across various JavaScript engines. This makes it difficult for developers to give a better optimised and consistent performance with JavaScript.","url":"https://dev.to/sendilkumarn/rust-and-webassembly-for-masses-introduction-1034","date_published":"2020-01-05T09:37:00Z","author":{"name":"Sendil Kumar N"},"tags":["Getting Started"]},{"id":"cbbdea2d-f5f0-4683-9e8a-5fceecd6d4b1","title":"Rustlings Course Adaptation","content_text":"The Educational Products platform provides support for a vast variety of modern programming languages, one of which is Rust, a modern multi-paradigm system programming language combining memory safety and high performance. It is best known for its reliability, efficiency, and an environment focused on your productivity. There are a lot of systems written in Rust, from low-level embedded ones to large scale web-servers.\r\n\r\nRust has one of the most supportive and engaged communities and, as a result, a very friendly onboarding process supported via “The Rust Programming Language” book and Rustlings.\r\n\r\nWe are excited to introduce the Educational Products adaptation of the Rustlings course – now available via the EduTools plugin!","url":"https://blog.jetbrains.com/blog/2019/12/19/rustlings-course-adaptation/","date_published":"2019-12-22T23:41:26Z","author":{"name":"Igor Gerasimov"},"tags":["Getting Started"]},{"id":"dc6d4ffb-5c3a-4e55-9071-17e1b32d6eac","title":"My journey with Rustlang","content_text":"I am Benoit Chassignol, technical consultant at LinkValue, currently working at M6 Web as FrontEnd developer on embedded solutions. I graduated in Multimedia Communication, and I have been working as a graphical designer 3 years. I started my journey as a developer by learning frontend integration by myself, after which I learned more about Javascript with ReactJS, Typescript, and now Node.\r\n\r\nWith that in mind, let's talk about my personal experience as I am about to reach a new turning point in my professional life.","url":"https://dev.to/oscape_/my-journey-with-rustlang-50h8","date_published":"2019-12-18T21:04:02Z","author":{"name":"Benoit Chassignol"},"tags":["Getting Started"]},{"id":"3b5f7eea-1d16-4f86-8b0e-a03846bb5ccf","title":"Building a basic command line calculator in Rust","content_text":"Together we're going to build a very basic calculator command line tool in this article. It'll be far from complete but it'll teach you a lot about Rust. I want to build a program that will take input on a command line through stdin and on pressing enter will perform the calculation and spit out the result. I'll go through a few iterations to get to where I want in order to help introduce as much as I can along the way. I'll make mistakes on purpose (honest) and show you what to do to correct them.","url":"https://dev.to/strottos/learn-rust-the-hard-bits-part-2-55l","date_published":"2019-12-12T13:55:37Z","author":{"name":"Steven Trotter"},"tags":["Getting Started"]},{"id":"6847f0d7-8bd1-441a-8a27-f2d799c11b57","title":"On porting code","content_text":"Of late, my main side project has been rug, a stripped-down Git implementation which I’m building in Rust. I’m following along James Coglan’s excellent book Building Git where he lays out how he went about building the same project, in Ruby. In essence, my project boils down to porting James’s code1 into Rust. But why bother with this at all?","url":"https://samrat.me/posts/2019-11-26-porting-code/","date_published":"2019-11-27T08:19:50Z","author":{"name":"Samrat Man Singh"},"tags":["Getting Started"]},{"id":"bdbc6070-45d5-40f6-8228-a8c2cc39f8f4","title":"Learning Rust: Look Ma, No Exceptions!","content_text":"My focus for this post (and other posts in this potential series) is to focus on other language features and idioms that may be unfamiliar to managed-language developers.\r\n\r\nIn my first post in this series, I talked about the fact that Rust does not have the concept of null. Rust does not have the concept of exceptions or the associated concept of try-catch blocks. Instead, in Rust we use an enum type called std::result::Result<T, E> . The T in the generic signature is the return result. The E represents the type of the Error should one occur.","url":"http://iextendable.com/2019/11/24/learning-rust-look-ma-no-exceptions/","date_published":"2019-11-24T22:19:44Z","author":{"name":"Chris McKenzie"},"tags":["Getting Started"]},{"id":"85dc97f4-70a2-42c4-b436-ed8f2bdcdc53","title":"My first impressions of Rust","content_text":"So I started learning Rust a while ago and since my post about what I thought of Go was popular, I decided to write about what my first impressions of Rust were as well.","url":"https://deepu.tech/first-impression-of-rust/","date_published":"2019-11-24T07:07:28Z","author":{"name":"Deepu K Sasidharan"},"tags":["Getting Started"]},{"id":"0428bdf3-8d01-4bfc-ac54-7f97460917ef","title":"Custom Implementation of Blockchain In Rust","content_text":"Hello folks, in this blog, we will be learning how to create our own Blockchain, which is a technology behind Bitcoin. Blockchain technology has been called the","url":"https://blog.knoldus.com/custom-implementation-of-blockchain-in-rustpart-1/","date_published":"2019-11-17T17:57:58Z","author":{"name":"Ayush Mishra"},"tags":["Getting Started"]},{"id":"3fc3ff70-1adf-4bd5-bb8a-15b77a658805","title":"Learning Rust","content_text":"I’ve been learning Rust lately. I have also got back to playing futsal with some friends. Weirdly enough, these two worlds intersected a few weeks ago. This is a summary of my experience learning Rust. Starting with reading about it here and there, eventually getting the book, doing a Hackathon project at Onfido using it and then spinning up my own personal project as a way to further experiment with the language.","url":"https://dnlserrano.dev/2019/11/11/learning-rust.html","date_published":"2019-11-11T00:00:00Z","author":{"name":"Daniel Serrano"},"tags":["Getting Started"]},{"id":"6fcfe5a8-280a-4f20-a269-7f1354c314e8","title":"My first ever zine, titled \"String and &str in Rust\"","content_text":"Zines (pronounced “zeens\") are small publications that come in the form of mini pamphlets or magazines!","url":"https://github.com/jeenalee/zines/blob/master/string-and-andstr-in-rust.pdf","date_published":"2019-11-09T00:33:18Z","author":{"name":"Jeena Lee"},"tags":["Getting Started"]},{"id":"276689b1-ba19-4308-9168-21951f3f372c","title":"Learning Rust by Contrasting with TypeScript: Part 1","content_text":"Seeing Rust as a potential successor to TypeScript, we go through through the Rust Book with TypeScript in mind.","url":"https://codeburst.io/learning-rust-by-contrasting-with-typescript-part-1-afb2e3f6ead8","date_published":"2019-11-07T14:28:54Z","author":{"name":"John Tucker"},"tags":["Getting Started"]},{"id":"5fd6f3d5-2732-4d86-9824-78928983ebdf","title":"Implementing a job queue in Rust","content_text":"I recently finished my first rust project - a command line utility called “what” that displays network utilization information. As a newcomer to rust, this project offered quite some challenges for me. This post is a write up of one of them, going into detail on the parts that I personally found most difficult to understand.\n\nIn this first post, I’d like to talk about implementing a job queue to resolve IPs into their hostnames by querying a remote DNS server.","url":"https://www.poor.dev/posts/what-job-queue/","date_published":"2019-10-30T00:00:00Z","author":{"name":"Aram Drevekenin"},"tags":["Getting Started","Language"]},{"id":"f625696c-a751-4e36-8ede-0cd24cf05534","title":"A closer look at Ownership in Rust","content_text":"In this article we'll take a closer look at Rust's Ownership model and how it manages memory.","url":"https://blog.thoughtram.io/ownership-in-rust/","date_published":"2019-10-28T00:00:00Z","author":{"name":"Pascal Precht"},"tags":["Getting Started"]},{"id":"8df278c2-e4c1-434b-9dd4-ca1ad1207200","title":"Getting Started with Rust by Building a Tiny Markdown Compiler","content_text":"My name is Jesse, and this is an introductory Rust tutorial for developers who like learning by doing. The purpose of this tutorial is to develop intuition about toolbuilding in Rust–specifically, to learn how to think and build in Rust. Our goal is to produce a very basic command line compiler that will turn a basic Markdown document containing headings and paragraphs into an html file. To do this, we will start from scratch by building a simple “Hello, World!” executable. Then, over the course of six chapters, iterate and expand until finally we can compile a very simple Markdown file into valid HTML.","url":"https://jesselawson.org/rust/getting-started-with-rust-by-building-a-tiny-markdown-compiler/","date_published":"2019-10-21T00:00:00Z","author":{"name":"Jesse Lawson"},"tags":["Getting Started"]},{"id":"44a70495-156b-4de1-8eff-0ef9e334368c","title":"Rust for JavaScript peeps","content_text":"People seem to like Rust a lot! But if you're coming from JavaScript, not everything may make a lot of sense at first. But no problem; this guide is for you! Because I think Rust and JavaScript are really similar in many ways; to the point that if you know JS it's mostly a matter of getting the hang of some of the nuances before you can more or less get the hang of Rust.","url":"https://github.com/yoshuawuyts/rust-for-js-people","date_published":"2019-10-17T07:58:16Z","author":{"name":"Yoshua Wuyts"},"tags":["Getting Started"]},{"id":"1154694c-7ad8-4ea5-bf37-1c1e4238dc46","title":"An intern's experience with Rust","content_text":"Over the course of my internship at the Microsoft Security Response Center (MSRC), I worked on the safe systems programming languages (SSPL) team to promote safer languages for systems programming where runtime overhead is important, as outlined in this blog. My job was to port a security critical network processing agent into Rust to eliminate …  An intern’s experience with Rust Read More »","url":"https://msrc-blog.microsoft.com/2019/10/16/an-interns-experience-with-rust/","date_published":"2019-10-16T21:26:29Z","author":{"name":"Alexander Clarke"},"tags":["Getting Started"]},{"id":"b741f301-dd98-4d7c-a82c-486b43242507","title":"Learning Rust at Hacktoberfest in 8 hours","content_text":"This year’s #hacktoberfest became a great opportunity for me to start learning Rust. In this article, I will share a couple of tricks about how to start mastering this relatively new technology.","url":"https://medium.com/@knidarkness/learning-rust-at-hacktoberfest-in-8-hours-7b788883c665","date_published":"2019-10-15T07:42:17Z","author":{"name":"Sergey Dubovyk"},"tags":["Getting Started"]},{"id":"d2c4db2a-402e-4451-b276-e7e4d459a6e1","title":"A deep dive into the Rust world of mutability","content_text":"This blog post will take a deep dive into the Rust world of mutability. By deep dive, it means the blog post is considerably long. So it will take time to go through the different examples. The topic we will dive through is specific but we will have to go through various Rust concepts: Ownership/Borrowing, Lifetimes, Unsafe, Sync, Closures, Macros and more. This might be intimidating and I think this is where many developers are put off.","url":"https://omarabid.com/rust-intro","date_published":"2019-10-10T20:21:30Z","author":{"name":"Abid Omar"},"tags":["Getting Started"]},{"id":"daa220b5-5e1a-4bea-8f0b-662182ce88be","title":"A detailed introduction to Rust with comparisons to TypeScript, JavaScript and Java","content_text":"This is a introduction to Rust, intended for developers that already know another language. In the examples, Rust is compared with TypeScript, JavaScript or Java, sometimes with C++ or Kotlin.","url":"https://overexact.com/rust-for-professionals/","date_published":"2019-10-07T06:06:00Z","author":{"name":"Pascal"},"tags":["Getting Started"]},{"id":"e3c786d5-955b-422a-b426-fcc3639d92c3","title":"Roguelike Tutorial: Up-to-date and Literate","content_text":"This tutorial will show you how to write a roguelike in the Rust programming language and the libtcod library. In this update the Asciidoctor documents were changed to allow generating the final source files at the end of each chapter directly from the tutorial text.","url":"https://aimlesslygoingforward.com/blog/2019/10/02/roguelike-tutorial-up-to-date-and-literate/","date_published":"2019-10-02T00:00:00Z","author":{"name":"Tomas Sedovic"},"tags":["Getting Started","Games and Graphics"]},{"id":"af51004e-4c8b-4a4c-a266-e530cf495e7a","title":"Rust Traits: Deep Dive","content_text":"Traits are the abstract mechanism for adding functionality to Types or it tells Rust compiler about functionality a type must provide. In a nutshell, Traits are Interfaces of other languages. In this article, I’ll talk about some deep concepts of Traits in Rust Programming.","url":"https://blog.knoldus.com/rust-traits-beyond-basics/","date_published":"2019-09-19T11:40:58Z","author":{"name":"Pawan Bisht"},"tags":["Getting Started"]},{"id":"feee8a1a-6c6b-45dc-a800-6d93d18e7b9a","title":"Declarative memory management","content_text":"It feels like an eternity since I’ve started using Rust, and yet I remember vividly what it felt like to bang my head against the borrow checker for the first few times.\r\n\r\nI’m definitely not alone in that, and there’s been quite a few articles on the subject! But I want to take some time to present the borrow checker from the perspective of its benefits, rather than as an opponent to fend with.","url":"https://fasterthanli.me/blog/2019/declarative-memory-management/","date_published":"2019-09-19T00:00:00Z","author":{"name":"Amos"},"tags":["Getting Started","Language"]},{"id":"e7878bb0-8dbe-40fc-8af3-54d3df4663c1","title":"Engineering Rust Web Applications","content_text":"This is a quick & dirty guide to building a web app using an all-rust stack: Diesel as an ORM, Rocket as a web framework, and Seed for the [WebAssembly] frontend. Read this book to learn how to quickly throw together a prototype application, all with your favorite programming language.","url":"https://erwabook.com/","date_published":"2019-09-01T00:00:00Z","author":{"name":"Brian St. Pierre"},"tags":["Getting Started","Web and Network Services"]},{"id":"4496f525-1bab-49f0-8239-95d165f8b0ec","title":"Rust By Comparison","content_text":"I really like learning new programming languages, especially the ones that make you reconsider some fundamental assumptions you make when writing code or designing a piece of software. I've been playing with Rust for some time now and I can definitely say that it's one of these languages.","url":"https://cesarb.org/rust-by-comparison/","date_published":"2019-08-29T14:29:44Z","author":{"name":"Cesar Barata"},"tags":["Getting Started"]},{"id":"343d5b14-c284-43bc-9e62-57362f606661","title":"Rusty Weather: My first Rust App","content_text":"Rusty Weather: My first Rust App I have wanted to learn a new language and framework, as well as I, know C# and .NET for many years. I have dabbled in several different ones, but the only one that I seemed to come back to continually was Python. After trying all kinds of languages over the last couple years, I decided I would give Rust a try. I have only been a consumer of garbage collected runtimes, so I was a bit hesitant to give it a try.","url":"https://www.phillipsj.net/posts/rusty-weather-my-first-rust-app/","date_published":"2019-08-26T20:58:40Z","author":{"name":"Jamie Phillips"},"tags":["Getting Started"]},{"id":"b6cfcf1b-2661-46f6-bf9e-c4137a915019","title":"My Rust Journey Part 1 — A Small Command Line Application","content_text":"I like having a difficult task to solve. One of those is my endeavor to truly learn a low-level programming language. My goal is to write really fast and safe APIs to supply data for visualizations on dashboards and in reports. I want to gain a fundamental understanding of how the language works, of the concepts and philosophy applied instead of trial-and-error with lots of googling. Sometimes it just makes sense to take your time.","url":"https://medium.com/@daniel_markow/my-rust-journey-part-1-a-small-command-line-application-a889d07896e","date_published":"2019-08-15T08:55:36Z","author":{"name":"Daniel Markow"},"tags":["Getting Started"]},{"id":"16a7b9b5-ad78-4644-93f1-fb81e3f6419b","title":"Learning Rust: Working with threads","content_text":"I used to live in the single-thread JavaScript happy-land where the closest thing to working with threads I ever did was communicating between a website and a Chrome extension. So when people talked about the difficulties of parallelism and concurrency, I never truly got what the fuss was about.\n\nAs you may have read before, I started learning Rust a few weeks ago, re-writing a text-based game I previously made with Vue. It's a survival game in which you must gather and craft items to eat and drink. It has no winning condition other than trying to survive as many days as possible. I managed to get most of the game features working, but there was an annoying bug: if the user left the game idle for hours, it didn't check for the stats until the user interacted again. You could live for hundreds of days without doing nothing!\n\nI knew this could be solved with threads, so I finally gathered the courage and read the chapter Fearless Concurrency of The Rust Programming Language.","url":"https://www.codegram.com/blog/learning-rust-threads/","date_published":"2019-08-12T00:00:00Z","author":{"name":"Núria Soriano"},"tags":["Getting Started"]},{"id":"e21ad158-7d23-47c3-82a4-0f76f651c6d9","title":"Rustacean Terminal Chat App in Rust","content_text":"Build a basic chat app with the Rust Programming Language.","url":"https://www.pubnub.com/blog/build-realtime-rust-chat-app-cursive-tui/","date_published":"2019-08-09T17:31:52Z","author":{"name":"Samba Diallo"},"tags":["Web and Network Services","Getting Started"]},{"id":"a4736472-659a-4d2a-9dc4-d4d12d342963","title":"Understanding Rust Through AVL Trees","content_text":"From<Elixir>, Into<Rust>. I loved learning the Elixir language and how its pragmatic supervision trees and process model taught me the value fault tolerance as a quality of code than of infrastructure. Having safety and failure recovery as an idiomatic culture and mindset of the language made me a better thinker and developer. As a personal preference then in selecting new languages to learn, I look for potentially new perspectives and insights that it ascribes to its pilgrims. In general, a good learning curve is a good indicator since it has much to teach.","url":"https://francismurillo.github.io/2019-07-31-Understanding-Rust-Through-AVL-Trees/","date_published":"2019-07-31T00:00:00Z","author":{"name":"Francis Murillo"},"tags":["Getting Started","Computer Science"]},{"id":"1a249517-dab9-4195-abad-c76c79fd0560","title":"Rust vs GUI","content_text":"Implications of Rust's borrow checking and memory ownership on GUI development (simple case)","url":"https://turbomack.github.io/posts/2019-07-28-rust-vs-gui.html","date_published":"2019-07-28T00:00:00Z","author":{"name":"Marek Fajkus"},"tags":["Getting Started"]},{"id":"c4f23f51-7f72-4671-aec3-de6849639309","title":"A little Rust program for the C major scale","content_text":"Well I am a professional programmer for over a decade now, so my brain is trained to remember algorithmic thinking. But it's not trained to retain music theory. Which leads me to my beginning life-hack of music theory .... write a music theory shell application in rust to help me understanding the underlying mathematical structures by implementing them. I will try to make this an ongoing regular exercise to combine of my two currently favorite things: Rust and Guitar playing / Music.","url":"https://chilimatic.hashnode.dev/a-little-rust-program-for-the-c-major-scale-cjyhc96hv001kvcs1heos8grg","date_published":"2019-07-24T14:23:00Z","author":{"name":"j"},"tags":["Getting Started"]},{"id":"1f02eefe-da84-472d-8df4-039766538e7f","title":"Baseball Coding with Rust – Part 2","content_text":"In Part 1, we introduced Rust and built a little program that allowed us to get all the GameDay links for a particular day. Today, we’ll dive right into code and begin the process of building out a complete game from the xml files. As much as possible, I’ll try to explain important concepts along the way as we build out the application. My goal is to deliver a crash course into baseball-centric programming in Rust, complete with code, theory and practical use, without getting too much into the weeds.","url":"https://tht.fangraphs.com/baseball-coding-with-rust-part-2/","date_published":"2019-07-24T00:00:00Z","author":{"name":"Eli Ben-Porat"},"tags":["Getting Started"]},{"id":"48855ece-4f3a-44aa-80a1-b86a03cc9538","title":"Baseball Coding with Rust – Intro","content_text":"From time to time, major league teams will post job offers on FanGraphs. Most of these postings, if not all of them, ask for a level of proficiency in Python or R. While these languages have built up tremendous ecosystems, especially for data science, they are limited in the amount of data they can handle.\n\nThis is not a flaw in either language, rather a design choice. Without getting into the weeds too much about language theory, each language plants itself somewhere on the performance/ease-of-use spectrum. Nothing in today’s piece should be construed as a critique of Python or R. Quite the contrary. Python and R are the bedrock languages of the data science worlds.\n\nToday, I would like to introduce you to Rust, a modern systems programming language that aims to be, in their words, “A language empowering everyone to build reliable and efficient software.” I can personally attest to this being the case.","url":"https://tht.fangraphs.com/baseball-coding-with-rust-intro/","date_published":"2019-07-23T10:00:52Z","author":{"name":"Eli Ben-Porat"},"tags":["Getting Started"]},{"id":"48e29784-dd63-4e7b-8586-bad8bc58be5b","title":"WebAssembly — Is It As Scary As It Sounds?","content_text":"Learn WebAssembly while building a Wasm-based QR decoder for the browser.","url":"https://medium.com/better-programming/webassembly-is-it-as-scary-as-it-sounds-b0c38fb2d9c8","date_published":"2019-07-18T22:17:48Z","author":{"name":"Jacky Efendi"},"tags":["Getting Started"]},{"id":"c8522e50-6845-428d-b2c4-84b9dcfddaa4","title":"Here be (owned) books: Rust ownership explained with books","content_text":"One of the biggest Rust’s pros is unique ownership system. Unfortunately, it is also one of the hardest thing to learn. In this article I will try to explain it the same way I had learnt it and how I introduce people to one.","url":"https://hauleth.dev/post/eli5-ownership/","date_published":"2019-07-14T16:38:48Z","author":{"name":"Łukasz Jan Niemier"},"tags":["Getting Started"]},{"id":"5d130478-b1c5-46b7-af4b-9e217dd138b2","title":"Rust Questions from Beginners, Including Me","content_text":"Information overload and I’m still trying to find a bigger project I can work on that interests me. I have the Interpreter to work on still, and that will take some serious work! But I’m also thinking of going back to small systems of my programming past and playing with writing them in Rust. In the meantime, I thought I’d sneak around the Rust #beginners channel on Discord and give everyone a peak at some questions (and hopefully some answers) that beginners are asking about their early Rust code.","url":"https://rust.graystorm.com/2019/07/11/rust-questions-from-beginners-including-me/","date_published":"2019-07-11T23:48:17Z","author":{"name":"Jeff Culverhouse"},"tags":["Getting Started"]},{"id":"7a2ae69b-3b31-45da-855b-592a86d96a6b","title":"CHIP-8 Emulator Rust Port","content_text":"I thought it would be a nice start to just take existing code and try to see how well it would translate from C++. I simply took my previous CHIP-8 emu and started to chip at it with the help of the docs. If you want to dive right in, here’s the code on GitHub. Anyway, it was my first go at Rust so go easy on me! =)","url":"https://ryp.github.io/emu/rust/chip8/2019/07/09/chip8-emulator-rust/","date_published":"2019-07-09T15:00:00Z","author":{"name":"Ryp"},"tags":["Getting Started"]},{"id":"0f371197-7406-4f9f-8460-b8a9e951ec27","title":"Rust for OOP - Enums & Pattern Matching - Part 2","content_text":"We will continue the previous post with two complementary examples. Both will demonstrate the capability of enums to push various language constructs and states into the type system. As an example for it, imagine we could create a type which represents an if statement, and then hand over instances of it around our program. Enums tends to work better than using the underlying concepts for various reason, starting from the complexity of the borrow checkers and lifetimes, through the powerful type system in Rust. And not less important, allowing you to code common patterns as functions, in a way otherwise wouldn’t be available to you. We will see all of this today. Later in the series, we will revisit those examples, and we will demonstrate how well they can compose with other code we can write.","url":"https://oribenshir.github.io/afternoon_rusting//blog/enum-and-pattern-matching-part-2","date_published":"2019-06-22T00:00:00Z","author":{"name":"Ori Ben-Shir"},"tags":["Getting Started"]},{"id":"c03bd61e-3c2d-4e4d-a081-ffa0e3b641ed","title":"Getting Started with Rust: Working with Files and Doing File I/O","content_text":"This article demonstrates how to perform basic file and file I/O operations in Rust, and also introduces Rust's ownership concept and the Cargo tool. If you are seeing Rust code for the first time, this article should provide a pretty good idea of how Rust deals with files and file I/O, and if you've used Rust before, you still will appreciate the code examples in this article. ","url":"https://www.linuxjournal.com/content/getting-started-rust-working-files-and-doing-file-io","date_published":"2019-06-20T00:00:00Z","author":{"name":"Mihalis Tsoukalos"},"tags":["Getting Started"]},{"id":"e7bf2504-b854-4a1d-b946-38075e83e97a","title":"Rust for OOP - Enums & Pattern Matching - Part 1","content_text":"We continue our series “Rust for OOP” with Enums & Pattern Matching, one of my preferred features of Rust. I didn’t hear about it before getting into the language, yet immediately fell in love with it. Enums are simple, expressive, reducing code bloat, enable encapsulation, easy to understand, and reason with. It also enables many useful design pattern. ","url":"https://oribenshir.github.io/afternoon_rusting/blog/enum-and-pattern-matching-part-1","date_published":"2019-06-17T00:00:00Z","author":{"name":"Ori Ben-Shir"},"tags":["Getting Started"]},{"id":"f9c3c42b-87f8-4edf-820b-aad48a409482","title":"essential rust tools","content_text":"Rust has a “community of developers empowered by their tools and each other” (via Katharina Fey in “An async story“). The Rust community helps each other through effective narrative documentation and attention to error messages, and the robust tooling around Rust drives momentum, overcoming some of the natural hurdles when diving into a new language.\n\nHere’s my list of essential rust tools (so far).","url":"https://www.ultrasaurus.com/2019/06/essential-rust-tools/","date_published":"2019-06-03T14:19:23Z","author":{"name":"Sarah Allen"},"tags":["Getting Started"]},{"id":"56e998a6-89d0-4a99-b11c-a541d35dc9a1","title":"Debugging with and without parameter in Rust","content_text":"Rust 1.32.0 introduced a macro dbg! for quick and dirty debugging with which you can inspect the value of a given expression. Rust 1.35.0 announced an improvement in this macro to make it more usable for Rustaceans. Now you can trace any fine and line number using this macro without passing any parameter.","url":"https://blog.knoldus.com/debugging-with-and-without-parameter-in-rust/","date_published":"2019-05-30T04:33:10Z","author":{"name":"Ayush Mishra"},"tags":["Getting Started"]}]}