|
|
@@ -0,0 +1,195 @@ |
|
|
- Introduction |
|
|
- [Understanding Over Guesswork](https://www.hoverbear.org/2015/09/12/understand-over-guesswork/) (brson) |
|
|
- [An Alternative Introduction to Rust](http://words.steveklabnik.com/a-new-introduction-to-rust) |
|
|
- [Rust and CSV Parsing](http://blog.burntsushi.net/csv/) |
|
|
- Ownership |
|
|
- [Where Rust Really Shines](https://manishearth.github.io/blog/2015/05/03/where-rust-really-shines/) (brson) |
|
|
- [Rust Means Never Having to Close a Socket](http://blog.skylight.io/rust-means-never-having-to-close-a-socket/) |
|
|
- [The Problem with Single-threaded Shared Mutability](https://manishearth.github.io/blog/2015/05/17/the-problem-with-shared-mutability/) (brson) |
|
|
- [Rust Ownership the Hard Way](https://chrismorgan.info/blog/rust-ownership-the-hard-way.html) |
|
|
- [Strategies for Solving "cannot move out of" Borrowing Errors](http://hermanradtke.com/2015/06/09/strategies-for-solving-cannot-move-out-of-borrowing-errors-in-rust.html) |
|
|
- Interior Mutability In Rust |
|
|
- [Interior mutability in Rust: what, why, how?](https://ricardomartins.cc/2016/06/08/interior-mutability) |
|
|
- [Interior mutability in Rust, part 2: thread safety](https://ricardomartins.cc/2016/06/25/interior-mutability-thread-safety) |
|
|
- [Interior mutability in Rust, part 3: behind the curtain](https://ricardomartins.cc/2016/07/11/interior-mutability-behind-the-curtain) |
|
|
- [`&` vs. `ref` in Patterns](http://xion.io/post/code/rust-patterns-ref.html) |
|
|
- Holy `std::borrow::Cow` |
|
|
- [Holy `std::borrow::Cow`!](https://llogiq.github.io/2015/07/09/cow.html) |
|
|
- [Holy `std::borrow::Cow` Redux!](https://llogiq.github.io/2015/07/10/cow-redux.html) |
|
|
- [Graphical Depiction of Ownership and Borrowing in Rust](https://rufflewind.com/2017-02-15/rust-move-copy-borrow) |
|
|
- Concurrency |
|
|
- [Fearless Concurrency with Rust](http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html) (brson) |
|
|
- [How Rust Achieves Thread Safety](https://manishearth.github.io/blog/2015/05/30/how-rust-achieves-thread-safety/) (brson) |
|
|
- [Defaulting to Thread-safety: Closures and Concurrency](https://huonw.github.io/blog/2015/05/defaulting-to-thread-safety/) |
|
|
- [Some Notes on `Send` and `Sync`](https://huonw.github.io/blog/2015/02/some-notes-on-send-and-sync/) |
|
|
- Niko's Rayon Quadrilogy |
|
|
- [Rayon: Data Parallism in Rust](http://smallcultfollowing.com/babysteps/blog/2015/12/18/rayon-data-parallelism-in-rust/) |
|
|
- [Parallel Iterators in Rust Part 1: Foundations](http://smallcultfollowing.com/babysteps/blog/2016/02/19/parallel-iterators-part-1-foundations/) |
|
|
- [Parallel Iterators in Rust Part 2: Producers](http://smallcultfollowing.com/babysteps/blog/2016/02/25/parallel-iterators-part-2-producers/) |
|
|
- [Parallel Iterators in Rust Part 3: Consumers](http://smallcultfollowing.com/babysteps/blog/2016/11/14/parallel-iterators-part-3-consumers/) |
|
|
- [Parallelizing Enjarify in Go and Rust](https://medium.com/@robertgrosse/parallelizing-enjarify-in-go-and-rust-21055d64af7e) |
|
|
- Traits |
|
|
- [Abstraction Without Overhead](https://blog.rust-lang.org/2015/05/11/traits.html) (brson) |
|
|
- [Going Down the Rabbit Hole with Rust Traits](http://www.jonathanturner.org/2016/02/down-the-rabbit-hole-with-traits.html) |
|
|
- Huon's Trait Object Quadrilogy |
|
|
- [Peeking Inside Trait Objects](https://huonw.github.io/blog/2015/01/peeking-inside-trait-objects/) |
|
|
- [The `Sized` Trait](https://huonw.github.io/blog/2015/01/the-sized-trait/) |
|
|
- [Object Safety](http://huonw.github.io/blog/2015/01/object-safety/) |
|
|
- [Where `Self` meets `Sized`: Revisiting Object Safety](https://huonw.github.io/blog/2015/05/where-self-meets-sized-revisiting-object-safety/) |
|
|
- [Rust's Built-in Traits, the When, How & Why](https://llogiq.github.io/2015/07/30/traits.html) (brson) |
|
|
- [Rust Traits for Developer Friendly Libraries](https://benashford.github.io/blog/2015/05/24/rust-traits-for-developer-friendly-libraries/) |
|
|
- Macros |
|
|
- [A Practical Introduction to Rust Macros](https://danielkeep.github.io/practical-intro-to-macros.html) |
|
|
- 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://www.ncameron.org/blog/macros-in-rust-pt3/) |
|
|
- [Part 4](http://www.ncameron.org/blog/macros-in-rust-pt4/) |
|
|
- [Creating an enum iterator using Macros 1.1](https://cbreeden.github.io/Macros11/) |
|
|
- [An Overview of Macros in Rust](http://words.steveklabnik.com/an-overview-of-macros-in-rust) |
|
|
- The Rust Language |
|
|
- [Finding Closure in Rust](https://huonw.github.io/blog/2015/05/finding-closure-in-rust/) (brson) |
|
|
- [Mixing Matching, Mutations and Moves](https://blog.rust-lang.org/2015/04/17/Enums-match-mutation-and-moves.html) |
|
|
- [Reading Rust Function Signatures](http://hoverbear.org/2015/07/10/reading-rust-function-signatures/) |
|
|
- [Myths and Legends About Integer Overflow in Rust](https://huonw.github.io/blog/2016/04/myths-and-legends-about-integer-overflow-in-rust/) |
|
|
- [Effectively Using Iterators in Rust](http://hermanradtke.com/2015/06/22/effectively-using-iterators-in-rust.html) |
|
|
- [A Journey Into Iterators](https://hoverbear.org/2015/05/02/a-journey-into-iterators/) |
|
|
- `unsafe` Rust |
|
|
- [Unsafe Rust: An Intro and Open Questions](http://cglab.ca/~abeinges/blah/rust-unsafe-intro/) |
|
|
- [What Does Rust's `unsafe` Mean?](https://huonw.github.io/blog/2014/07/what-does-rusts-unsafe-mean/) |
|
|
- [Memory Leaks are Memory Safe](https://huonw.github.io/blog/2016/04/memory-leaks-are-memory-safe/) |
|
|
- [On Reference Counting and Leaks](http://smallcultfollowing.com/babysteps/blog/2015/04/29/on-reference-counting-and-leaks/) |
|
|
- [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/) |
|
|
- [Pre-pooping Your Pants With Rust](http://cglab.ca/~abeinges/blah/everyone-poops/) |
|
|
- Niko's Unsafe Abstractions Series |
|
|
- [Unsafe Abstractions](http://smallcultfollowing.com/babysteps/blog/2016/05/23/unsafe-abstractions/) |
|
|
- [The "Tootsie Pop" Model for Unsafe Code](http://smallcultfollowing.com/babysteps/blog/2016/05/27/the-tootsie-pop-model-for-unsafe-code/) |
|
|
- ["Tootsie Pop" Followup](http://smallcultfollowing.com/babysteps/blog/2016/08/18/tootsie-pop-followup/) |
|
|
- [Thoughts on Trusting Types in Unsafe Code](http://smallcultfollowing.com/babysteps/blog/2016/09/12/thoughts-on-trusting-types-and-unsafe-code/) |
|
|
- [Observational Equivalence and Unsafe Code](http://smallcultfollowing.com/babysteps/blog/2016/10/02/observational-equivalence-and-unsafe-code/) |
|
|
- [Assigning Blame to Unsafe Code](http://smallcultfollowing.com/babysteps/blog/2017/01/22/assigning-blame-to-unsafe-code/) |
|
|
- [Unsafe Code and Shared References](http://smallcultfollowing.com/babysteps/blog/2017/02/01/unsafe-code-and-shared-references/) |
|
|
- [How MutexGuard was Sync When It Should Not Have Been](https://www.ralfj.de/blog/2017/06/09/mutexguard-sync.html) |
|
|
- Rust in Practice |
|
|
- [The Many Kinds of Code Reuse in Rust](http://cglab.ca/~abeinges/blah/rust-reuse-and-recycle/) |
|
|
- [Rust Error Handling](http://blog.burntsushi.net/rust-error-handling/) |
|
|
- [Why your first FizzBuzz implementation may not work](https://chrismorgan.info/blog/rust-fizzbuzz.html) |
|
|
- Herman Radtke's `String` Trilogy |
|
|
- [`String` vs. `&str` in Rust Functions](http://hermanradtke.com/2015/05/03/string-vs-str-in-rust-functions.html) |
|
|
- [Creating a Rust Function That Accepts `String` or `&str`](http://hermanradtke.com/2015/05/06/creating-a-rust-function-that-accepts-string-or-str.html) |
|
|
- [Creating a Rust Function That Returns `String` or `&str`](http://hermanradtke.com/2015/05/29/creating-a-rust-function-that-returns-string-or-str.html) |
|
|
- Gankro's Collections Trilogy |
|
|
- [Rust, Lifetimes, and Collections](http://cglab.ca/~abeinges/blah/rust-lifetimes-and-collections/) |
|
|
- [Rust, Generics, and Collections](http://cglab.ca/~abeinges/blah/rust-generics-and-collections/) |
|
|
- [Rust Collections Case Study: BTreeMap](http://cglab.ca/~abeinges/blah/rust-btree-case/) |
|
|
- [Learning Rust with Entirely Too Many Linked Lists](http://cglab.ca/~abeinges/blah/too-many-lists/book/) |
|
|
- [Working With C Unions in Rust FFI](http://hermanradtke.com/2016/03/17/unions-rust-ffi.html) |
|
|
- [Quick tip: the `#[cfg_attr]` attribute](https://chrismorgan.info/blog/rust-cfg_attr.html) |
|
|
- Using the `Option` Type Effectively |
|
|
- [Part 1](http://blog.8thlight.com/dave-torre/2015/03/11/the-option-type.html) |
|
|
- [Part 2](http://blog.8thlight.com/uku-taht/2015/04/29/using-the-option-type-effectively.html) |
|
|
- [Rust + Nix = Easier Unix Systems Programming](http://kamalmarhubi.com/blog/2016/04/13/rust-nix-easier-unix-systems-programming-3/) |
|
|
- [ripgrep code review](http://blog.mbrt.it/2016-12-01-ripgrep-code-review/) |
|
|
- [Elegant Library APIs in Rust](https://scribbles.pascalhertleif.de/elegant-apis-in-rust.html) |
|
|
- [gnome-class: Integrating Rust and the GNOME object system](http://smallcultfollowing.com/babysteps/blog/2017/05/02/gnome-class-integrating-rust-and-the-gnome-object-system/) |
|
|
- [Making Terminal Applications in Rust with Termion](http://ticki.github.io/blog/making-terminal-applications-in-rust-with-termion/) |
|
|
- [Exploring Rust's standard library: system calls and errors](https://people.gnome.org/~federico/blog/rust-libstd-syscalls-and-errors.html) |
|
|
- [Starting a New Rust Project Right, with error-chain](http://brson.github.io/2016/11/30/starting-with-error-chain) |
|
|
- Async I/O |
|
|
- [Getting Acquainted with `mio`](https://hoverbear.org/2015/03/03/getting-acquainted-with-mio/) |
|
|
- [My Basic Understanding of `mio` and Async I/O](http://hermanradtke.com/2015/07/12/my-basic-understanding-of-mio-and-async-io.html) |
|
|
- [Creating a Simple Protocol With `mio`](http://hermanradtke.com/2015/09/12/creating-a-simple-protocol-when-using-rust-and-mio.html) |
|
|
- [Managing Connection State With `mio`](http://hermanradtke.com/2015/10/23/managing-connection-state-with-mio-rust.html) |
|
|
- [Zero-cost Futures in Rust](http://aturon.github.io/blog/2016/08/11/futures/) |
|
|
- [Designing Futures for Rust](http://aturon.github.io/blog/2016/09/07/futures-design/) |
|
|
- [Asynchronous Rust for Fun and Profit](http://xion.io/post/programming/rust-async-closer-look.html) |
|
|
- Performance |
|
|
- [Benchmarking In Rust](https://llogiq.github.io/2015/06/16/bench.html) |
|
|
- [Profiling Rust Applications on Linux](https://llogiq.github.io/2015/07/15/profiling.html) |
|
|
- [Does Your Code Leave a Trail of Slowness?](https://jackmott.github.io/2017/02/27/trail-of-slow.html) |
|
|
- [Rust Faster!](https://llogiq.github.io/2015/10/03/fast.html) |
|
|
- [Rust Performance: A story featuring perf and flamegraph on Linux](http://blog.adamperry.me/rust/2016/07/24/profiling-rust-perf-flamegraph/) |
|
|
- [Zero-cost abstractions](https://ruudvanasseldonk.com/2016/11/30/zero-cost-abstractions) |
|
|
- [ripgrep is faster than {grep, ag, git grep, ucg, pt, sift}](http://blog.burntsushi.net/ripgrep/) |
|
|
- [Rust Performance Pitfalls](https://llogiq.github.io/2017/06/01/perf-pitfalls.html) |
|
|
- [Optimizing `Rc` Memory Usage in Rust](https://medium.com/@robertgrosse/optimizing-rc-memory-usage-in-rust-6652de9e119e) |
|
|
- The Rust Toolbox |
|
|
- Travis on the Train |
|
|
- [Helping Travis Catch the `rustc` Train](http://huonw.github.io/blog/2015/04/helping-travis-catch-the-rustc-train/) |
|
|
- [Travis on the Train, Part 2](http://huonw.github.io/blog/2015/05/travis-on-the-train-part-2/) |
|
|
- [Rust, Travis and GitHub Pages](http://hoverbear.org/2015/03/07/rust-travis-github-pages/) |
|
|
- [Fuzzing is Magic](https://www.nibor.org/blog/fuzzing-is-magic---or-how-i-found-a-panic-in-rusts-regex-library/) |
|
|
- [Rust Code Coverage Guide: kcov + Travis CI + Codecov / Coveralls](http://sunjay.ca/2016/07/25/rust-code-coverage) |
|
|
- Internals |
|
|
- [Optimizing Rust Struct Size: A 6-month Compiler Development Project](http://camlorn.net/posts/April%202017/rust-struct-field-reordering.html) |
|
|
- [Rust Tidbits: What Is a Lang Item?](http://manishearth.github.io/blog/2017/01/11/rust-tidbits-what-is-a-lang-item/) |
|
|
- [Reflections on Rusting Trust](https://manishearth.github.io/blog/2016/12/02/reflections-on-rusting-trust/) |
|
|
- Culture |
|
|
- [Stability as a Deliverable](https://blog.rust-lang.org/2014/10/30/Stability.html) |
|
|
- [The Not Rocket Science Rule of Software Engineering](http://graydon2.dreamwidth.org/1597.html) |
|
|
- RIIR |
|
|
- [Rewrite Everything In Rust](http://robert.ocallahan.org/2016/02/rewrite-everything-in-rust.html) |
|
|
- [Have You Considered Rewriting it In Rust?](http://transitiontech.ca/random/RIIR) |
|
|
- [Making Your Open Source Project Newcomer Friendly](http://manishearth.github.io/blog/2016/01/03/making-your-open-source-project-newcomer-friendly/) |
|
|
- [Rust Discovery, or: How I Figure Things Out](http://carol-nichols.com/2015/08/01/rustc-discovery/) |
|
|
- [The Minimally-nice Open Source Software Maintainer](http://brson.github.io/2017/04/05/minimally-nice-maintainer) |
|
|
- [Fireflowers](https://brson.github.io/fireflowers/) |
|
|
- [Rust is More than Safety](http://words.steveklabnik.com/rust-is-more-than-safety) |
|
|
- [Rust is Mostly Safety](http://graydon2.dreamwidth.org/247406.html) |
|
|
- [Safety is Rust's Fireflower](https://thefeedbackloop.xyz/safety-is-rusts-fireflower/) |
|
|
- [Fire Mario, Not Fire Flowers](http://words.steveklabnik.com/fire-mario-not-fire-flowers) |
|
|
- [Fire Flowers and Marios](https://medium.com/@ag_dubs/fire-flowers-and-marios-marketing-rust-996b3fdbe8f3) |
|
|
- [Rust is About Productivity](http://www.ncameron.org/blog/rust-is-about-productivity/) |
|
|
- [Rust is Its Community](https://mgattozzi.com/rust-is) |
|
|
- [My Thoughts on Rust in 2017](https://medium.com/@Hisako1337/rust-in-2017-8f2b57a67d9b#.3eegqri2g) |
|
|
- [Rust is Software's Salvation](https://redox-os.org/news/rust-is-softwares-salvation-17/) |
|
|
- [Rust is My Magic Whistle](http://anowell.com/posts/why-rust.html) |
|
|
- [Rust is Something Old Made New](http://panpanick.ninja/30-12-2016.html) |
|
|
- [Rust is Needed Now More than Ever](https://llogiq.github.io/2016/12/27/retro.html) |
|
|
- [Rust is About Boldness](https://www.reddit.com/r/rust/comments/5lo6ny/rust_is_about_boldness/) |
|
|
- [Rust is About Better Citizenship](https://kasma1990.gitlab.io/2017/01/01/rust-is-about-better-citizenship/) |
|
|
- [Rust Marketing Pitch](https://kasma1990.gitlab.io/2017/01/01/rust-is-about-better-citizenship/) |
|
|
- Cheat Sheets - Can these be modified for the book? |
|
|
- [Periodic Table of Rust Types](http://cosmic.mearie.org/2014/01/periodic-table-of-rust-types) |
|
|
- [Rust String Conversions Cheat Sheet](https://docs.google.com/spreadsheets/d/19vSPL6z2d50JlyzwxariaYD6EU2QQUQqIDOGbiGQC7Y/pubhtml?gid=0&single=true) |
|
|
- [Rust Iterator Cheat Sheet](https://danielkeep.github.io/itercheat_baked.html) |
|
|
- [Rust Container Cheet Sheet](https://docs.google.com/presentation/d/1q-c7UAyrUlM-eZyTo1pd8SZ0qwA_wYxmPZVOQkoDmH4/edit) |
|
|
- Additional Reading |
|
|
- [The Book](http://doc.rust-lang.org/nightly/book) |
|
|
- [The Nomicon](https://doc.rust-lang.org/nightly/nomicon/) |
|
|
- [Rust By Example](https://www.rustbyexample.com) |
|
|
- [Writing an OS in Rust](http://os.phil-opp.com/) |
|
|
- [Rust 101](https://www.ralfj.de/projects/rust-101/main.html) |
|
|
- [rustlings](https://github.com/carols10cents/rustlings) |
|
|
- [The Little Book of Rust Macros](https://danielkeep.github.io/tlborm/) |
|
|
- [The Rust FFI Omnibus](http://jakegoulding.com/rust-ffi-omnibus/?updated=2015-11-08) |
|
|
- Uncategorized Chapters |
|
|
- [Why Is A Rust Executable Large?](https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html) |
|
|
- [Wrapper Types in Rust: Choosing Your Guarantees](https://doc.rust-lang.org/book/choosing-your-guarantees.html) |
|
|
- [Where Are You `From::from`?](https://llogiq.github.io/2015/11/27/from-into.html) |
|
|
- Type-level Shenanigans |
|
|
- [Type-level Shenanigans](https://llogiq.github.io/2015/12/12/types.html) |
|
|
- [More Type-level Shenanigans](https://llogiq.github.io/2016/02/23/moretypes.html) |
|
|
- [Rustic Bits](https://llogiq.github.io/2016/02/11/rustic.html) |
|
|
- [Mapping Over Arrays](https://llogiq.github.io/2016/04/28/arraymap.html) |
|
|
- [Rust for Functional Programmers](http://science.raphael.poss.name/rust-for-functional-programmers.html) |
|
|
- [From &str to Cow](http://blog.jwilm.io/from-str-to-cow/) |
|
|
- Graydon's Lists |
|
|
- [Five Lists of Six Things About Rust](http://graydon2.dreamwidth.org/214016.html) |
|
|
- [Things Rust Shipped Without](http://graydon2.dreamwidth.org/218040.html) |
|
|
- [for loops in Rust](http://xion.io/post/code/rust-for-loop.html) |
|
|
- [Convenient and Idiomatic Conversions in Rust](https://ricardomartins.cc/2016/08/03/convenient_and_idiomatic_conversions_in_rust) |
|
|
- [Using and_then and map combinators on the Rust Result Type](http://hermanradtke.com/2016/09/12/rust-using-and_then-and-map-combinators-on-result-type.html) |
|
|
- [I used to use pointers. Now what?](https://github.com/diwic/reffers-rs/blob/master/docs/Pointers.md) |
|
|
- Let’s Stop Ascribing Meaning to Code Points |
|
|
- [Let’s Stop Ascribing Meaning to Code Points](http://manishearth.github.io/blog/2017/01/14/stop-ascribing-meaning-to-unicode-code-points/) |
|
|
- [Breaking Our Latin-1 Assumptions](https://manishearth.github.io/blog/2017/01/15/breaking-our-latin-1-assumptions/) |
|
|
- [What are Sum, Product, and Pi types?](https://manishearth.github.io/blog/2017/03/04/what-are-sum-product-and-pi-types/) |
|
|
- [Rust your ARM microcontroller!](http://blog.japaric.io/quickstart/) |
|
|
- [It's Time for a Memory Safety Intervention](https://tonyarcieri.com/it-s-time-for-a-memory-safety-intervention) |
|
|
- [Bugs You'll Probably Only Have in Rust](https://gankro.github.io/blah/only-in-rust/) |
|
|
- [Four Years With Rust](http://words.steveklabnik.com/four-years-with-rust) |
|
|
- [My Experience Writing Enjarify in Rust](https://medium.com/@robertgrosse/my-experience-rewriting-enjarify-in-rust-723089b406ad) |
|
|
- [Rust's Type System is Turing-Complete](https://sdleffler.github.io/RustTypeSystemTuringComplete/) |
|
|
- [Rust Makes Invariants Explicit](https://medium.com/@robertgrosse/rust-makes-implicit-invariants-explicit-baf4cf17ae50) |
|
|
- [Rust: A Scala Engineer's Perspective](https://beachape.com/blog/2017/05/24/rust-from-scala/) |