mre/idiomatic-rust được TopGit xếp vào nhóm dự án backend, với 7.8k sao trên GitHub, viết chủ yếu bằng Rust. 🦀 A peer-reviewed collection of articles/talks/repos which teach concise, idiomatic Rust.
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
This repository collects resources for writing clean, idiomatic Rust code.
You can find a sortable/searchable version of this list here.
Idiomatic coding means following the conventions of a given language. It is
the most concise, convenient, and common way of accomplishing a task in that
language, rather than forcing it to work in a way the author is familiar with
from a different language. - Adapted from Tim
Mansfield
Contributions welcome! To add missing resources, please refer to the contributing documentation.
⚙ Projects
blessed.rs — An unofficial guide to the Rust ecosystem. Suggestions for popular, well-maintained crates.
Canonical's Rust Best Practices — A curated collection of best practices for writing Rust code, covering coding standards from naming conventions to unsafe code usage.
cheats.rs - Idiomatic Rust tips — A list of quick tips to make your code more idiomatic.
clippy — A bunch of lints to catch common mistakes and improve your Rust code.
Elements of Rust — A collection of software engineering techniques for effectively expressing intent with Rust.
Patterns — A catalogue of design patterns in Rust.
Possible Rust — A blog for intermediate Rust programmers exploring real-world code and design patterns.
Rust Anthology — The best short-form writing about Rust, collected.
Rust API Guidelines — An extensive list of recommendations for idiomatic Rust APIs.
Rust by Example — A community driven collection of example code which follow Rust best practices.
🏋 Workshops
Build your own JIRA with Rust — A test-driven workshop to learn Rust by building your own JIRA clone!
Comprehensive Rust — A four day Rust course developed by the Android team, covering all aspects of Rust.
Ferrous Systems Teaching Material — Free workshop material produced by Ferrous Systems for trainings.
Hecto: Build your own text editor in Rust — This is a series of blog posts that shows you how to build a text editor in Rust
Idiomatic Rust Workshop — A talk/workshop about idiomatic Rust code focusing on effective use of existing syntax and design patterns
PingCAP talent plan — A series of training courses about writing distributed systems in Rust.
Procedural Macros Workshop — A selection of projects designed to learn to write Rust procedural macros.
Rust 101 — A Rust University course by tweede golf.
Rust Development at Sentry — A document containing useful resources for getting started with Rust and adhering to Sentry coding principles.
rust-lang/rustlings — Small exercises to get you used to reading and writing Rust code.
📖 Books
Command Line Applications in Rust — A tutorial on how to write CLI apps in Rust, learning many aspects of the ecosystem.
Command-Line Rust — Learn the language by writing Rust versions of common Unix coreutils.
Discover the world of microcontrollers through Rust! — An introductory course on microcontroller-based embedded systems using Rust.
High Assurance Rust — Developing secure and robust software, focusing on embedded-friendly data structures in Rust.
Idiomatic Rust Snippets — Beginner-friendly guide to core Rust concepts—one of the best cheat sheets for Rust developers.
Programming Rust: Fast, Safe Systems Development — A comprehensive Rust Programming Guide that covers most of Rust's features in detail.
Rust Atomics and Locks — Helps Rust programmers of all levels gain a clear understanding of low-level concurrency.
Rust Cookbook — Examples that demonstrate good practices to accomplish common programming tasks in Rust.
Rust for Rustaceans — Covers how to design reliable, idiomatic, and ergonomic Rust programs based on best principles.
📰 Articles
2025
Level Up your Rust pattern matching — Advanced pattern matching techniques and idiomatic usage.
Be Simple — Advocates for simpler, more maintainable code in Rust.
Pitfalls of Safe Rust — Essential guide to avoiding pitfalls even in safe Rust code.
Flattening Rust's Learning Curve — Best practices for learning Rust and reducing adoption friction.
Patterns for Defensive Programming in Rust — Defensive coding in Rust with best practices.
Prototyping in Rust — Rapid development methodology and idiomatic practices showing how to prototype effectively in Rust.
Cancelling async Rust — Guide to cancellation safety in async Rust with patterns for resource management.
To panic or not to panic — Error handling strategies and when panicking is appropriate versus returning Result types.
Designing Error Types in Rust Libraries — Approaches to structuring error handling in library APIs for clarity and usability.
2024
The Mediocre Programmer's Guide to Rust — Practical Rust without perfectionism - a pragmatic development approach.
Rust's Sneaky Deadlock With if let Blocks — Subtle lock holding pattern that can cause critical deadlock pitfalls.
Rust Iterators Beyond the Basics — Advanced iterator patterns for functional programming in Rust.
The Ultimate Guide to Rust Newtypes — Using newtypes for type safety and compile-time domain validation.
How to Build Abstractions in Rust Applications — Building effective abstractions in Rust based on software design principles.
Don't Worry About Lifetimes — Demystifying lifetime annotations with practical lifetime management patterns.
When should I use String vs &str? — Guidance on choosing the right string type - a fundamental idiomatic Rust pattern.
Async Rust can be a pleasure to work with (without Send + Sync + 'static) — Relaxing trait bounds for simpler async code and ergonomic async patterns for single-threaded contexts.
Why choose async/await over threads? — Guidance on when to use async vs traditional threading to choose the right concurrency model.
Three Kinds Of Unwrap — Understanding when and how to use different unwrap variants to prevent common panic-related bugs.
Practical guide to Error Handling in Rust — Hands-on guide with practical examples for common error handling scenarios in real-world applications.
2023
Aim For Immutability in Rust — Explains why variables are immutable in Rust by default.
Compile-Time Invariants in Rust — Shows how macros can be used to enforce invariants at compile-time.
2021
Rust Number Conversion: Don't Follow the Book... — A blog post discussing the best practices for number conversion in Rust.
Hexagonal architecture in Rust — Describes how to build a Rust service using domain driven design and a test-first approach.
Wrapping errors in Rust — Wrapping 'reqwest::Error' and a custom error type as an enum to make library usage easier.
Aiming for idiomatic Rust — Discusses different ways to solve a popular coding puzzle, 'balanced brackets', in Rust.
Naming Your Lifetimes — Explains how using longer, declarative lifetime names can help to disambiguate which borrow is which.
2020
Are out parameters idiomatic in Rust? — Discusses the pros and cons of functions returning a value vs. modifying a parameter in-place.
Guide on how to write documentation for a Rust crate — Writing good documentation with rustdoc including many examples.
Learning Rust through open source and live code reviews — Covers patterns like 'FromStr' and exposing a CLI and a library in one crate.
Refactoring Rust Transpiled from C — Describes how to lift a C-project that was automatically converted to unsafe Rust to safer, more idiomatic Rust.
Context-preserving error handling — Explains how to use crates like 'thiserror' in combination with 'map_err' to add context to errors.
2019
Rust Patterns: Enums Instead Of Booleans — Discusses how using enums instead of booleans can express intent more clearly in Rust.
Taking string arguments in Rust — Discussing how to avoid subtle issues with string handling and when to use 'str' vs 'String'.
Await a minute — Example code for moving from raw futures to async/await syntax to improve error handling.
2018
Programming an ARM microcontroller in Rust at four different levels of abstraction — Demonstrates how Rust helps to move from low-level embedded code to high-level abstractions.
2017
The balance between cost, useability and soundness in C bindings, and Rust-SDL2's release — Writing safe, sound, idiomatic libraries despite the limitations of the borrow checker.
Math with distances in Rust: safety and correctness across units — How to create a system to cleanly and safely do arithmetic with lengths.
Lessons learned redesigning and refactoring a Rust Library — 'RefCell', the builder pattern and more.
Iteration patterns for Result & Option — Explores how to filter and partition iterators of Result and Option types idiomatically.
2016
Idiomatic tree and graph like structures in Rust — Introduction to safe, dynamic, arena based tree structures without using lifetimes.
Convenient and idiomatic conversions in Rust — Explains 'From', 'Into', 'TryFrom', 'TryInto', 'AsRef' and 'AsMut' with practical examples.
Rustic Bits — Small things that make for rustic code.
Ripgrep Code Review — An analysis of the popular 'ripgrep' tool's source code.
Pretty State Machine Patterns in Rust — How to represent a State Machine in an expressive and understandable way in Rust.
Teaching libraries through good documentation — How to use the full power of Rust's documentation support (e.g. doc tests).
Elegant Library APIs in Rust — Many helpful tips and tricks for writing libraries in Rust.
Russian Dolls and clean Rust code — How to use the full power of 'Option' and 'Result' (especially 'and_then()' and 'unwrap_or()').
2015
Rayon: data parallelism in Rust — Writing elegant parallel code in Rust.
Strategies for solving 'cannot move out of' borrowing errors in Rust — Practical tips to help understand the borrow-checker and move semantics.
Effectively Using Iterators In Rust — Explanation of the 'Iter' and 'IntoIter' traits and how loops actually work in Rust.
Creating a Rust function that returns a &str or String — How 'Into' and 'Cow' (Clone-on-write) work together to avoid allocations for string types.
Creating a Rust function that accepts String or &str — How to make calling your code both ergonomic and fast (zero-allocation).
Error Handling in Rust — Understanding and handling errors in Rust in an idiomatic way.
Rust traits for developer friendly libraries — Thoughts about implementing good Rust libraries.
🎤 Talks
2024
The Four Horsemen of Bad Rust Code — A talk about common pitfalls in Rust code like overengineering and premature optimization. [Video]
2023
Tricks of the Trait: Enabling Ergonomic Extractors — Rust Nation UK, Feb. 2023 [Video]
2022
Ergonomic APIs for hard problems — RustLab Conference, October 2022 [Video]
Nine Rules for Elegant Rust Library APIs — Seattle Rust Meetup, Sep. 2022 [Video]
2020
Macros for a More Productive Rust — RustConf 2020 [Video]
2019
Making Rust Delightful — RustCon Asia 2019 [Video]
An idiomatic way to sum up values in a multidimensional Array
Which is more idiomatic? Functional, imperative or a mix?
📜 History
Coming from Python, I loved the guidelines on how idiomatic Python looks like. I was inspired by the likes of Peter Norvig, who wrote amazing articles on spellcheckers and sudoku solvers; and, of course, the Zen of Python. For Rust, there is no such thing as the Zen of Python, however, so I started collecting my own resources.
The goal of this project is to create a peer-reviewed collection of articles/talks/repos, which teach idiomatic Rust style. It's a community project and you can contribute.
🔏 License
To the extent possible under law, Matthias Endler has waived all copyright and related or neighboring rights to this work.
Logo adapted from FreePik.com.
mre/idiomatic-rust thuộc nhóm Backend trên TopGit, cùng 4 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về mre/idiomatic-rust ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/mre/idiomatic-rust là nguồn chính thức.
mre/idiomatic-rust có bao nhiêu sao?
mre/idiomatic-rust có 7.8k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/mre/idiomatic-rust. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
mre/idiomatic-rust có phải mã nguồn mở không?
TopGit chưa ghi nhận license cho mre/idiomatic-rust. Phần lớn repo public trên GitHub là mã nguồn mở, nhưng điều khoản khác nhau từng repo — mở file LICENSE để xác nhận.
mre/idiomatic-rust còn đang phát triển không?
Commit gần nhất trên mre/idiomatic-rust là 6 tháng trước (theo timestamp GitHub). Repo có 240 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
mre/idiomatic-rust là gì?
mre/idiomatic-rust (mre/idiomatic-rust) là dự án Rust trên GitHub. Theo mô tả gốc: 🦀 A peer-reviewed collection of articles/talks/repos which teach concise, idiomatic Rust.
mre/idiomatic-rust viết bằng ngôn ngữ gì?
mre/idiomatic-rust chủ yếu viết bằng Rust. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Đọc đầy đủ README ở tab phía trên.
idiomatic-rust có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về idiomatic-rust.