![Logo](idiomatic-rust.png) This repository collects resources for writing clean, idiomatic Rust code. Please add your own. :smile: ## Articles ### 2017 * [Lessons learned redesigning and refactoring a Rust Library](https://mgattozzi.com/refactor-rust) by [@mgazotti](https://github.com/mgattozzi) - `RefCell`, the builder pattern and more. ### 2016 * [Russian Dolls and clean Rust code](https://mgattozzi.com/russian-dolls) by [@mgazotti](https://github.com/mgattozzi) - How to use the full power of `Option` and `Result` (especially `and_then()` and `unwrap_or()`). * [Elegant Library APIs in Rust](https://deterministic.space/elegant-apis-in-rust.html) by [@killercup](https://github.com/killercup) - Many helpful tips and tricks for writing libraries in Rust. * [Teaching libraries through good documentation](https://deterministic.space/teaching-libraries.html) by [@killercup](https://github.com/killercup) - How to use the full power of Rust's documentation support (e.g. doc tests) ### 2015 * [Rust traits for developer friendly libraries](http://benashford.github.io/blog/2015/05/24/rust-traits-for-developer-friendly-libraries/) by [@benashford](https://github.com/benashford) - Thoughts about implementing good Rust libraries. ## Projects * [clippy](https://github.com/Manishearth/rust-clippy) - A bunch of lints to catch common mistakes and improve your Rust code. * [Patterns](https://github.com/nrc/patterns/) - A catalogue of Rust design patterns. * [rust-api-guidelines](https://github.com/brson/rust-api-guidelines) - An extensive list of recommendations for idiomatic Rust APIs. ## License [![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) To the extent possible under law, [Matthias Endler](http://matthias-endler.de) has waived all copyright and related or neighboring rights to this work. Logo adapted from [FreePik.com](www.freepik.com/free-vector/crabs-pattern-design_1093131.htm).