├── .github ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── main.yml │ └── pr.yml ├── .markdown-link-check-config.json ├── .markdownlint.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── MAINTAINERS.md ├── README.md ├── da_DK.md ├── de_DE.md ├── es_ES.md ├── fr_FR.md ├── it_IT.md ├── ja_JP.md ├── ko_KR.md ├── pt_BR.md ├── ru_RU.md ├── tr_TR.md └── zh_CN.md /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | on: [push] 2 | 3 | jobs: 4 | lint: 5 | runs-on: ubuntu-latest 6 | steps: 7 | - uses: actions/checkout@v2 8 | - uses: DavidAnson/markdownlint-cli2-action@v4 9 | with: 10 | globs: | 11 | *.md 12 | #MAINTAINERS.md 13 | 14 | check_links: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@v2 18 | - uses: actions/setup-node@v3 19 | with: 20 | node-version: 16 21 | 22 | - name: Check links 23 | run: npx markdown-link-check -c .markdown-link-check-config.json README.md 24 | 25 | - name: Check links da_DK 26 | run: npx markdown-link-check da_DK.md 27 | 28 | - name: Check links de_DE 29 | run: npx markdown-link-check de_DE.md 30 | 31 | - name: Check links es_ES 32 | run: npx markdown-link-check es_ES.md 33 | 34 | - name: Check links fr_FR 35 | run: npx markdown-link-check fr_FR.md 36 | 37 | - name: Check links it_IT 38 | run: npx markdown-link-check it_IT.md 39 | 40 | - name: Check links ja_JP 41 | run: npx markdown-link-check ja_JP.md 42 | 43 | - name: Check links ko_KR 44 | run: npx markdown-link-check ko_KR.md 45 | 46 | - name: Check links pt_BR 47 | run: npx markdown-link-check pt_BR.md 48 | 49 | - name: Check links ru_RU 50 | run: npx markdown-link-check ru_RU.md 51 | 52 | - name: Check links tr_TR 53 | run: npx markdown-link-check tr_TR.md 54 | 55 | - name: Check links zh_CN 56 | run: npx markdown-link-check zh_CN.md 57 | -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- 1 | on: [pull_request] 2 | 3 | jobs: 4 | lint: 5 | runs-on: ubuntu-latest 6 | steps: 7 | - uses: actions/checkout@v2 8 | - uses: actions/setup-node@v3 9 | with: 10 | node-version: 16 11 | 12 | - name: Lint markdown 13 | run: npx markdownlint-cli2 "*.md" "#MAINTAINERS.md" 14 | -------------------------------------------------------------------------------- /.markdown-link-check-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignorePatterns": [ 3 | { 4 | "pattern": "^https://github.com" 5 | }, 6 | { 7 | "pattern": "^https://www.google.com" 8 | }, 9 | { 10 | "pattern": "^https://www.amazon.com" 11 | }, 12 | { 13 | "pattern": "^https://www.manning.com" 14 | }, 15 | { 16 | "pattern": "^https://readrust.net" 17 | }, 18 | { 19 | "pattern": "^https://cheats.rs/" 20 | }, 21 | { 22 | "pattern": "^https://web.archive.org" 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "default": true, 3 | "line-length": false, 4 | "no-space-in-links": false, 5 | "no-inline-html": false 6 | } 7 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at PR. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | This resource was made by the Rust community and wouldn't be possible without you! We appreciate and recognize [all contributors](https://github.com/ctjhoa/rust-learning/graphs/contributors). 4 | 5 | In order to contribute to this repository you need to **fork** it, then you can create a pull request. 6 | 7 | ## Pull requests 8 | 9 | - **To add, remove, or change things on the list:** Submit a pull request 10 | 11 | To set this list apart from and complement the excellent [Rust docs](https://www.rust-lang.org/en-US/documentation.html), rust-learning is a specially curated list for high-quality resources. 12 | 13 | - List items should be sorted *alphabetically*. 14 | - Each item should be limited to one link. 15 | - The link should have an author if known 16 | - At least 3 items are needed to create a new category. 17 | - Linters checks should be successful 18 | 19 | Please contribute links to resources you have used or are familiar with. This will help ensure high-quality entries. 20 | 21 | If you removed our PR template you can find it [here](https://github.com/ctjhoa/rust-learning/blob/master/.github/PULL_REQUEST_TEMPLATE.md). 22 | 23 | ## Maintainers 24 | 25 | To make sure every PR is checked, we have [team maintainers](MAINTAINERS). Every PR should be reviewed by at least two maintainers before it can get merged if the team is not outnumbered. 26 | 27 | The maintainers will review your PR and notify you and tag it in case any information is still missing. 28 | You can also apply to become a maintainer by submitting a PR. 29 | 30 | ## Reporting issues 31 | 32 | Please open an issue if you would like to discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes resources fall into abandonment or have broken links for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes resources are just going through transitions. Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition but are otherwise worthy of being on the list. 33 | 34 | Thank you for your suggestions! 35 | -------------------------------------------------------------------------------- /MAINTAINERS.md: -------------------------------------------------------------------------------- 1 | Camille Tjhoa (@ctjhoa) 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # rust-learning [![Build Status](https://github.com/ctjhoa/rust-learning/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/ctjhoa/rust-learning/actions/workflows/main.yml) 2 | 3 | A bunch of links to blog posts, articles, videos, etc for learning Rust. Feel free to submit a pull request if you have some links/resources to add. Also, I try to verify that the articles below have some real content (i.e. they aren't 2 paragraph long blog posts with little information) to ensure I'm not listing "fluff" pieces. If you have an idea for a better way to organize these links, please let me know. 4 | 5 | ## Introduction 6 | 7 | *Do you want to be convinced that Rust is worth learning?* Let us show you the [True Nature of the Force](https://brson.github.io/fireflowers/). 8 | 9 | The main documentation is always the best beginning, so if you haven't read it yet, start by reading the [Rust docs](https://www.rust-lang.org/en-US/documentation.html). You can also have the ebook versions of the doc [here](http://killercup.github.io/trpl-ebook/) and [here](https://github.com/lise-henry/books/). 10 | 11 | ### Tag meanings 12 | 13 | * :star: Something made by a rust team member. 14 | * :end: Concepts are still useful but code could not compile. 15 | * :soon: Work In Progress. 16 | 17 | ## Table of Contents 18 | 19 | * [Books](#books) 20 | * [Videos](#videos) 21 | * [Playlists](#playlists) 22 | * [Presentations](#presentations) 23 | * [Podcasts](#podcasts) 24 | * [Rust in practice](#rust-in-practice) 25 | * [Best Practices/Style Guides](#best-practicesstyle-guides) 26 | * [Cheat sheets](#cheat-sheets) 27 | * [Rust internals](#rust-internals) 28 | * [Compilation](#compilation) 29 | * [FFI](#ffi) 30 | * [CI / Testing](#ci--testing) 31 | * [Debug / Profiling](#debug--profiling) 32 | * [Are we ... yet?](#are-we--yet) 33 | * [Comparison with Other Languages](#comparison-with-other-languages) 34 | * [Applications / Libraries / Tools](#applications--libraries--tools) 35 | * [Language stuff](#language-stuff) 36 | * [Async](#async) 37 | * [Closures](#closures) 38 | * [Documentation](#documentation) 39 | * [Enums](#enums) 40 | * [Errors](#errors) 41 | * [Iterators](#iterators) 42 | * [Lifetime](#lifetime) 43 | * [MIR](#mir) 44 | * [Modules](#modules) 45 | * [Option & Result](#option--result) 46 | * [Ownership / Concurrency](#ownership--concurrency) 47 | * [Privacy](#privacy) 48 | * [Strings](#strings) 49 | * [Syntax extensions](#syntax-extensions) 50 | * [Traits](#traits) 51 | * [Unsafe](#unsafe) 52 | * [Playground](#playground) 53 | * [Locale links](#locale-links) 54 | * [People](#people) 55 | * [Fearless Rust Bloggers](#fearless-rust-bloggers) 56 | * [Tutorials & Workshop Materials](#tutorials--workshop-materials) 57 | * [Similar projects](#similar-projects) 58 | 59 | ## Books 60 | 61 | * :star: [The Rust Programming Language](https://doc.rust-lang.org/stable/book/) - [repo](https://github.com/rust-lang/book) 62 | * :star: [The Rust Reference](https://doc.rust-lang.org/stable/reference/) - [repo](https://github.com/rust-lang/reference) 63 | * :star: [The Rustonomicon - The Dark Arts of Advanced and Unsafe Rust Programming](https://doc.rust-lang.org/stable/nomicon/) - [repo](https://github.com/rust-lang/nomicon) 64 | * :star: [The Unstable Book](https://doc.rust-lang.org/stable/unstable-book/) - [repo](https://github.com/rust-lang/rust/tree/master/src/doc/unstable-book) 65 | * :star: [The Rust Edition Guide](https://doc.rust-lang.org/edition-guide/) - [repo](https://github.com/rust-lang/edition-guide) 66 | * :star: [The Rust Async Book](https://rust-lang.github.io/async-book/) - [repo](https://github.com/rust-lang/async-book) 67 | * :star: [Rust Cookbook](https://rust-lang-nursery.github.io/rust-cookbook/) - [repo](https://github.com/rust-lang-nursery/rust-cookbook) 68 | * :star: [Why Rust?](https://www.oreilly.com/content/why-rust/) - [Jim Blandy][] 69 | * :star: [The Embedded Rust Book](https://rust-embedded.github.io/book/intro/index.html) - [repo](https://github.com/rust-embedded/book) - Rust Embedded WG 70 | * :star: [The Cargo Book](https://doc.rust-lang.org/stable/cargo/) - [repo](https://github.com/rust-lang/cargo/tree/master/src/doc) 71 | * [Rust-101](https://www.ralfj.de/projects/rust-101/main.html) - Ralf Jung 72 | * [Rust Essentials](https://www.packtpub.com/application-development/rust-essentials-second-edition) - Ivo Balbaert 73 | * [Programming Rust](http://shop.oreilly.com/product/0636920040385.do) - [Jim Blandy][], Jason Orendorff 74 | * [Mastering Rust - Second Edition](https://www.packtpub.com/application-development/mastering-rust-second-edition) - Rahul Sharma & Vesa Kaihlavirta 75 | * :soon: [Refactoring to Rust](https://www.manning.com/books/refactoring-to-rust) - [repo](https://github.com/natemara/refactoring-to-rust) - Nate Mara 76 | * :star: [Rust Anthology](https://github.com/brson/rust-anthology) - [Brian Anderson][] 77 | * [Rust in Action](https://www.manning.com/books/rust-in-action) - [repo](https://github.com/rust-in-action/code) - [Tim McNamara][] 78 | * [Zero To Production In Rust](https://zero2prod.com) - [repo](https://github.com/LukeMathWalker/zero-to-production) - [Luca Palmieri][] 79 | * [Network Programming in Rust](https://www.packtpub.com/application-development/network-programming-rust) - Abhishek Chanda 80 | * [Learning Rust](https://www.packtpub.com/application-development/learning-rust) - Paul Johnson, Vesa Kaihlavirta 81 | * [Rust Cookbook](https://www.packtpub.com/application-development/rust-cookbook) - Vigneshwer Dhinakaran 82 | * [Learning Rust](https://learning-rust.github.io/) - [Dumindu Madunuwan][] 83 | * [A Gentle Introduction To Rust](http://stevedonovan.github.io/rust-gentle-intro/readme.html) - [Steve Donovan][] 84 | * [Step Ahead with Rust](https://www.amazon.com/dp/0999361805/) - Jonathan Creekmore 85 | * :star: [Rust Programming By Example](https://www.amazon.com/dp/1788390636) - Guillaume Gomez and Antoni Boucher 86 | * [Beginning Rust - From Novice to Professional](https://www.apress.com/us/book/9781484234679) - Carlo Milanesi 87 | * [Hands-On Concurrency with Rust](https://www.amazon.com/dp/1788399978) - Brian Troutwine 88 | * [Hands-On Functional Programming in Rust](https://www.amazon.com/dp/1788839358) - Andrew Johnson 89 | * [Hands-On Rust Effective Learning through 2D Game Development and Play](https://pragprog.com/titles/hwrust/hands-on-rust) - Herbert Wolverson 90 | * [Hands-On Microservices with Rust](https://www.packtpub.com/web-development/hands-microservices-rust) - Denis Kolodin 91 | * [Hands-On Data Structures and Algorithms with Rust](https://www.packtpub.com/application-development/hands-data-structures-and-algorithms-rust) - Claus Matzinger 92 | * [Rust Standard Library Cookbook](https://www.amazon.com/Rust-Standard-Library-Cookbook-leverage/dp/1788623924) - Daniel Durante, Jan Nils Ferner 93 | * [Rust Quick Start Guide](https://www.amazon.com/Rust-Quick-Start-Guide-programming/dp/1789616700) - Daniel Arbuckle 94 | * [Rust High Performance](https://www.amazon.com/Rust-High-Performance-performance-applications/dp/178839948X) - Iban Eguia Moraza 95 | * [Programming WebAssembly with Rust](https://pragprog.com/titles/khrust/programming-webassembly-with-rust/) - Kevin Hoffman 96 | * [Hands-On Microservices with Rust 2018: How To Build Scalable and Reliable RESTful Microservices](https://www.amazon.co.uk/Hands-Microservices-Rust-2018-Scalable/dp/1789342759/ref=sr_1_6?s=books&ie=UTF8&qid=1545340800&sr=1-6&keywords=rust) - Denis Kolodin 97 | * [Hands-On Data Structures and Algorithms with Rust](https://www.packtpub.com/application-development/hands-data-structures-and-algorithms-rust) - Claus Matzinger 98 | * [The Complete Rust Programming Reference Guide: Design, develop, and deploy effective software systems using the advanced constructs of Rust](https://www.amazon.com/Complete-Rust-Programming-Reference-Guide/dp/1838828109) - - Vesa Kaihlavirta, Rahul Sharma, Claus Matzinger 99 | * [Easy Rust](https://github.com/Dhghomon/easy_rust) - David MacLeod 100 | * [Rust Web Development](https://www.manning.com/books/rust-web-development) - [repo](https://github.com/Rust-Web-Development/code) - Bastian Gruber 101 | * [The Little Book of Rust Books](https://lborb.github.io/book/) - [repo](https://github.com/lborb/book) 102 | * [Rust Servers, Services, and Apps](https://www.manning.com/books/rust-servers-services-and-apps) - Prabhu Eshwarla 103 | * [Code Like a Pro in Rust](https://www.manning.com/books/code-like-a-pro-in-rust) - Brenden Matthews 104 | * [Rust for Rustaceans](https://nostarch.com/rust-rustaceans) - Jon Gjengset 105 | * [Rust From the Ground Up](https://rftgu.rs/) - Matthew Provost 106 | * [Comprehensive Rust](https://google.github.io/comprehensive-rust/) - Google 107 | * [Rust Atomics and Locks](https://learning.oreilly.com/library/view/-/9781098119430/) - Mara Bos 108 | * [Command-Line Rust](https://www.oreilly.com/library/view/command-line-rust/9781098109424/) - Ken Youens-Clark 109 | * [High Assurance Rust: Developing Secure and Robust Software](https://highassurance.rs/) - Tiemoko Ballo 110 | 111 | ## Videos 112 | 113 | ### Playlists 114 | 115 | * :star: [Rust and the Future of Systems Programming](https://www.youtube.com/playlist?list=PLo3w8EB99pqJ74XIGe72c9hBZWz9Y16cY) - Mozilla 116 | * [RustFest Zürich 2017](https://www.youtube.com/watch?v=jywiVWKm1TI&list=PL85XCvVPmGQj9mqbJizw-zi-EhcpS5jTP) 117 | * [ABitWiseGuy Tutorials](https://www.youtube.com/watch?v=y-ks-_VDkiA&list=PL0Fqs05rod8D80WKBCeT326CT8vcAm_N9) - ABitWiseGuy 118 | * [dcode Tutorials](https://www.youtube.com/watch?v=vOMJlQ5B-M0&list=PLVvjrrRCBy2JSHf9tGxGKJ-bYAN_uDCUL) - dcode 119 | * [maxday_coding](https://www.youtube.com/watch?v=Idys2BAmqIU&list=PLCqkr2gc0bmZZOvjXC6BJGTGEuah_1Hbi) - ASMR Live Coding 120 | * [Tensor Programming Tutorials](https://www.youtube.com/watch?v=EYqceb2AnkU&list=PLJbE2Yu2zumDF6BX6_RdPisRVHgzV02NW) - Tensor Programming 121 | * [Hello Rust!](https://www.youtube.com/channel/UCZ_EWaQZCZuGGfnuqUoHujw) - Matthias Endler 122 | * [YouCodeThings](https://www.youtube.com/channel/UC0yCXVwW6FdDQGYA-3OWXxw/) - Andrew Jakubowicz 123 | * :star: :soon: [Rust in Motion](https://www.manning.com/livevideo/rust-in-motion) - Video course by [Carol Nichols][] and Jake Goulding 124 | * [Learn Rust in 7 Days](https://www.packtpub.com/application-development/learn-rust-7-days-video) - Matthew Stoodley 125 | * [Rust Tutorial](https://www.youtube.com/watch?v=Az3jBd4xdF4&list=PLLqEtX6ql2EyPAZ1M2_C0GgVd4A-_L4_5) - Doug Milford 126 | * [Rust](https://www.youtube.com/watch?v=bR4nGWmfzTk&list=PLVhhUNGAUIQScqB26DdUq4n1Y2n3auM7X) - Crazcalm's Tech Stack 127 | * [Rust Advent of Code 2019](https://www.youtube.com/playlist?list=PLQXBtq4j4Ozkx3r4eoMstdkkOG98qpBfg) - Brian Myers 128 | * [The Rust Programming Language | Tutorials](https://www.youtube.com/playlist?list=PLK_g1a_cAfaaAO6io1Tluy7EZXhAAK1lC) - danlogs 129 | * [Ryan Levick's Rust Stream](https://www.youtube.com/channel/UCpeX4D-ArTrsqvhLapAHprQ/videos) - Ryan Levick 130 | * [Crust of Rust](https://www.youtube.com/playlist?list=PLqbS7AVVErFiWDOAVrPt7aYmnuuOLYvOa) - Jon Gjengset 131 | * [ULTIMATE Rust Lang Tutorial!](https://www.youtube.com/watch?v=OX9HJsJUDxA&list=PLai5B987bZ9CoVR-QEIN9foz4QCJ0H2Y8) - Let's Get Rusty 132 | * [Overview of the Rust Programming Language](https://www.youtube.com/watch?v=gesNaLkUJeA&list=PLP2yfE2-FXdQmXLvrQ5QN64enbF_KCYQW) - [Jonathan Turner][] 133 | * [Manning Publications Rust channel](https://www.youtube.com/c/ManningPublications/search?query=rust) - Manning Publications 134 | * [Introduction to Programming with Rust](https://www.youtube.com/playlist?list=PLbtjxiXev6lpd331MW2dB7UgSIovgv169) - Rhymu's Videos 135 | * [Rust Linz](https://www.youtube.com/playlist?list=PL85XCvVPmGQgL3lqQD5ivLNLfdAdxbE_u) - A Rust Meetup aimed at beginners 136 | * [Rust Programming Tutorial 🦀](https://www.youtube.com/playlist?list=PLDbRgZ0OOEpUkWDGqp91ODn0dk7LPBAUL) - Rust fundamentals YouTube playlist by [Trevor Sullivan](https://docs.opensrc.dev) 137 | 138 | ### Presentations 139 | 140 | * 2021-06-25 - [How to learn Rust](https://youtu.be/sDtQaO5_SOw) - [Tim McNamara][] 141 | * 2021-06-01 - [A Firehose of Rust, for busy people who know some C++](https://www.youtube.com/watch?v=IPmRDS0OSxM) - Jack O'Connor 142 | * 2020-09-21 - [live@Manning Rust Conference](https://www.youtube.com/watch?v=9nINNurVqz8) - [Carol Nichols][], [Tim McNamara][], Maciej Hirsz, Olivia Ifrim, Nell Shamrell-Harrington, Pierre Krieger, Richard Walters, Chris Griffing, Lachezar Lechev, Michael Hausenblas 143 | * 2018-08-17 - [Using Rust For Game Development](https://www.youtube.com/watch?v=aKLntZcp27M) - Catherine West 144 | * 2017-06-20 - :star: [Rust: Putting Ownership to Use](https://www.youtube.com/watch?v=wXoY91w4Agk) - [Niko Matsakis][] 145 | * 2017-01-20 - [Rust 101](https://www.youtube.com/watch?v=FMqydRampuo) - E. Dunham 146 | * 2016-09-28 - [Mozilla's Rust and why we love it](https://www.youtube.com/watch?v=LuNhkRxP2E4) - Cambridge Consultants 147 | * 2016-09-25 - :star: [into_rust() - Screencasts for learning rust!](http://intorust.com/) - [Niko Matsakis][] 148 | * 2016-08-28 - :star: [Rust: Safe and Scalable Systems Programming](https://www.youtube.com/watch?v=GbWECt0M3CI) - [Alex Crichton][] 149 | * 2016-06-21 - :star: [The History of Rust](https://www.youtube.com/watch?v=79PSagCD_AY) - [Steve Klabnik][] 150 | * 2015-08-01 - :star: [RustCamp 2015](https://www.youtube.com/watch?v=0qIAk5sTwEo&list=PLE7tQUdRKcybdIw61JpCoo89i4pWU5f_t) 151 | * 2015-06-22 - [LambdaConf 2015 - In Rust We Trust](https://www.youtube.com/watch?v=-dxqbhLIgdM) - Alex Burkhart 152 | * 2015-06-13 - :star: [What Is Rust?](http://www.infoq.com/presentations/rust-gc) - [Yehuda Katz][] 153 | * 2015-04-11 - [My Python's a little Rust-y](https://www.youtube.com/watch?v=3CwJ0MH-4MA) - [Dan Callahan][] 154 | * 2015-03-12 - :star: [Stanford Seminar](https://www.youtube.com/watch?v=O5vzLKg7y-k) - [Aaron Turon][] 155 | 156 | ## Podcasts 157 | 158 | * [Moves and Borrowing In Rust With Jim Blandy](https://corecursive.com/016-moves-and-borrowing-in-rust-with-jim-blandy/) - Adam Bell 159 | * [New Rustacean](https://pca.st/DG0A) - [Chris Krycho][] 160 | * [The Request for Explanation Podcast: A weekly discussion of Rust RFCs](https://request-for-explanation.github.io/podcast/) - [Manish Goregaokar][] 161 | * [Rust And Bitter C++ Developers With Jim Blandy](https://corecursive.com/013-rust-and-bitter-c-developers-with-jim-blandy/) - Adam Bell 162 | * [AreWePodcastYet](https://soundcloud.com/arewepodcastyet) 163 | * [Rustacean Station](https://rustacean-station.org/) 164 | 165 | ## Rust in practice 166 | 167 | * :star: [Rust By Example](https://doc.rust-lang.org/stable/rust-by-example/) - [Jorge Aparicio][] and [Steve Klabnik][] - [repo](https://github.com/rust-lang/rust-by-example) 168 | * [rosettacode](https://github.com/Hoverbear/rust-rosetta) - [Ana Hoverbear][] 169 | * [Why your first FizzBuzz implementation may not work](http://chrismorgan.info/blog/rust-fizzbuzz.html) - [Chris Morgan][] 170 | * :star: [An annotation of the Rust standard library](https://github.com/brson/annotated-std-rs) - [Brian Anderson][] 171 | * [ProjectEulerRust](https://github.com/gifnksm/ProjectEulerRust) - gifnksm 172 | * [Advent of Code](https://github.com/LD250/adventofcode_rust) - Denys Levchenko 173 | * [Rust in Detail: Writing Scalable Chat Service from Scratch](https://nbaksalyar.github.io/) - Nikita Baksalyar 174 | * :star: [rustlings: small rust exercises](https://github.com/carols10cents/rustlings) - [Carol Nichols][] 175 | * [Learning Rust With Entirely Too Many Linked Lists](http://cglab.ca/~abeinges/blah/too-many-lists/book/) - [Alexis Beingessner][] 176 | * :star: [Let's build a browser engine!](http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) - Matt Brubeck 177 | * [Understanding Over Guesswork](http://hoverbear.org/2015/09/12/understand-over-guesswork/) - [Ana Hoverbear][] 178 | * [Writing an OS in Rust 1st edition](http://os.phil-opp.com/) [2nd edition](https://os.phil-opp.com/second-edition/) - Philipp Oppermann 179 | * [Creating Nintendo 64 emulator from scratch in Rust!](https://www.youtube.com/playlist?list=PL-sXmdrqqYYcznDg4xwAJWQgNL2gRray2) - Jake Taylor 180 | * [The Many Kinds of Code Reuse in Rust](http://cglab.ca/~abeinges/blah/rust-reuse-and-recycle/) - [Alexis Beingessner][] 181 | * [Make a Lisp](https://github.com/kanaka/mal) - Joel Martin 182 | * :star: [Modeling Graphs in Rust Using Vector Indices](http://smallcultfollowing.com/babysteps/blog/2015/04/06/modeling-graphs-in-rust-using-vector-indices/) - [Niko Matsakis][] 183 | * [24 days of Rust series](https://siciarz.net/tag/24%20days%20of%20rust/) - Zbigniew Siciarz 184 | * :star: [Rust Cookbook](https://github.com/brson/rust-cookbook) 185 | * :star: [Rust and CSV Parsing](http://blog.burntsushi.net/csv/) - [Andrew Gallant][] 186 | * [Algorithm Cookbook in Rust](https://github.com/EbTech/rust-algorithms) - Aram Ebtekar 187 | * :star: [stdx - The missing batteries of Rust](https://github.com/brson/stdx) - [Brian Anderson][] 188 | * [Rust - exercism.org](https://exercism.org/tracks/rust) 189 | * [Building a DNS server in Rust](https://github.com/EmilHernvall/dnsguide) - Emil Hernvall 190 | * [Rust Crash Course](https://www.snoyman.com/feed/rust-crash-course) - Michael Snoyman 191 | * [Web browser from scratch in Rust](https://joshondesign.com/tags/browser) - Josh Marinacci 192 | * [Tour of Rust](https://tourofrust.com/) - Richard Anaya 193 | * [PNGme: An Intermediate Rust Project](https://jrdngr.github.io/pngme_book/) - Jordan Grace 194 | * [Create Your Own Programming Language with Rust](https://createlang.rs/) - Ehsan M. Kermani 195 | * :star: [Command Line Applications in Rust](https://rust-cli.github.io/book/) - Rust CLI working 196 | * [Writing a file system from scratch in Rust](https://blog.carlosgaldino.com/writing-a-file-system-from-scratch-in-rust.html) - Carlos Galdino 197 | * [Hecto: Build your own text editor in Rust](https://www.flenker.blog/hecto/) - Philipp Flenker 198 | * [Rust sokoban](https://sokoban.iolivia.me/) - Olivia Ifrim 199 | * [Rust Gym](https://github.com/warycat/rustgym) - Yinchu Xia 200 | * :star: [Rust Quiz](https://dtolnay.github.io/rust-quiz) - [David Tolnay][] 201 | * [Blessed - An unofficial guide to the Rust ecosystem](https://blessed.rs/crates) - Nico Burns 202 | * [Build a Lua Interpreter in Rust](https://wubingzheng.github.io/build-lua-in-rust/en/) - Wu Bingzheng 203 | * [Object Soup is Made of Indexes](https://jacko.io/object_soup.html) - Jack O'Connor 204 | * [Implementing a BitTorrent client in Rust](https://www.youtube.com/watch?v=jf_ddGnum_4&t=135s&ab_channel=JonGjengset) - Jon Gjengset 205 | * [Rust on Serverless](https://www.youtube.com/watch?v=i6FKvK5JQ8o&list=PLCOG9xkUD90KQ1IPQT_m1NbPRXXRFb63s) - YouTube playlist exploring the use of Rust to build serverless applications by [James Eastham](https://jameseastham.co.uk) 206 | 207 | ## Best Practices/Style Guides 208 | 209 | * :star: [Rust Design Patterns](https://github.com/nrc/patterns) - [Nick Cameron][] 210 | * :star: [Error Handling in Rust](http://blog.burntsushi.net/rust-error-handling/) - [Andrew Gallant][] 211 | * :star: [Rust API guidelines](https://github.com/rust-lang/api-guidelines) - [Brian Anderson][] 212 | * [Design Patterns in Rust](https://github.com/fadeevab/design-patterns-rust) - [Alexander Fadeev][] 213 | * [Reading Rust Function Signatures](http://hoverbear.org/2015/07/10/reading-rust-function-signatures/) - [Ana Hoverbear][] 214 | * [Good Practices for Writing Rust Libraries](https://pascalhertleif.de/artikel/good-practices-for-writing-rust-libraries/) - [Pascal Hertleif][] 215 | * [Rustic Bits](https://llogiq.github.io/2016/02/11/rustic.html) - [Llogiq][] 216 | * [Pretty State Machine Patterns in Rust](https://hoverbear.org/2016/10/12/rust-state-machine-pattern/) - [Ana Hoverbear][] 217 | * [Elegant Library APIs in Rust](https://scribbles.pascalhertleif.de/elegant-apis-in-rust.html) - [Pascal Hertleif][] 218 | * [Rust Performance Pitfalls](https://llogiq.github.io/2017/06/01/perf-pitfalls.html) - [Llogiq][] 219 | * [How to write CRaP Rust code](https://blog.logrocket.com/how-to-write-crap-rust-code/) - [Llogiq][] 220 | * [The Rust Performance Book](https://github.com/nnethercote/perf-book) - Nicholas Nethercote 221 | * [The Typestate Pattern in Rust](http://cliffle.com/blog/rust-typestate/) - Cliff L. Biffle 222 | 223 | ## Cheat sheets 224 | 225 | * :star: [Syntax Index](https://doc.rust-lang.org/book/syntax-index.html) 226 | * [Rust Iterator Cheat Sheet](https://danielkeep.github.io/itercheat_baked.html) - [Daniel Keep][] 227 | * [Rust String Conversions Cheat Sheet](https://docs.google.com/spreadsheets/d/19vSPL6z2d50JlyzwxariaYD6EU2QQUQqIDOGbiGQC7Y/pubhtml?gid=0&single=true) - GavinB 228 | * [Rustic Symmetries](https://github.com/kmcallister/rustic-symmetries/blob/master/README.md#rustic-symmetries) - kmc 229 | * [Rust Container Cheat Sheet](https://docs.google.com/presentation/d/1q-c7UAyrUlM-eZyTo1pd8SZ0qwA_wYxmPZVOQkoDmH4/edit?usp=sharing) - Raph Levien 230 | * [Graphical depiction of ownership and borrowing in Rust](https://rufflewind.com/img/rust-move-copy-borrow.png) - Phil Ruffwind 231 | * [Lifetime Reference](https://charlesetc.inclouds.space/lifetime-reference/) - Charles 232 | * [Phaiax's Rust Cheatsheet](http://phaiax.github.io/rust-cheatsheet/) - Phaiax 233 | * [Rust Language Cheat Sheet](https://cheats.rs/) - Ralf Biedert 234 | * [Rust cheat sheet (beginner-oriented)](https://www.breakdown-notes.com/make/load/rust_cs_canvas/true) 235 | * [A type-based Rust cheatsheet](https://upsuper.github.io/rust-cheatsheet/) - Xidorn Quan 236 | 237 | ## Rust internals 238 | 239 | * :star: [Rust RFCs](https://github.com/rust-lang/rfcs) and [Accepted RFCs](https://rust-lang.github.io/rfcs/) 240 | * :star: [Rust Forge](https://forge.rust-lang.org/) 241 | * :star: [Internals Forum](https://internals.rust-lang.org/) 242 | 243 | ## Compilation 244 | 245 | * [rust-cross, Everything you need to know about cross compiling Rust programs!](https://github.com/japaric/rust-cross) - [Jorge Aparicio][] 246 | * [How to cross compile Rust from OS X to FreeBSD](https://github.com/yohanesu75/crossrust) - yohanesu75 247 | * [Cross Compiling for Raspberry Pi](https://github.com/Ogeon/rust-on-raspberry-pi) - Ogeon 248 | * :star: [Taking Rust everywhere with rustup](http://blog.rust-lang.org/2016/05/13/rustup.html) - [Brian Anderson][] 249 | * [Why is a Rust executable large?](https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html) - Kang Seonghoon 250 | * [Rust your ARM microcontroller!](http://blog.japaric.io/quickstart/) - [Jorge Aparicio][] 251 | * [Cross-compiling Rust for the Raspberry Pi on macOS](https://akappel.github.io/2017/11/07/rpi-crosstool.html) - Adrian Kappel 252 | * [rust-on-mobile](https://github.com/mtak-/rust-on-mobile) - mtak- 253 | * [Compile Time Feature Flags in Rust](https://www.worthe-it.co.za/programming/2018/11/18/compile-time-feature-flags-in-rust.html) - Justin Worthe 254 | * [Rust on iOS](https://medium.com/visly/rust-on-ios-39f799b3c1dd) - Emil Sjölander 255 | 256 | ## FFI 257 | 258 | * 2017-11-22 - [Writing fast and safe native Node.js modules with Rust](https://blog.risingstack.com/node-js-native-modules-with-rust/) - Peter Czibik 259 | * 2017-09-21 - [Building and Deploying a Rust library on Android](https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-21-rust-on-android.html) - Emily Toop 260 | * 2017-09-06 - [Building and Deploying a Rust library on iOS](https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-06-rust-on-ios.html) - Emily Toop 261 | * 2020-09-08 - [I C and .so does Rust](https://prateeknischal.github.io/posts/i-c-and-so-does-rust/) - prateeknischal 262 | * [The Rust FFI Omnibus](http://jakegoulding.com/rust-ffi-omnibus/?updated=2015-11-08) - Jake Goulding 263 | * [The Rust FFI Guide - using unsafe for fun and profit](https://michael-f-bryan.github.io/rust-ffi-guide/) - Michael-F-Brya 264 | 265 | ## CI / Testing 266 | 267 | * [Helping Travis catch the rustc train part 1](https://huonw.github.io/blog/2015/04/helping-travis-catch-the-rustc-train/) | [part 2](https://huonw.github.io/blog/2015/05/travis-on-the-train-part-2/) - [Huon Wilson][] 268 | * [Rust, Travis, and Github Pages](http://hoverbear.org/2015/03/07/rust-travis-github-pages/) - [Ana Hoverbear][] 269 | * [Shave Some Time From Your Travis Builds](https://llogiq.github.io/2016/07/05/travis.html) - [Llogiq][] 270 | * [How to collect test coverages for a rust project](https://users.rust-lang.org/t/tutorial-how-to-collect-test-coverages-for-rust-project/650) - lifthrasiir 271 | * [Rust Performance Testing on Travis CI](https://beachape.com/blog/2016/11/02/rust-performance-testing-on-travis-ci/) - Lloyd 272 | * [Ensuring Beautiful Commits with rustfmt and Travis-CI](http://kneit.in/2016/11/26/rustfmt-in-travisci.html) - Kyle Kneitinger 273 | * [Great Rust CI](https://dev.to/cad97/great-rust-ci-1fk6) - Christopher Durham 274 | * [Rust Fuzz Book](https://rust-fuzz.github.io/book/) 275 | * [Rust for JavaScript Developers: An Overview of Testing](https://www.shuttle.rs/blog/2023/11/08/testing-in-rust) - Joshua Mo 276 | 277 | ## Debug / Profiling 278 | 279 | * [Debugging a segfault in my Rust program](https://jvns.ca/blog/2017/12/23/segfault-debugging/) - Julia Evans 280 | * [Compiler Explorer - See Rust code as assembly](https://rust.godbolt.org/) 281 | * [Profiling Rust applications on Linux](http://llogiq.github.io/2015/07/15/profiling.html) - [Llogiq][] 282 | 283 | ## Are we ... yet? 284 | 285 | * [Are we web yet?](http://www.arewewebyet.org/) 286 | * [Are we (I)DE yet?](https://areweideyet.com/) 287 | * [Are we game yet?](http://arewegameyet.com/) 288 | * [Are we learning yet?](http://www.arewelearningyet.com/) 289 | * [Are we async yet?](https://areweasyncyet.rs/) 290 | * [Not-Yet-Awesome Rust](https://github.com/ErichDonGubler/not-yet-awesome-rust) 291 | * [Are we GUI yet?](http://areweguiyet.com/) 292 | 293 | ## Comparison with Other Languages 294 | 295 | * [Rust::from(lang)](https://github.com/mgattozzi/rust-from-lang) - [Michael Gattozzi][] 296 | * Others: 297 | 298 | | Languages | Links | 299 | | --------------- | ---------------------------------------- | 300 | | C# | | 301 | | C/C++ | | 302 | | Clojure | | 303 | | Go | | 304 | | Java/Scala | | 305 | | JavaScript | | 306 | | Nim | | 307 | | Nodejs | | 308 | | OCaml / Haskell | | 309 | | Python | | 310 | | Ruby | | 311 | | Swift | | 312 | | Erlang | | 313 | 314 | ## Applications / Libraries / Tools 315 | 316 | See repos [kud1ing/awesome-rust](https://github.com/kud1ing/awesome-rust) & [awesomo 317 | /rust](https://github.com/lk-geimfari/awesomo/blob/master/languages/RUST.md) 318 | 319 | ## Language stuff 320 | 321 | Can I use feature X? [caniuse.rs - Rust feature search](https://caniuse.rs/) 322 | 323 | ### Async 324 | 325 | * [Futures Explained in 200 Lines of Rust](https://web.archive.org/web/20230324130904/https://cfsamson.github.io/books-futures-explained/) - Carl Fredrik Samson 326 | * [Introduction to Async Rust and a High-level Overview of Tokio’s Architecture](https://moslehian.com/posts/2023/1-intro-async-rust-tokio/) - Arash Sal Moslehian 327 | * [Async Rust in Three Parts](https://jacko.io/async_intro.html) - Jack O'Connor 328 | 329 | ### Closures 330 | 331 | * [Finding Closure in Rust](https://huonw.github.io/blog/2015/05/finding-closure-in-rust/) - [Huon Wilson][] 332 | * [Defaulting to Thread-Safety: Closures and Concurrency](https://huonw.github.io/blog/2015/05/defaulting-to-thread-safety/) - [Huon Wilson][] 333 | * [How to pass a closure into a trait object](http://camjackson.net/post/rust-lang-how-to-pass-a-closure-into-a-trait-object) - Cam Jackson 334 | * [Practical differences between Rust closures and functions](https://ricardomartins.cc/2015/10/12/practical_differences_between_rust_closures_and_functions) - Ricardo Martins 335 | * :star: [How Rust Achieves Thread Safety](https://manishearth.github.io/blog/2015/05/30/how-rust-achieves-thread-safety/) - [Manish Goregaokar][] 336 | * [Understanding Closures in Rust](https://medium.com/swlh/understanding-closures-in-rust-21f286ed1759) - Andrew Pritchard 337 | * [Why Rust Closures are (Somewhat) Hard](https://stevedonovan.github.io/rustifications/2018/08/18/rust-closures-are-hard.html) - [Steve Donovan][] 338 | 339 | ### Documentation 340 | 341 | * :star: [Writing Documentation in Rust](https://www.facility9.com/2016/05/10/writing-documentation-in-rust/) - [Jeremiah Peschka][] 342 | * [Keeping Rust projects' README.md code examples up-to-date](https://blog.guillaume-gomez.fr/articles/2019-04-13+Keeping+Rust+projects%27+README.md+code+examples+up-to-date) - Guillaume Gomez 343 | * [Guide on how to write documentation for a Rust crate](https://blog.guillaume-gomez.fr/articles/2020-03-11+Guide+on+how+to+write+documentation+for+a+Rust+crate) - Guillaume Gomez 344 | 345 | ### Enums 346 | 347 | * :star: [Virtual Structs part 1](http://smallcultfollowing.com/babysteps/blog/2015/05/05/where-rusts-enum-shines/) | [part 2](http://smallcultfollowing.com/babysteps/blog/2015/05/29/classes-strike-back/) | [part 3](http://smallcultfollowing.com/babysteps/blog/2015/08/20/virtual-structs-part-3-bringing-enums-and-structs-together/) - [Niko Matsakis][] 348 | 349 | ### Errors 350 | 351 | * :star: [Error Handling in Rust](https://nrc.github.io/error-docs/) - [Nick Cameron][] 352 | * :star: [Error Handling in Rust](https://blog.burntsushi.net/rust-error-handling/) - [Andrew Gallant][] 353 | * [Beginner's guide to Error Handling in Rust](http://www.sheshbabu.com/posts/rust-error-handling/) - Sheshbabu Chinnakonda 354 | * [Rust error handling](https://www.unwoundstack.com/blog/rust-error-handling.html) - sp1ff 355 | * [Rust: Structuring and handling errors in 2020](https://nick.groenen.me/posts/rust-error-handling/) - Nick Groenen 356 | * [Wrapping errors in Rust](https://edgarluque.com/blog/wrapping-errors-in-rust/) - Edgar Luque 357 | * [Designing error types in Rust](https://mmapped.blog/posts/12-rust-error-handling.html) - Roman Kashitsyn 358 | 359 | ### Iterators 360 | 361 | * [A Journey into Iterators](http://hoverbear.org/2015/05/02/a-journey-into-iterators/) - [Ana Hoverbear][] 362 | * [Effectively Using Iterators In Rust](http://hermanradtke.com/2015/06/22/effectively-using-iterators-in-rust.html) - [Herman J. Radtke III][] 363 | * [for loops in Rust](http://xion.io/post/code/rust-for-loop.html) - Karol Kuczmarski 364 | * [Iteration patterns for Result & Option](http://xion.io/post/code/rust-iter-patterns.html) - Karol Kuczmarski 365 | * [Little tour of multiple iterators implementation in Rust](https://blog.guillaume-gomez.fr/articles/2017-03-09+Little+tour+of+multiple+iterators+implementation+in+Rust) - Guillaume Gomez 366 | * [rust-iterators](https://github.com/rustomax/rust-iterators/) - Max Skybin 367 | 368 | ### Lifetime 369 | 370 | * :star: [Where Rust Really Shines](https://manishearth.github.io/blog/2015/05/03/where-rust-really-shines/) - [Manish Goregaokar][] 371 | * [Understanding Lifetime in Rust part 1](https://mobiarch.wordpress.com/2015/06/29/understanding-lifetime-in-rust-part-i/) | [part 2](https://mobiarch.wordpress.com/2015/07/08/understanding-lifetime-in-rust-part-ii-3/) - Bibhas Bhattacharya 372 | * [Rust Lifetimes](https://charlesetc.inclouds.space/rust-lifetimes/) - Charles 373 | * [The Power of Lifetimes](http://pling.jondgoodwin.com/post/lifetimes/) - Jonathan Goodwin 374 | * [Understanding Rust Lifetimes](https://medium.com/nearprotocol/understanding-rust-lifetimes-e813bcd405fa) - Maksym Zavershynskyi 375 | * [Common Rust Lifetime Misconceptions](https://github.com/pretzelhammer/rust-blog/blob/master/posts/common-rust-lifetime-misconceptions.md) - kirill 376 | * [LifetimeKata](https://github.com/tfpk/lifetimekata) - Tom Kunc 377 | 378 | ### Macros 379 | 380 | * [A Practical Intro to Macros in Rust 1.0](https://danielkeep.github.io/practical-intro-to-macros.html) - [Daniel Keep][] 381 | * [The Little Book of Rust Macros](https://veykril.github.io/tlborm/) - Lukas Wirth 382 | * :star: [Macros in Rust part 1](http://www.ncameron.org/blog/macros-in-rust-pt1/) | [part 2](http://www.ncameron.org/blog/macros-in-rust-pt2/) | [part 3](http://ncameron.org/blog/macros-in-rust-pt3/) | [part 4](http://ncameron.org/blog/macros-in-rust-pt4/) - [Nick Cameron][] 383 | * [Writing complex macros in Rust: Reverse Polish Notation](https://rreverser.com/writing-complex-macros-in-rust/) - Ingvar Stepanyan 384 | * :star: [Procedural Macros in Rust 2018](https://blog.rust-lang.org/2018/12/21/Procedural-Macros-in-Rust-2018.html) - [Alex Crichton][] 385 | * [Creating Macros in Rust](https://hub.packtpub.com/creating-macros-in-rust-tutorial/) - Aaron Lazar 386 | * [Rust Latam: procedural macros workshop](https://github.com/dtolnay/proc-macro-workshop) - David Tolnay 387 | * [MacroKata](https://github.com/tfpk/macrokata) - Tom Kunc 388 | 389 | ### MIR 390 | 391 | * :star: [Introducing MIR](http://blog.rust-lang.org/2016/04/19/MIR.html) - [Niko Matsakis][] 392 | 393 | ### Modules 394 | 395 | * [Rust Module Essentials ](https://dev.to/hertz4/rust-module-essentials-12oi) - Sam Pagenkopf 396 | * [How I Organize Large Rust Programs](https://rodarmor.com/blog/tour-de-just/) - Casey Rodarmor 397 | * [Clear explanation of Rust’s module system](http://www.sheshbabu.com/posts/rust-module-system/) - Sheshbabu Chinnakonda 398 | 399 | ### Option & Result 400 | 401 | * [Option Type part 1](https://8thlight.com/insights/the-option-type) | [part 2](https://8thlight.com/insights/using-the-option-type-effectively) - 8thlight 402 | * :end: [Option Monads in Rust](http://hoverbear.org/2014/08/12/option-monads-in-rust/) - [Ana Hoverbear][] 403 | 404 | ### Ownership / Concurrency 405 | 406 | * :star: [Fearless Concurrency with Rust](http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html) - [Aaron Turon][] 407 | * [Rust ownership, the hard way](http://chrismorgan.info/blog/rust-ownership-the-hard-way.html) - [Chris Morgan][] 408 | * :star: [An alternative introduction to Rust](http://words.steveklabnik.com/a-new-introduction-to-rust) - [Steve Klabnik][] 409 | * :star: [The Problem With Single-threaded Shared Mutability](https://manishearth.github.io/blog/2015/05/17/the-problem-with-shared-mutability/) - [Manish Goregaokar][] 410 | * :star: [Wrapper Types in Rust: Choosing Your Guarantees](https://manishearth.github.io/blog/2015/05/27/wrapper-types-in-rust-choosing-your-guarantees/) - [Manish Goregaokar][] 411 | * [Strategies for solving 'cannot move out of' borrowing errors in Rust](http://hermanradtke.com/2015/06/09/strategies-for-solving-cannot-move-out-of-borrowing-errors-in-rust.html) - [Herman J. Radtke III][] 412 | * [Why Rust's ownership/borrowing is hard](http://softwaremaniacs.org/blog/2016/02/12/ownership-borrowing-hard/en/) - Ivan Sagalaev 413 | * [& vs. ref in Rust patterns](http://xion.io/post/code/rust-patterns-ref.html) - Karol Kuczmarski 414 | * [Interior mutability in Rust: what, why, how?](https://ricardomartins.cc/2016/06/08/interior-mutability) | [part 2](https://ricardomartins.cc/2016/06/25/interior-mutability-thread-safety) | [part 3](https://ricardomartins.cc/2016/07/11/interior-mutability-behind-the-curtain) - Ricardo Martins 415 | * :star: [Rust Means Never Having to Close a Socket](http://blog.skylight.io/rust-means-never-having-to-close-a-socket/) - [Yehuda Katz][] 416 | * [Understanding Lifetimes in Rust, part 1](https://mobiarch.wordpress.com/2015/06/29/understanding-lifetime-in-rust-part-i/) | [part 2](https://mobiarch.wordpress.com/2015/07/08/understanding-lifetime-in-rust-part-ii-3/) - Bibhas Bhattacharya 417 | * [Some Notes on `Send` and `Sync`](https://huonw.github.io/blog/2015/02/some-notes-on-send-and-sync/) - [Huon Wilson][] 418 | * [Sharing Coloring Books With Friends in Rust](http://jeenalee.com/2016/08/15/sharing-coloring-books-in-rust.html) - [Jeena Lee][] 419 | * [Moving, Cloning, and Copying Coloring Books in Rust](http://jeenalee.com/2016/08/29/move-clone-copy.html) - [Jeena Lee][] 420 | * [Ref patterns, destructuring, and invisible borrows](https://medium.com/@robertgrosse/ref-patterns-destructuring-and-invisible-borrows-2f8ae6902656) - Robert Grosse 421 | * [Rust: A unique perspective](https://limpet.net/mbrubeck/2019/02/07/rust-a-unique-perspective.html) - Matt Brubeck 422 | * [The Node Experiment - Exploring Async Basics with Rust](https://web.archive.org/web/20230125023131/https://cfsamson.github.io/book-exploring-async-basics/) - Carl Fredrik Samson 423 | * [A closer look at Ownership in Rust](https://blog.thoughtram.io/ownership-in-rust/) - Pascal Precht 424 | * [Understanding ownership in Rust](https://blog.logrocket.com/understanding-ownership-in-rust/) - Ukpai Ugochi 425 | 426 | ### Privacy 427 | 428 | * :star: [Structure literals vs constructors in Rust](http://words.steveklabnik.com/structure-literals-vs-constructors-in-rust) - [Steve Klabnik][] 429 | 430 | ### Strings 431 | 432 | * [String vs &str in Rust functions part 1](http://hermanradtke.com/2015/05/03/string-vs-str-in-rust-functions.html) | [part 2](http://hermanradtke.com/2015/05/06/creating-a-rust-function-that-accepts-string-or-str.html) | [part 3](http://hermanradtke.com/2015/05/29/creating-a-rust-function-that-returns-string-or-str.html) - [Herman J. Radtke III][] 433 | * [From &str to Cow](https://jwilm.io/blog/from-str-to-cow/) - Joe Wilm 434 | * [Rust: str vs String](http://www.ameyalokare.com/rust/2017/10/12/rust-str-vs-String.html) - Ameya Lokare 435 | * [On dealing with owning and borrowing in public interfaces](https://phaazon.net/blog/on-owning-borrowing-pub-interface) - Dimitri Sabadie 436 | * [Why Rust strings seem hard](https://www.brandons.me/blog/why-rust-strings-seem-hard) - Brandon Smith 437 | 438 | ### Syntax extensions 439 | 440 | * :star: [Syntax extensions and regular expressions for Rust](http://blog.burntsushi.net/rust-regex-syntax-extensions/) - [Andrew Gallant][] 441 | 442 | ### Traits 443 | 444 | * :star: [Abstraction without overhead: traits in Rust](http://blog.rust-lang.org/2015/05/11/traits.html) - [Aaron Turon][] 445 | * [A series on trait objects part 1](https://huonw.github.io/blog/2015/01/peeking-inside-trait-objects) | [part 2](https://huonw.github.io/blog/2015/01/the-sized-trait) | [part 3](https://huonw.github.io/blog/2015/01/object-safety) | [part 4](https://huonw.github.io/blog/2015/05/where-self-meets-sized-revisiting-object-safety/) - [Huon Wilson][] 446 | * [Rust traits for developer friendly libraries](https://benashford.github.io/blog/2015/05/24/rust-traits-for-developer-friendly-libraries/) - [Ben Ashford][] 447 | * [Traits and trait objects](http://xania.org/201506/traits-and-trait-objects) - Matt Godbolt 448 | * [Rust's Built-in Traits, the When, How & Why](https://llogiq.github.io/2015/07/30/traits.html) - [Llogiq][] 449 | * [Where are you From::from](http://llogiq.github.io/2015/11/27/from-into.html) - [Llogiq][] 450 | * [Gentle Intro to Type-level Recursion in Rust](https://beachape.com/blog/2017/03/12/gentle-intro-to-type-level-recursion-in-Rust-from-zero-to-frunk-hlist-sculpting/) - [Lloyd Chan][] 451 | * [Traits and Trait Objects in Rust](https://joshleeb.com/posts/rust-traits-and-trait-objects/) - Josh Leeb-du Toit 452 | * [A Quick Look at Trait Objects in Rust](https://tratt.net/laurie/blog/entries/a_quick_look_at_trait_objects_in_rust.html) - Laurence Tratt 453 | 454 | ### Unsafe 455 | 456 | * [Unsafe Rust: An Intro and Open Questions](http://cglab.ca/~abeinges/blah/rust-unsafe-intro/) - [Alexis Beingessner][] 457 | * [Memory Leaks are Memory Safe](https://huonw.github.io/blog/2016/04/memory-leaks-are-memory-safe/) - [Huon Wilson][] 458 | * :star: [On Reference Counting and Leaks](http://smallcultfollowing.com/babysteps/blog/2015/04/29/on-reference-counting-and-leaks/) - [Niko Matsakis][] 459 | * :star: [A Few More Remarks on Reference Counting and Leaks](http://smallcultfollowing.com/babysteps/blog/2015/04/30/a-few-more-remarks-on-reference-counting-and-leaks/) - [Niko Matsakis][] 460 | * [Pre-pooping Your Pants With Rust](http://cglab.ca/~abeinges/blah/everyone-poops/) - [Alexis Beingessner][] 461 | * :star: [Unsafe Abstractions](http://smallcultfollowing.com/babysteps/blog/2016/05/23/unsafe-abstractions/) - [Niko Matsakis][] 462 | * :star: [The "Tootsie Pop" Model for Unsafe Code](http://smallcultfollowing.com/babysteps/blog/2016/05/27/the-tootsie-pop-model-for-unsafe-code/) - [Niko Matsakis][] 463 | * [Unsafe Rust is not C](https://www.youtube.com/watch?v=DG-VLezRkYQ) - Jack O'Connor 464 | 465 | ## Playground 466 | 467 | * [Rust Playground](https://play.rust-lang.org) 468 | * [alternative](http://play.integer32.com/) 469 | 470 | ## Locale links 471 | 472 | * [Brazilian Portuguese](pt_BR.md) 473 | * [Chinese](zh_CN.md) 474 | * [Danish](da_DK.md) 475 | * [French](fr_FR.md) 476 | * [German](de_DE.md) 477 | * [Italian](it_IT.md) 478 | * [Japanese](ja_JP.md) 479 | * [Korean](ko_KR.md) 480 | * [Russian](ru_RU.md) 481 | * [Spanish](es_ES.md) 482 | * [Turkish](tr_TR.md) 483 | 484 | ## People 485 | 486 | This is the official [Rust Team](http://www.rust-lang.org/team.html) and [Servo Team](https://github.com/orgs/servo/people) 487 | 488 | Are you searching for a rustacean? [http://www.rustaceans.org/](http://www.rustaceans.org/) 489 | 490 | Do you want to ask a question? [Users Forum](https://users.rust-lang.org/), [Stack Overflow](https://stackoverflow.com/questions/tagged/rust) 491 | 492 | Do you want to meet them IRL? [Meetup groups](http://www.meetup.com/topics/rust/), [Community calendar](https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com), [Community talks list](https://github.com/rust-community/talks), [RustBridge](https://rustbridge.github.io/) 493 | 494 | Go to rusty events? [The 2018 Rust Event Lineup](https://blog.rust-lang.org/2018/01/31/The-2018-Rust-Event-Lineup.html), [The 2019 Rust Event Lineup](https://blog.rust-lang.org/2019/05/20/The-2019-Rust-Event-Lineup.html) 495 | 496 | Are you looking for a job? [RustJobs.dev](https://rustjobs.dev/), [RustJobs.com](https://www.rustjobs.com/) 497 | 498 | Are you fast, friendly, and fearless? [Find something Rusty to work on!](https://www.rustaceans.org/findwork/starters), [Awesome Rust Mentors](https://rustbeginners.github.io/awesome-rust-mentors/) 499 | 500 | Do you want to stay up to date? [The official blog](https://blog.rust-lang.org/), [This Week in Rust](https://this-week-in-rust.org/), [This Week in Rust Docs](http://guillaumegomez.github.io/this-week-in-rust-docs/), [The official reddit](https://www.reddit.com/r/rust/) 501 | 502 | Do you want to find out why some historical decisions took place? [Chronicle.rs](https://github.com/mgattozzi/chronicle.rs) 503 | 504 | ### Fearless Rust Bloggers 505 | 506 | A complete list could be found [here](https://users.rust-lang.org/t/fearless-rust-bloggers/16770) 507 | 508 | * [Aaron Turon][] - [blog](http://aturon.github.io/) 509 | * [Andrew Gallant][] - [blog](http://blog.burntsushi.net/) 510 | * [Ana Hoverbear][] - [blog](https://hoverbear.org/tags/#rust) 511 | * [Brian Anderson][] - [blog](https://brson.github.io/blog/index.html) 512 | * [Christoph Burgdorf][] - [blog](https://cburgdorf.wordpress.com/) 513 | * [Chris Morgan][] - [blog](https://chrismorgan.info/blog/tags/rust/) 514 | * [Felix S Klock II][] - [blog](http://blog.pnkfx.org/) 515 | * [Huon Wilson][] - [blog](https://huonw.github.io/blog/) 516 | * [Jonathan Turner][] - [blog](https://www.jntrnr.com/) 517 | * [Llogiq][] - [blog](http://llogiq.github.io/) 518 | * [Manish Goregaokar][] - [blog](https://manishearth.github.io/) 519 | * [Nick Cameron][] - [blog](http://featherweightmusings.blogspot.fr/) 520 | * [Niko Matsakis][] - [blog](http://smallcultfollowing.com/babysteps/) 521 | * [Patrick Walton][] - [blog](https://pcwalton.github.io/) 522 | * [Yehuda Katz][] - [blog](http://yehudakatz.com/) 523 | * [Steve Klabnik][] - [blog](http://words.steveklabnik.com/) 524 | 525 | Don't forget [Ferris](http://www.rustacean.net/) the unofficial mascot. 526 | 527 | ## Tutorials & Workshop Materials 528 | 529 | These are slides and materials from brick-and-mortar workshops about Rust. 530 | While they're unlikely to help a student learning independently, they may be 531 | of interest if you're running a workshop on Rust. 532 | 533 | * Workshop [slides and exercises](http://www.rust-tutorials.com/RustConf17/) from RustConf 2017. 534 | * Niko Matsakis's [rust tutorializer](https://github.com/nikomatsakis/rust-tutorializer) framework 535 | * Niko Matsakis's [ownership, borrowing, traits, structs, and threading tutorials](https://github.com/nikomatsakis/rust-tutorials-keynote), keynote files 536 | * Niko Matsakis's [concurrency tutorial](https://github.com/nikomatsakis/concurrency-tutorial) from December 2015 537 | * Niko Matsakis's [Mozlando Tutorial](http://smallcultfollowing.com/20151209/) includes slides and play.rust-lang.org demos 538 | * Jim Blandy's [exercises](https://github.com/jimblandy/exercises) 539 | * Dan Callahan's [Python Rust FFI](https://github.com/callahad/python-rust-ffi) examples 540 | * Nick Cameron's [oopsla slides and exercises](http://ncameron.org/oopsla15.html) 541 | * Florian Gilcher's [mailbox tutorial](https://github.com/skade/mailbox) takes Hello World to a whole new concurrent and networked level 542 | * Carol Nichols' [Intro to Rust](https://github.com/carols10cents/intro-to-rust) that presents the guessing game and ownership in a similar manner as the book 543 | * Jonathan Pallant's [Rust on the Raspberry Pi tutorial (using a Sense HAT)](https://github.com/thejpster/pi-workshop-rs) 544 | 545 | 546 | [Aaron Turon]: https://github.com/aturon 547 | [Alex Crichton]: https://github.com/alexcrichton 548 | [Alexander Fadeev]: https://github.com/fadeevab 549 | [Alexis Beingessner]: https://github.com/Gankro 550 | [Andrew Gallant]: https://github.com/BurntSushi 551 | [Ana Hoverbear]: https://github.com/Hoverbear 552 | [Ben Ashford]: https://github.com/benashford 553 | [Brian Anderson]: https://github.com/brson 554 | [Carol Nichols]: https://github.com/carols10cents 555 | [Chris Krycho]: https://github.com/chriskrycho 556 | [Chris Morgan]: https://github.com/chris-morgan 557 | [Christoph Burgdorf]: https://github.com/cburgdorf 558 | [Daniel Keep]: https://github.com/DanielKeep 559 | [Dan Callahan]: https://github.com/callahad 560 | [David Tolnay]: https://github.com/dtolnay 561 | [Felix S Klock II]: https://github.com/pnkfelix 562 | [Herman J. Radtke III]: https://github.com/hjr3 563 | [Jeena Lee]: https://github.com/jeenalee 564 | [Jeremiah Peschka]: https://github.com/peschkaj 565 | [Jim Blandy]: https://github.com/jimblandy 566 | [Jorge Aparicio]: https://github.com/japaric 567 | [Jonathan Turner]: https://github.com/jonathandturner 568 | [Llogiq]: https://github.com/llogiq 569 | [Luca Palmieri]: https://github.com/LukeMathWalker 570 | [Lloyd Chan]: https://github.com/lloydmeta 571 | [Huon Wilson]: https://github.com/huonw 572 | [Manish Goregaokar]: https://github.com/Manishearth 573 | [Michael Gattozzi]: https://github.com/mgattozzi 574 | [Nick Cameron]: https://github.com/nrc 575 | [Niko Matsakis]: https://github.com/nikomatsakis 576 | [Pascal Hertleif]: https://github.com/killercup 577 | [Patrick Walton]: https://github.com/pcwalton 578 | [Steve Donovan]: https://github.com/stevedonovan 579 | [Steve Klabnik]: https://github.com/steveklabnik 580 | [Tim McNamara]: https://github.com/timClicks 581 | [Yehuda Katz]: https://github.com/wycats 582 | [Dumindu Madunuwan]: https://github.com/dumindu 583 | 584 | ## Similar projects 585 | 586 | * [Curated Resources to Learn Rust](https://hackr.io/tutorials/learn-rust) - Hackr.io 587 | * [Rust Anthology Master List](https://github.com/brson/rust-anthology/blob/master/master-list.md) - [Brian Anderson][] 588 | * [Read Rust](https://readrust.net/) 589 | -------------------------------------------------------------------------------- /da_DK.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## Danish 4 | 5 | * [Copenhagen Rust Group](https://cph.rs) 6 | -------------------------------------------------------------------------------- /de_DE.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## German 4 | 5 | * [Translation of the official The Rust Programming Language book](https://rust-lang-de.github.io/rustbook-de/) 6 | * [Rust programming course at Osnabrück University](https://github.com/LukasKalbertodt/programmieren-in-rust) 7 | * [Ferris Talk - Monthly Rust column](https://www.heise.de/hintergrund/Ferris-Talk-1-Iteratoren-in-Rust-6175409.html) 8 | -------------------------------------------------------------------------------- /es_ES.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## Spanish 4 | 5 | * [Traducción del libro oficial The Rust Programming Language](https://goyox86.github.io/elpr) 6 | * [Aprendiendo Rust por primera vez](https://www.mozilla-hispano.org/aprendiendo-rust-por-primera-vez/) 7 | * [Rust 101, tutorial de Rust en español](https://blog.adrianistan.eu/rust-101-tutorial-rust-espanol/) 8 | * [Usando Iron, un web framework para Rust](https://blog.adrianistan.eu/2016/11/20/usando-iron-web-framework-rust/) 9 | * [La gestión de la memoria en Rust](https://blog.adrianistan.eu/2015/05/22/la-gestion-de-la-memoria-en-rust/) 10 | * [Leer de teclado en Rust](https://blog.adrianistan.eu/2017/09/15/leer-teclado-rust/) 11 | * [Crear botones y ventanas en Rust](https://blog.adrianistan.eu/2017/09/29/crear-ventanas-botones-rust-gtk/) 12 | -------------------------------------------------------------------------------- /fr_FR.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## Français 4 | 5 | * [Tutoriel Rust](http://blog.guillaume-gomez.fr/Rust) - Guillaume Gomez 6 | * [Les emprunts et les durées de vies en Rust](https://levans.fr/borrowing-and-lifetimes-in-rust-fr.html) - Victor Berger 7 | * [Retrouvez un grand nombre de Questions/Réponses dans cette FAQ dédiée à rust !](https://github.com/Songbird0/Rust_FAQ) - Anthony Defranceschi/Songbird0 8 | * [Traduction française du livre Rust by example](https://github.com/Songbird0/FR_RBE) - Anthony Defranceschi/Songbird0 9 | * [Meetup Rust Paris](https://www.meetup.com/fr-FR/Rust-Paris/) 10 | -------------------------------------------------------------------------------- /it_IT.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## Italiano 4 | 5 | * [Il linguaggio di programmazione Rust](https://carlomilanesi.github.io/linguaggio-rust/) Traduzione completa del libro ufficiale "The Rust Programming Language". 6 | -------------------------------------------------------------------------------- /ja_JP.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## 日本語 | Japanese 4 | 5 | * [**プログラミング言語Rust**](http://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/) 6 | * 公式ドキュメント [The Rust Programming Language](https://doc.rust-lang.org/book/) の和訳 7 | * Japanese translation of the official book: The Rust Programming Language 8 | * [**Rust by Example**](https://doc.rust-jp.rs/rust-by-example-ja/) 9 | * [Rust by Example](https://doc.rust-lang.org/stable/rust-by-example/) の和訳 10 | * Japanese translation of Rust by Example 11 | -------------------------------------------------------------------------------- /ko_KR.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## Korean 4 | 5 | * [Translation of the official The Rust Programming Language book](https://github.com/rust-kr/doc.rust-kr.org) (현재 중단) 6 | * [Rust in Detail: 확장 가능한 채팅 서비스 만들기 1/2](http://blog.naver.com/futurewave01/220539095123) 7 | * [러스트 프로그래밍 언어 - 2판](https://github.com/rinthel/rust-lang-book-ko) 8 | -------------------------------------------------------------------------------- /pt_BR.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## Brazilian Portuguese 4 | 5 | * [Rust Book `pt-br`](https://github.com/rust-br/rust-book-pt-br) 6 | * [Estruturas de dados e (um pouco sobre) Ownership](https://github.com/bltavares/presentations/blob/gh-pages/rust-tipos-e-ownership/rust-tipos-e-ownership.org) 7 | * [Programação Funcional e Concorrente em Rust, Julia Naomi Boeira](https://books.google.com.br/books?id=g8ZQDwAAQBAJ&printsec=frontcover#v=onepage&q&f=false) 8 | * [Textos diversos sobre Rust no Blog do Paulo](https://medium.com/@PauloHRPinheiro) 9 | * [(Nunca) Ouvi falar de Rust… Mas como faço um site?](https://presentations.bltavares.com/nunca-ouvi-falar-de-rust/#/slide-orgef8f248) 10 | -------------------------------------------------------------------------------- /ru_RU.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## Russian 4 | 5 | * [Rust - русскоязычное сообщество](https://rust-lang.ru/) 6 | * [Перевод книги «The Rust Programming Language»](https://doc.rust-lang.ru/book/) 7 | * [Перевод книги «Rust By Example»](https://doc.rust-lang.ru/stable/rust-by-example/) 8 | * [Перевод книги «Rust Cookbook»](https://doc.rust-lang.ru/rust-cookbook/) 9 | * [Перевод книги «Asynchronous Programming in Rust»](https://doc.rust-lang.ru/async-book/) 10 | -------------------------------------------------------------------------------- /tr_TR.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## Türkçe 4 | 5 | * [Rust Programlama Diline Giriş - Video ](https://www.youtube.com/watch?v=x4KzewBQgRQ) - Cengiz Can (Istanbul Coders) 6 | * [Rust Programlama Dili - E-Kitap ](https://www.gitbook.com/book/cngzhnp/rust-programlama-dili/) - Cengizhan Pasaoglu 7 | -------------------------------------------------------------------------------- /zh_CN.md: -------------------------------------------------------------------------------- 1 | # rust-learning 2 | 3 | ## Chinese 4 | 5 | * [The Tao of Rust](https://github.com/ZhangHanDong/tao-of-rust-codes/blob/master/tao_of_rust_english.md) 6 | * [Translation of the official The Rust Programming Language book](https://github.com/KaiserY/rust-book-chinese) 7 | * [Translation of the Rust By Example](https://github.com/rust-lang-cn/rust-by-example-cn) 8 | * [RustPrimer](https://github.com/rustcc/RustPrimer) 9 | * [Chinese Rust Community](https://github.com/RustChina/rust-china.org) 10 | * [The book in Traditional Chinese](http://askeing.github.io/rust-book/) 11 | * [Translation of The Little Book of Rust Macros](https://github.com/DaseinPhaos/tlborm-chinese) 12 | * [The Rust Course](https://github.com/sunface/rust-course) 13 | * [Build a Lua Interpreter in Rust](https://wubingzheng.github.io/build-lua-in-rust/zh/) 14 | --------------------------------------------------------------------------------