├── README.md ├── rust-adoption.md ├── rust-archives.md ├── rust-cli-tools.md ├── rust-conferences.md ├── rust-guidelines.md ├── rust-guru-notes.md ├── rust-history.md ├── rust-influence.md ├── rust-inspired-research.md ├── rust-libraries.md ├── rust-papercuts.md ├── rust-performance.md ├── rust-project-ideas.md ├── rust-quotes-and-press-neg.md ├── rust-quotes-and-press.md ├── rust-resources.md ├── rust-safety-notes.md └── rust-timeline.md /README.md: -------------------------------------------------------------------------------- 1 | # My Rust Lists 2 | 3 | Lists of Rust-related things for my personal use, 4 | which might be useful to other Rust developers. 5 | 6 | Some more maintained than others. 7 | Some are more readable than others. 8 | 9 | - [rust-adoption.md](rust-adoption.md) 10 | 11 | Rust production users. 12 | 13 | - [rust-archives.md](rust-archives.md) 14 | 15 | Historical Rust resources. 16 | 17 | - [rust-cli-tools.md](rust-cli-tools.md) 18 | 19 | Rust CLI tools I use. 20 | 21 | - [rust-conferences.md](rust-conferences.md) 22 | 23 | Rust conferences. 24 | 25 | - [rust-guidelines.md](rust-guidelines.md) 26 | 27 | Rust coding guidelines. 28 | 29 | - [rust-guru-notes.md](rust-guru-notes.md) 30 | 31 | Advanced Rust. 32 | 33 | - [rust-history.md](rust-history.md) 34 | 35 | Links about the history of Rust. 36 | 37 | - [rust-influence.md](rust-influence.md) 38 | 39 | Rust's influence on other languages and industry. 40 | 41 | - [rust-inspired-research.md](rust-inspired-research.md) 42 | 43 | Research and papers about Rust and Rusty subjects. 44 | 45 | - [rust-libraries.md](rust-libraries.md) 46 | 47 | Rust libraries I use. 48 | 49 | - [rust-performance.md](rust-performance.md) 50 | 51 | Links to reviews of Rust's performance. 52 | 53 | - [rust-project-ideas.md](rust-project-ideas.md) 54 | 55 | Ideas for projects to write in or for Rust. 56 | 57 | - [rust-quotes-and-press.md](rust-quotes-and-press.md) 58 | 59 | Early responses to Rust. 60 | 61 | - [rust-quotes-and-press-neg.md](rust-quotes-and-press-neg.md) 62 | 63 | Negative responses to Rust. 64 | 65 | - [rust-resources.md](rust-resources.md) 66 | 67 | Unique Rust resources. 68 | 69 | - [rust-safety-notes.md](rust-safety-notes.md) 70 | 71 | Evidence of the value of Rust's memory safety. 72 | 73 | - [rust-timeline.md](rust-timeline.md) 74 | 75 | Timeline of early Rust events. 76 | 77 | 78 | Another of my lists that is not maintained here but that I do update is the 79 | [Rust Anthology master list][aml], a list of notable or useful Rust blog posts. 80 | 81 | [aml]: https://github.com/brson/rust-anthology/blob/master/master-list.md 82 | -------------------------------------------------------------------------------- /rust-adoption.md: -------------------------------------------------------------------------------- 1 | # Rust adoption notes 2 | 3 | Notes about major production deployments of Rust. 4 | Useful in cases where someone asks "who is actually using Rust?". 5 | 6 | - **Firefox** 7 | 8 | - **Facebook** uses Rust for source management, Diem, and other things 9 | - https://engineering.fb.com/2021/04/29/developer-tools/rust/ 10 | - https://github.com/facebookexperimental/mononoke 11 | 12 | - **Amazon** in AWS Fargate container orchestration 13 | - https://blog.acolyer.org/2020/03/02/firecracker/ 14 | - https://aws.amazon.com/blogs/aws/bottlerocket-open-source-os-for-container-hosting/ 15 | 16 | - **Google** 17 | - Fuchsia operating system and ChromeOS 18 | - https://blog.cr0.org/2021/06/a-few-thoughts-on-fuchsia-security.html 19 | - https://news.ycombinator.com/item?id=27487465 20 | - https://news.ycombinator.com/item?id=22410460 21 | - Android's bluetooth stack 22 | - https://news.ycombinator.com/item?id=26647981 23 | - Android OS generally 24 | - https://security.googleblog.com/2021/04/rust-in-android-platform.html 25 | - https://news.ycombinator.com/item?id=26714478 26 | 27 | - **Microsoft**'s IoT Edge has a Rust component. 28 | 29 | - **Dropbox**'s storage backend is in Rust, probably other components as well 30 | - https://dropbox.tech/infrastructure/rewriting-the-heart-of-our-sync-engine 31 | 32 | - **Cloudflare** uses Rust for multiple purposes 33 | 34 | - **Reddit** uses Rust on every request for markdown parsing 35 | - and other projects 36 | 37 | - **Apple** 38 | - https://www.reddit.com/r/rust/comments/fkngza/apple_hiring_rust_engineers_for_storage_and/ 39 | 40 | - **Mullvad**s VPN app 41 | - https://news.ycombinator.com/item?id=22410369 42 | 43 | - **1password** 44 | - https://news.ycombinator.com/item?id=22410587 45 | 46 | - **Sentry** metrics monitor has components written in Rust 47 | 48 | - **Discord** uses rust 49 | - https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f 50 | 51 | - **Figma**'s (popular design tool) backend is in Rust 52 | 53 | - **Linkerd** service mesh's sidecar component is written in Rust 54 | 55 | - **Visual Studio Code** ships with ripgrep 56 | 57 | - **System76** 58 | - https://www.reddit.com/r/rust/comments/eezdg6/those_who_use_rust_in_production_what_are_you/ 59 | 60 | - Rust is used by at least **33 blockchain companies** 61 | 62 | - There are multiple companies building **Rust-in-secure-enclaves** products, 63 | including Baidu. Not huge yet, but if enclaves catch on, Rust will be in a lot 64 | of them. 65 | 66 | - Rust **command-line programs** are increasingly popular, and Debian stable already 67 | ships with a number of them. ripgrep is particularly notable, but people 68 | outside of the Rust community are also using fd-find, exa, and hexyl. 69 | 70 | - 4% of **Debian** packages are written in Rust. 71 | - (https://bioreports.net/debian-riscv64-port-status/, 72 | https://www.reddit.com/r/rust/comments/cap9ul/debian_10_released_contains_ripgrep_fdfind_exa/). 73 | - https://www.debian.org/releases/buster/amd64/release-notes/ch-whats-new.en.html 74 | - https://www.reddit.com/r/rust/comments/cap9ul/debian_10_released_contains_ripgrep_fdfind_exa/ 75 | - https://bioreports.net/debian-riscv64-port-status/ 76 | 77 | - **Ticketmaster** uses Rust in their rewrite (what's the status?) 78 | 79 | 80 | ## Other lists 81 | 82 | - https://kerkour.com/blog/rust-in-production-2021/ 83 | 84 | - https://www.reddit.com/r/programming/comments/cmcw7q/fixing_c_with_epochs/ew3mr4c?utm_source=share&utm_medium=web2x 85 | - my previous notes 86 | 87 | - jturner's notes 88 | - https://www.jonathanturner.org/2018/07/snapshot-of-rust-popularity.html#rusts-commercial-users 89 | 90 | - https://github.com/omarabid/rust-companies 91 | 92 | - previous thread 93 | - https://news.ycombinator.com/item?id=22409838 94 | 95 | - https://www.rust-lang.org/production 96 | 97 | -------------------------------------------------------------------------------- /rust-archives.md: -------------------------------------------------------------------------------- 1 | - [rust-prehistory](https://github.com/graydon/rust-prehistory) 2 | 3 | Graydon's source from 2006-2010, including 2009 edits from other Mozilla hackers. 4 | 5 | - [rust-dev-archives](https://github.com/brson/rust-dev-archives) 6 | 7 | My own backup of the rust-dev mailing list. 8 | Still browsable [at Mozilla's site](https://mail.mozilla.org/pipermail/rust-dev/). 9 | 10 | - [rust-wiki-backup](https://github.com/rust-lang/rust-wiki-backup) 11 | 12 | The old Rust wiki. 13 | 14 | - [meeting-minutes](https://github.com/rust-lang/meeting-minutes) 15 | 16 | Meeting minutes from 2011-2015. 17 | 18 | - [rust-irc-logs](https://github.com/brson/rust-irc-logs) 19 | 20 | Historic IRC logs for Rust channels on irc.mozilla.org. 21 | 22 | - [Rust Release History](https://forge.rust-lang.org/archive/release-history.html) 23 | 24 | Links to announcements, release notes, documentation, and installers up to 1.7. 25 | This type of information doesn't appear maintained after 1.7. 26 | 27 | - [Friends of the Tree](https://forge.rust-lang.org/archive/fott.html) 28 | 29 | Descriptions of contributions from important early contributors 2014 - 2016. 30 | 31 | - [archaea](https://github.com/brson/archaea) 32 | 33 | An interactive presentation of the syntactic evoluation of early Rust. 34 | 35 | - [Graydon's Project Servo talk](http://venge.net/graydon/talks/intro-talk-2.pdf) 36 | 37 | First presentation about Rust. 38 | 39 | [Backup](https://github.com/brson/project-servo-talk) 40 | -------------------------------------------------------------------------------- /rust-cli-tools.md: -------------------------------------------------------------------------------- 1 | **This list is unmaintained. For a similar project see [rustmax](https://github.com/brson/rustmax).** 2 | 3 | ## Rust CLI tools I use a lot 4 | 5 | - [basic-http-server](https://crates.io/crates/basic-http-server) - serve static HTML and rendered Markdown 6 | - [cargo-clean-all](https://crates.io/crates/cargo-clean-all) - clean all projects, leaving recent files 7 | - [cargo-edit](https://crates.io/crates/cargo-edit) - `cargo add` command especially 8 | - [cargo-expand](https://github.com/dtolnay/cargo-expand) - expand macros 9 | - [cargo-hack](https://crates.io/crates/cargo-hack) - build / test with all combinations of cargo features 10 | - [cargo-tree](https://crates.io/crates/cargo-tree) - show the crate graph as a tree 11 | - [du-dust](https://crates.io/crates/du-dust) - lik du, disk usage 12 | - [fd-find](https://crates.io/crates/fd-find) - convenient `find` replacement 13 | - [gist](https://crates.io/crates/gist) - post gists 14 | - [lsd](https://crates.io/crates/lsd) - like ls 15 | - [parol](https://crates.io/crates/parol) - LL(k) parser generator 16 | - [ripgrep](https://crates.io/crates/ripgrep) - fast and convenient code grep 17 | - [tokei](https://crates.io/crates/tokei) - count lines of code 18 | 19 | ## Rust CLI tools I use sometimes 20 | 21 | - [bingrep](https://crates.io/crates/bingrep) - output info about binaries 22 | - [cargo-audit](https://crates.io/crates/cargo-audit) - find known security vulnerabilities 23 | - [cargo-benchcmp](https://crates.io/crates/cargo-benchcmp) - compare benchmarks using Rust's built-in benchmarker 24 | - [cargo-bloat](https://crates.io/crates/cargo-bloat) - show what's bloating your bins 25 | - [cargo-deps](https://crates.io/crates/cargo-deps) - generate dep graphs (deprecated - use carge-depgraph?) 26 | - [cargo-fuzz](https://crates.io/crates/cargo-fuzz) - fuzz testing 27 | - [cargo-generate](https://crates.io/crates/cargo-generate) - create a project from a project template 28 | - `cargo generate --git https://github.com/rustwasm/wasm-pack-template` 29 | - [cargo-llvm-lines](https://github.com/dtolnay/cargo-llvm-lines/) - shows amount of LLVM IR generated per function 30 | - [cargo-outdated](https://crates.io/crates/cargo-outdated) - find upgradable crates 31 | - [cargo-udeps](https://crates.io/crates/cargo-udeps) - show unused crates 32 | - [cargo-watch](https://crates.io/crates/cargo-watch) - rebuild on change 33 | - [cargo-workspace](https://crates.io/crates/cargo-workspace) - operate on every crate in workspace 34 | - [critcmp](https://crates.io/crates/critcmp) - compare criterion benchmarks 35 | - [eza](https://crates.io/crates/eza) - like ls 36 | - [hexyl](https://crates.io/crates/hexl) - hex viewer 37 | - [jaq](https://crates.io/crates/jaq) - jq clone for querying JSON 38 | - [jsonxf](https://crates.io/crates/jsonxf) - JSON pretty-printer and more 39 | - [just](https://crates.io/crates/just) - custom command runner, like make but without the baggage 40 | - [mdbook](https://crates.io/crates/mdbook) - Rust-standard markdown documentation generator 41 | - [sd](https://crates.io/crates/sd) - sed replacement (find and replace) 42 | - [stellar-xdr](https://crates.io/crates/stellar-xdr) - XDR encoding/decoding 43 | - [twiggy](https://crates.io/crates/twiggy) - code size profiler 44 | - [wagyu](https://crates.io/crates/wagyu) - generate blockchain wallets 45 | - [wasm-cs](https://crates.io/crates/wasm-cs) - read and write custom wasm sections 46 | - [wasm-opt](https://crates.io/crates/wasm-opt) - wasm optimizer 47 | - [wasm-tools](https://crates.io/crates/wasm-tools) - various tools for wasm 48 | - [xsv](https://crates.io/crates/xsv) - CSV tool 49 | 50 | ## Rust tools I have used in the past 51 | 52 | - [cargo-feature-analyst](https://crates.io/crates/cargo-feature-analyst) - show feature usage 53 | 54 | ## Rust tools I don't use but might 55 | 56 | - [bat](https://crates.io/crates/bat) - cat with syntax highlighting 57 | - [bins](https://crates.io/crates/bins) - multi-pastebin tool 58 | - [broot](https://crates.io/crates/broot) - novel large directory navigation 59 | - [cargo-clean-recursive](https://crates.io/crates/cargo-clean-recursive) - clean all projects 60 | - [cargo-count](https://crates.io/crates/cargo-count) - count lines in rust projects 61 | - [cargo-deny](https://crates.io/crates/cargo-deny) - disallow specific crates, licenses, etc 62 | - [cargo-geiger](https://crates.io/crates/cargo-geiger) - detect unsafe in dep tree 63 | - [cargo-generate](https://crates.io/crates/cargo-generate) - create cargo projecs from temtplates 64 | - [cargo-license](https://crates.io/crates/cargo-license) - show licenses of dependencies 65 | - [chit](https://crates.io/crates/chit) - lookup crate info 66 | - [dua-cli](https://crates.io/crates/dua-cli) - disk usage analyzer 67 | - [eva](https://crates.io/crates/eva) - calculator, like bc 68 | - [fastmod](https://crates.io/crates/fastmod) - code refactoring 69 | - [hyperfine](https://crates.io/crates/hyperfine) - benchmarking tool 70 | - [intentrace](https://crates.io/crates/intentrace) - better strace 71 | - [jj-cli](https://crates.io/crates/jj-cli) - mercurial-like porcelain for git 72 | - [measureme](https://github.com/rust-lang/measureme) - work with rustc's self-profile 73 | - [memory-profiler](https://github.com/nokia/memory-profiler) - analyze memory leaks 74 | - [miniserve](https://crates.io/crates/miniserve) - simple HTTP server 75 | - [pomsky](https://crates.io/crates/pomsky) - easy regexes 76 | - [procs](https://crates.io/crates/procs) - like htop / ps 77 | - [rewrite](https://crates.io/crates/rewrite) - rewrite file contents 78 | - [rust-semverver](https://github.com/rust-lang/rust-semverver) - check for semver API breakage 79 | - [ripgrep_all](https://crates.io/crates/ripgrep_all) - search inside archives etc 80 | - [svgbob](https://crates.io/crates/svgbob) - convert text to SVG 81 | - [treeify](https://crates.io/crates/treeify) - display a list files as a tree 82 | - [wasm-pack](https://crates.io/crates/wasm-pack) - package Rust as wasm 83 | 84 | ## Not Rust but useful for Rust 85 | 86 | - [bloaty mcbloatface](https://github.com/google/bloaty) - find code bloat 87 | 88 | ## Don't use any more 89 | 90 | - [cargo-lichking](https://crates.io/crates/cargo-lichking) - check dependency licenses 91 | 92 | ## Other's lists 93 | 94 | - https://twitter.com/jesusprubio/status/1237752138069094400 95 | - https://www.wezm.net/technical/2019/10/useful-command-line-tools 96 | - https://elliehuxtable.com/my-tools-are-pretty-rusty/ 97 | - https://www.reddit.com/r/rust/comments/fvx7bm/i_wrote_a_blog_post_about_rust_cli_tools_i_find/ 98 | -------------------------------------------------------------------------------- /rust-conferences.md: -------------------------------------------------------------------------------- 1 | - Rust Camp 2015 - https://web.archive.org/web/20151230020407/http://rustcamp.com/ 2 | - 6 sponsors 3 | - 0 blockchain sponsors 4 | - RustConf 2016 - http://2016.rustconf.com/sponsors.html 5 | - 6 sponsors 6 | - 0 blockchain sponsors 7 | - RustConf 2017 - http://2017.rustconf.com/sponsors.html 8 | - 6 sponsors 9 | - 0 blockchain sponsors 10 | - RustConf 2018 - http://2018.rustconf.com/sponsors.html 11 | - 22 sponsors 12 | - 5 blockchain sponsors 13 | - RustConf 2019 - https://rustconf.com/sponsors/ 14 | - 13 sponsors (pending) 15 | - 2 blockchain sponsors 16 | - 4 diamond 17 | - 13 gold 18 | - 3 bronze 19 | - 4*8+13*6+3*2 20 | - RustCon Asia 2019 - https://rustcon.asia/ 21 | - 7 sponsors 22 | - 2 blockchain sponsors 23 | - RustFest Paris 2016 - https://2016.rustfest.eu/sponsoring/ 24 | - 7 sponsors 25 | - 1 blockchain sponsor 26 | - RustFest Ukraine 2017 - https://2017.rustfest.eu/sponsoring/ 27 | - 6 sponsors 28 | - 0 blockchain sponsors 29 | - RustFest Zurich 2017 - https://zurich.rustfest.eu/sponsoring/ 30 | - 4 sponsors 31 | - 1 blockchain sponsor 32 | - RustFest Paris 2018 - https://paris.rustfest.eu/sponsors/ 33 | - 8 sponsors 34 | - 3 blockchain sponsors 35 | - RustFest Rome 2018 - https://rome.rustfest.eu/sponsors/ 36 | - 11 sponsors 37 | - 3 blockchain sponsors 38 | - RustFest Barcelona 2019 - https://barcelona.rustfest.eu/sponsors/ 39 | - 1 sponsor 40 | - 0 blockchain sponsors 41 | - Rust Belt Rust 2016 - http://conf2016.rust-belt-rust.com/ 42 | - 10 sponsors 43 | - 0 blockchain sponsors 44 | - Rust Belt Rust 2017 - http://conf2017.rust-belt-rust.com/sponsors.html 45 | - 9 sponsors 46 | - 0 blockchain sponsor 47 | - Rust Belt Rust 2018 - http://conf2018.rust-belt-rust.com/sponsors/ 48 | - 7 sponsors 49 | - 1 blockchain sponsor 50 | - Rust Belt Rust 2019 - https://www.rust-belt-rust.com/sponsors/ 51 | - 2 sponsors 52 | - 0 blockchain sponsors 53 | - Colorado Gold Rust 2019 - https://www.cogoldrust.com/sponsors/ 54 | - 3 sponsors (pending) 55 | - 1 blockchain sponsor 56 | - Rust LatAm 2019 - https://rustlatam.org/#our_sponsors 57 | - 10 sponsors 58 | - 4 blockchain sponsors 59 | - Rust Rush 2018 - https://rustrush.ru/index 60 | - 5 sponsors 61 | - 1 blockchain sponsor 62 | - Rust.Tokyo 2019 - https://rust.tokyo/sponsorship/ 63 | - 0 sponsors (pending) 64 | -------------------------------------------------------------------------------- /rust-guidelines.md: -------------------------------------------------------------------------------- 1 | - https://github.com/PolySync/misra-rust 2 | - https://anssi-fr.github.io/rust-guide/ 3 | - [Rust API Guidelines](https://github.com/brson/rust-api-guidelines) 4 | -------------------------------------------------------------------------------- /rust-guru-notes.md: -------------------------------------------------------------------------------- 1 | - `use Trait as _` by default 2 | - Most traits don't need to be named 3 | - This could be a lint 4 | - `cargo +nightly test -Z direct-minimal-versions` 5 | - seems useful 6 | - `cargo rustc --crate-type=xxx` 7 | - when you need a weird crate-type that breaks other parts of the build 8 | - cc https://github.com/solana-labs/move/pull/244 9 | - cc https://github.com/stellar/rs-soroban-sdk/pull/957#issuecomment-1600066124 10 | - cc https://github.com/rust-lang/cargo/issues/12260#issuecomment-1589624151 11 | - Unnamed trait imports with `_` 12 | - How to rebase around Cargo.lock conflicts 13 | - Option::flatten 14 | let src_time = src_path.metadata() 15 | .ok().map(|m| m.modified().ok()).flatten(); 16 | - PhantomData 17 | - using cfg_attr for conditional lines of docs 18 | 19 | //! You can serialize types in a similar fashion: 20 | //! 21 | #![cfg_attr(not(feature = "display"), doc = " ```ignore")] 22 | #![cfg_attr(feature = "display", doc = " ```")] 23 | //! use serde::Serialize; 24 | 25 | * `use foo::*` to avoid name collision errors 26 | * `const _` trick 27 | - https://github.com/rust-lang/rfcs/blob/master/text/2526-const-wildcard.md 28 | - also used to create temporary scopes in macros 29 | - as in soroban arbitrary macros 30 | * use unnamed imports to avoid trait name collisions: 'import Bytes as _' 31 | * `use std::format as s` to succinctly create strings from strs 32 | * a crate can exclude itself from a workspace 33 | 34 | # Prevent this from interfering with workspaces 35 | [workspace] 36 | members = ["."] 37 | 38 | * `[workspace.package]` 39 | * workspace dependencies 40 | - https://doc.rust-lang.org/nightly/cargo/reference/specifying-dependencies.html#inheriting-a-dependency-from-a-workspace 41 | * `#![no_main]` allows linking to a C library that provides `main` 42 | * Use extra braces (scopes `{ }`) for organization. 43 | * `use unused as _` 44 | - for linking to a crate containing only C code 45 | - cargo-contract uses it to satisfy the unused_crate lint 46 | - just use `extern crate`? 47 | * tuple matching 48 | - getting async blocks to typecheck `?` 49 | - `Ok::<_, anyhow::Error>(())` 50 | - for async test cases 51 | * test runner has its own flags 52 | - --nocapture 53 | - rustc won't attempt to link other crates if they are not referenced 54 | - this can cause huge confusion of those other crates only contain c symbols 55 | since rustc won't pass them to the linker and they'll just disappear 56 | * Sealed trait pattern 57 | - cargo aliases 58 | * cargo xtask 59 | * #[path = ""] trick 60 | ``` 61 | #[path = ""] 62 | mod non_bpf_modules { 63 | mod sanitized; 64 | mod versions; 65 | } 66 | ``` 67 | 68 | * #[non_exhaustive] 69 | * shebang?! 70 | - https://github.com/rust-lang/rust/issues/1772 71 | - https://neosmart.net/blog/2020/self-compiling-rust-code/ 72 | - Should I end a function with a passthrough call or with `?; Ok(())` 73 | - Following crates.io / docs.rs to GitHUb etc. 74 | - `-- --test-threads=1` will print names of test cases before they hard-crash 75 | * Ok(panic!()) instead of panic!() in async fns 76 | * compile dependencies with optimizations in dev mode 77 | - https://www.reddit.com/r/rust/comments/gvrgca/this_is_a_neat_trick_for_getting_good_runtime/ 78 | - out-of-bound pointer math not ok 79 | - https://github.com/tikv/tikv/pull/7751/files/69b602a4a50370cf8f327116ec345a13c7083ce8 80 | - https://blog.regehr.org/archives/1518 81 | - https://www.reddit.com/r/rust/comments/518gcs/whats_your_favorite_piece_of_rust_code/d7a3gs0/ 82 | * don't use unchecked functions just because you "know" the invariant holds (i.e. from_utf8_unchecked) 83 | * remove_dir_all crate 84 | - Arc::make_mut for copy-on-write 85 | - {String}.as_ref().map(Borrow::borrow) -> &str 86 | * count complete source lines with cargo vendor + tokei 87 | - https://github.com/Hexilee/async-io-demo 88 | - https://github.com/dtolnay/semver-trick 89 | - https://medium.com/@edwardpku/being-an-intermediate-rust-programmer-in-one-day-37283bb1b0b0?from=timeline&isappinstalled=0 90 | - ECS 91 | - https://blog.rust-lang.org/2018/12/21/Procedural-Macros-in-Rust-2018.html 92 | - https://rust-lang-nursery.github.io/api-guidelines/documentation.html 93 | - https://rust-random.github.io/book/ 94 | - https://www.breakdown-notes.com/make/load/rust_cs_canvas/true 95 | * criterion 96 | - create rust pro tips 97 | - https://docs.rs/arc-swap/0.3.7/arc_swap/ 98 | - cargo test --all --no-run 99 | - cargo check --all --no-run --profile=dev 100 | - do code review series ala https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw 101 | - what is the default matching scheme for unadorned version numbers in cargo 102 | - how does cargo's crate resolution work? 103 | - do 'stacked' cfg attributes 'or' and 'and'? 104 | - what do you about repeated big cfgs? 105 | - why do Rc and Arc have static clone methods? 106 | - DSTs 107 | - IRC channels 108 | - #rust 109 | - #rust-internals 110 | - #rust-beginners 111 | - libs? 112 | - https://github.com/nrc/talks - 'thinking in rust' 113 | - overflow 114 | * turbofish 115 | * Collection> -> Result> 116 | - https://doc.rust-lang.org/stable/std/iter/trait.FromIterator.html#impl-FromIterator%3CResult%3CA%2C%20E%3E%3E 117 | - https://stjepang.github.io/2019/01/29/lock-free-rust-crossbeam-in-2019.html 118 | - https://github.com/japaric/rust-san 119 | - sccache 120 | - default fns vs 'defaut fn' 121 | - https://github.com/servo/string-cache 122 | - StdError, StdResult 123 | - https://limpet.net/mbrubeck/2019/02/07/rust-a-unique-perspective.html 124 | - https://doc.rust-lang.org/nomicon/aliasing.html 125 | - https://manishearth.github.io/blog/2015/05/17/the-problem-with-shared-mutability/ 126 | - security 127 | - https://github.com/ANSSI-FR/rust-guide - secure applications 128 | - https://research.kudelskisecurity.com/2019/02/07/auditing-rust-crypto-the-first-hours/ 129 | - production case studies 130 | - https://www.rust-lang.org/production 131 | - https://www.reddit.com/r/rust/comments/aohq6u/rust_velocity_and_defect_rates/eg189gu/ 132 | - cargo-outdated, cargo-audit 133 | - [package.metadata.docs.rs] (ala jemalloc crate) 134 | - profiling 135 | - https://github.com/andikleen/pmu-tools 136 | - https://github.com/andikleen/pmu-tools/wiki/toplev-manual 137 | - https://github.com/RazrFalcon/cargo-bloat 138 | - cargo profile 139 | - twiggy, bloaty, objdump, nm, readelf 140 | - cargo-tree 141 | - https://dendibakh.github.io/blog/2019/02/09/Top-Down-performance-analysis-methodology 142 | - https://github.com/svenstaro/cargo-profiler 143 | - https://github.com/dignifiedquire/rust-gperftools 144 | - cargo-vendor, cargo-local-registry 145 | - cargo -v and cargo -vv 146 | - software validation projects 147 | - https://github.com/blt/bughunt-rust 148 | - miri 149 | - embedded rust 150 | - https://github.com/rust-embedded 151 | - https://github.com/rust-embedded/awesome-embedded-rust 152 | - symbolic crate for minidump reporting 153 | * println!("{:#?}", ...); 154 | - CI building with --locked when Cargo.toml is checked in 155 | * dbg! 156 | - getset crate 157 | - cargo-local-registry 158 | * Struct { no, name, stuttering } 159 | - what's in `target/` 160 | - `target/$profile` vs `target/$triple/$profile` 161 | - ashley's template project 162 | - cargo-apply 163 | - cargo-dot 164 | - full CI regime 165 | - cargo -Vv 166 | - rustc -Vv 167 | - rustup -Vv 168 | - cargo generate-lockfile 169 | - cargo fetch 170 | - cargo build --locked 171 | - cargo run --locked -Zoffline? 172 | - cargo-clippy, cargo-fmt, cargo-outdated, cargo-audit 173 | - impl Into> argument pattern 174 | - cargo-src 175 | - code comment guidelines - TiKV has some 176 | - windows stack size https://github.com/rust-lang/rust/blob/master/src/tools/rustdoc/main.rs#L6 177 | - trait aliasing pattern https://docs.rs/pest/2.1.0/pest/iterators/struct.Pairs.html 178 | - failure, vs quick_error!, vs error_type! vs error_chain! 179 | - https://rufflewind.com/2017-02-15/rust-move-copy-borrow 180 | - https://blog.adamant-lang.org/2019/rust-lifetime-visualization-ideas/ 181 | - intl news 182 | - rust.cc - chinese 183 | - https://github.com/RustStudy/rust_daily_news 184 | - run by @Chaos, author of one of the Chinese Rust books 185 | * cloned() tricks 186 | - difference between executor and reactor 187 | - parallel 188 | - antidote - standard rust types w/o poisoning 189 | - parking lot 190 | - lto vs thinlto 191 | - oxide paper - https://arxiv.org/pdf/1903.00982.pdf 192 | - Mezzo and Alms 193 | - two-phase borrows 194 | - deny_bare_trait_objects 195 | - rust-2018-idioms tidy group 196 | - panicking drops 197 | - by-val close + dtor bomb w/ thread::panicking 198 | - https://github.com/servo/servo/blob/master/components/layout/context.rs#L93 199 | - https://gist.github.com/brson/4ab0526baab38972bccdfb60ef7a9bd9 200 | - what's inside target/? 201 | - build script output: 202 | - build/$pkg/output, stderr, out 203 | * turn default features off for deps if possible 204 | - otherwise they can't be turned off by other crates 205 | - default features considered harmful 206 | - cargo search 207 | - AsRef vs Borrow 208 | * iterator cloned() vs borrowed() 209 | * Path::display() 210 | - tip: be curious about the crates scrolling by when you compile 211 | - where to find the answers to common questions? 212 | - https://rust-lang-nursery.github.io/api-guidelines/documentation.html#documentation 213 | - cargo env vars 214 | - qualify function calls, fs::read_dir_all 215 | - fs_extra 216 | - compile_error! 217 | - http://pling.jondgoodwin.com/post/lifetimes/ 218 | - https://docs.rs/snafu/0.2.3/snafu/guide/index.html 219 | - https://crates.io/crates/err-derive 220 | - https://github.com/rust-lang-nursery/rust-cookbook/issues/502 re errors 221 | - future combinators need to return the same error type as the previous future 222 | - need to call map_err(Error::from) _before_ changing the error type 223 | - how can i list all defined cfgs? 224 | - panic_hook runs even with panic=abort 225 | - try test --all for new projects 226 | - moves are not free 227 | - str.parse() is magic 228 | - https://github.com/dtolnay/case-studies (macros) 229 | - rustc --print cfg / target-cpus / target-features 230 | - rustc -C target-cpu / target-feature 231 | - *.rlo 232 | * don't jump to lifetimes 233 | - even graydon doesn't 234 | - https://learning-rust.github.io/ 235 | - https://www.youtube.com/watch?v=N6b44kMS6OM 236 | - first rust presentation http://venge.net/graydon/talks/intro-talk-2.pdf 237 | * drop impacts API - re serde Value recursion 238 | - impl Trait "leaks" Send/Sync https://twitter.com/Gankro/status/1141413230905966593?s=09 239 | - concurrent map tests https://gitlab.nebulanet.cc/xacrimon/rs-hm-bench 240 | - concurrent types https://gitlab.nebulanet.cc/xacrimon/ccl 241 | - https://www.zdnet.com/google-amp/article/microsoft-to-explore-using-rust/ 242 | - 70% security bugs are memory bugs per microsoft 243 | - rust prevents data races, not general races 244 | - https://blog.regehr.org/archives/490 245 | - PNA Rust comments 246 | - https://news.ycombinator.com/item?id=20511271 247 | - https://twitter.com/lucio_d_franco/status/1153827158210560001 248 | - https://rust-lang-nursery.github.io/rust-toolstate/ 249 | - https://rust-lang.github.io/rustup-components-history/ 250 | - cheat sheet: https://cheats.rs/ 251 | - dev and test are intertwined https://github.com/tikv/tikv/issues/5049 252 | - unexpected drop order 253 | -------------------------------------------------------------------------------- /rust-history.md: -------------------------------------------------------------------------------- 1 | - kibwen's history of rust structs 2 | - https://www.reddit.com/r/rust/comments/264d2t/comment/chnkty5/ 3 | - An ancient "design faq" issue 4 | - https://github.com/mozilla/rust/issues/4047 5 | -------------------------------------------------------------------------------- /rust-influence.md: -------------------------------------------------------------------------------- 1 | # Influence of Rust 2 | 3 | Areas where Rust has influenced other languages and software projects. 4 | 5 | - fpm fortran package manager https://arxiv.org/pdf/2203.15110.pdf 6 | - move language 7 | - https://arxiv.org/abs/1710.07047 8 | - safe pointers in spark 9 | - gleam, rai, dada et al 10 | - zink zksync lang 11 | - verona lang 12 | - twir 13 | - language/community surveys 14 | - coc 15 | - rfc - ember, swift 16 | - ownership, borrowing, lifetime terminology 17 | - ownership in general - midori, fuschia, swift, c++ 18 | - systems memory safety 19 | - popularizing adts 20 | - Result type - elm 21 | - error messages - elm 22 | - high-five - rails uses it 23 | - bors - ember, others? 24 | - https://smarketshq.com/marge-bot-for-gitlab-keeps-master-always-green-6070e9d248df 25 | - bors-ng 26 | - it's not rocket science generally 27 | - use of github 28 | - cargo influence on yarn, people love cargo 29 | - shipping with the language 30 | - /r/golang nonofficial 31 | - brad fitzgerald on go team wrote blog about deleting /r/golang 32 | - contacted our mod team 33 | - golang mods expressed amazement (get links from steve) 34 | - https://groups.google.com/forum/m/#!msg/golang-nuts/XoOhzUClDPs/jgSWxng7CAAJ 35 | - https://www.reddit.com/r/golang/comments/5eubdp/the_future_of_rgolang/?st=iwpgzxzr&sh=233caf39 36 | - https://www.reddit.com/r/golang/comments/5h87u6/proposal_dgryski_for_top_mod/?st=iwpgzezp&sh=726023ce 37 | - https://www.reddit.com/r/golang/comments/5hx5ba/hello_gophers/?st=iwpgz6np&sh=0ea420d7 38 | - https://www.reddit.com/r/golang/comments/5hx5ba/hello_gophers/db4vplp/?st=iwphpbjl&sh=7ae49d0d 39 | - focus on pr, social media, hn, twitter, reddit, blog 40 | - website - redox 41 | - Yarn, Ember, React influenced by RFC process https://reactjs.org/blog/2017/12/07/introducing-the-react-rfc-process.html 42 | - c++ epochs? https://vittorioromeo.info/index/blog/fixing_cpp_with_epochs.html 43 | - rustup, "-up" installers 44 | - tiup 45 | - https://discourse.julialang.org/t/plans-for-updating-julia/75880/15 46 | - https://github.com/JuliaLang/juliaup - script adapted from rustup 47 | - solana script is adapted from rustup 48 | - dfinity, nearup, tiup, juliaup, fuelup 49 | -------------------------------------------------------------------------------- /rust-inspired-research.md: -------------------------------------------------------------------------------- 1 | # Rust-inspired research and papers 2 | 3 | - https://www.pm.inf.ethz.ch/research/prusti.html 4 | - Prusti - Separation logic-based proofs, from ETH Zurich 5 | 6 | - https://arxiv.org/abs/2011.09012 7 | - RustViz: Interactively visualizeng ownership 8 | 9 | - https://arxiv.org/abs/2011.06171 10 | - Usability of Ownership 11 | 12 | - https://arxiv.org/abs/2007.00752 13 | - Is Rust Used Safely by Software developers 14 | 15 | - https://arxiv.org/abs/2003.03296 16 | - Memory-safety challenge considered solved 17 | 18 | - https://arxiv.org/abs/1904.12210 19 | - A practical analysis of Rust's concurrency story 20 | 21 | - https://arxiv.org/abs/1904.06750 22 | - A grounded approach to programming language education 23 | 24 | - https://cacm.acm.org/magazines/2021/4/251364-safe-systems-programming-in-rust/fulltext 25 | 26 | - https://cseweb.ucsd.edu/~yiying/RustStudy-PLDI20.pdf 27 | 28 | - https://plv.mpi-sws.org/rustbelt/stacked-borrows/ 29 | 30 | - oxide paper - https://arxiv.org/pdf/1903.00982.pdf 31 | - Mezzo and Alms 32 | - two-phase borrows 33 | 34 | - https://arxiv.org/abs/1901.01001 35 | - Identifying barries to adoption for Rust through online discourse 36 | 37 | - https://arxiv.org/abs/1805.05576 38 | - Borrowing safe pointers from rust in spark 39 | 40 | - https://forge.rust-lang.org/bibliography.html 41 | 42 | - http://getreu.net/public/downloads/doc/forensic-tool-development-with-rust/Forensic-Tool%20Development%20with%20Rust.html 43 | 44 | - https://arxiv.org/abs/1702.02951 - astrophysics 45 | 46 | - https://users.rust-lang.org/t/thesis-simple-verification-of-rust-programs-via-functional-purification/9704 47 | 48 | - https://www.reddit.com/r/rust/comments/5xgtfg/algebraic_subtyping_pdf_thesis_by_stephen_dolan/ 49 | 50 | - Structure and Influence of Package dependency networks 51 | - http://kodu.ut.ee/~riivokik/pubs/msr2017dependency.pdf 52 | 53 | - https://arxiv.org/abs/1804.10806 54 | - KRust, formal semantics 55 | 56 | - https://arxiv.org/abs/1804.07608 57 | - executable ownership semantics 58 | 59 | - "Retrofitting Linear Types" - Haskell paper references Rust 60 | 61 | - http://pldi17.sigplan.org/event/pldi-2017-papers-simple-fast-and-safe-manual-memory-management 62 | 63 | - https://research.vmware.com/publications/system-programming-in-rust-beyond-safety 64 | - https://users.rust-lang.org/t/paper-system-programming-in-rust-beyond-safety/10631 65 | 66 | - jesperson - session types for rust 67 | 68 | - http://spw17.langsec.org/papers/chifflier-parsing-in-2017.pdf 69 | 70 | - https://people.mpi-sws.org/~dreyer/papers/rustbelt/paper.pdf 71 | 72 | - Crust: A Bounded Verifier for Rust (N) 73 | - https://doi.org/10.1109/ASE.2015.77 74 | 75 | - Fearless Concurrency? Understanding Concurrent Programming Safety inReal-World Rust Software 76 | - https://arxiv.org/pdf/1902.01906.pdf 77 | 78 | - Energy Efficiency Across Programming Languages 79 | 80 | - https://greenlab.di.uminho.pt/wp-content/uploads/2017/09/paperSLE.pdf 81 | 82 | - see also https://rustc-dev-guide.rust-lang.org/appendix/bibliography.html 83 | 84 | -------------------------------------------------------------------------------- /rust-libraries.md: -------------------------------------------------------------------------------- 1 | **This list is unmaintained. For a similar project see [rustmax](https://github.com/brson/rustmax).** 2 | 3 | # Rust crates I use 4 | 5 | ## Crates I use often 6 | 7 | - [anyhow](https://crates.io/crates/anyhow) 8 | - [byteorder](https://crates.io/crates/byteorder) 9 | - [bytes](https://crates.io/crates/bytes) 10 | - [chrono](https://crates.io/crates/chrono) 11 | - [clap](https://crates.io/crates/clap) 12 | - [derive_more](https://crates.io/crates/derive_more) 13 | - [env_logger](https://crates.io/crates/env_logger) 14 | - [extension_trait](https://crates.io/crates/extension-trait) 15 | - [futures](https://crates.io/crates/futures) 16 | - [http](https://crates.io/crates/http) 17 | - [hyper](https://crates.io/crates/hyper) 18 | - [json5](https://crates.io/crates/json5) 19 | - [log](https://crates.io/crates/log) 20 | - [rand](https://crates.io/crates/rand) 21 | - [rayon](https://crates.io/crates/rayon) 22 | - [parol](https://crates.io/crates/parol) - LL(k) parser generator 23 | - [reqwest](https://crates.io/crates/reqwest) 24 | - [serde](https://crates.io/crates/serde) 25 | - [serde_json](https://crates.io/crates/serde_json) 26 | - [tempfile](https://crates.io/crates/tempfile) 27 | - [tera](https://crates.io/crates/tera) - text templates 28 | - [tokio](https://crates.io/crates/tokio) 29 | - [toml](https://crates.io/crates/toml) 30 | 31 | 32 | ## Crates I use sometimes 33 | 34 | - [atomic_blobject](https://crates.io/crates/atomic_blobject) 35 | - [backtrace](https://crates.io/crates/backtrace) 36 | - [base64](https://crates.io/crates/base64) 37 | - [blake2](https://crates.io/crates/blake2) 38 | - [blake3](https://crates.io/crates/blake3) 39 | - [big_s](https://crates.io/crates/big_s) 40 | - [borsh](https://crates.io/crates/borsh) 41 | - [comrak](https://crates.io/crates/comrak) 42 | - [cranelift](https://crates.io/crates/cranelift) 43 | - [crate-git-revision](https://crates.io/crates/crate-git-revision) 44 | - [extension-trait](https://crates.io/crates/extension-trait) 45 | - [fancy_flocks](https://crates.io/crates/fancy_flocks) 46 | - [fxhash](https://crates.io/crates/fxhash) 47 | - [fs2](https://crates.io/crates/fs2) 48 | - [gnuplot](https://crates.io/crates/gnuplot) 49 | - [handlebars](https://crates.io/crates/handlebars) 50 | - [hex](https://crates.io/crates/hex) 51 | - [itertools](https://crates.io/crates/itertools) 52 | - [lalrpop](https://crates.io/crates/lalrpop) - parser generator 53 | - [jemalloc](https://crates.io/crates/jemallocator) 54 | - [parol](https://crates.io/crates/parol) - parser generator 55 | - [pest](https://crates.io/crates/pest) - parser generator 56 | - [rand_chacha](https://crates.io/crates/rand_chacha) - crypto rng 57 | - [rand_pcg](https://crates.io/crates/rand_pcg) - non-crypto rng 58 | - [regex](https://crates.io/crates/regex) 59 | - [static_assertions](https://crates.io/crates/static_assertions) 60 | - [thiserror](https://crates.io/crates/thiserror) 61 | - [time](https://crates.io/time) 62 | - [unicode-segmentation](https://crates.io/crates/unicode-segmentation) 63 | - [num_enum](https://crates.io/crates/num_enum) 64 | - [xshell](https://crates.io/crates/xshell) 65 | 66 | 67 | ## Crates I want to use 68 | 69 | - [chalk](https://github.com/rust-lang/chalk) 70 | - [faerie](https://crates.io/crates/faerie) 71 | - [goblin](https://crates.io/crates/goblin) 72 | - [prost](https://crates.io/crates/prost) 73 | - [rulex](https://crates.io/crates/rulex) 74 | - [salsa](https://crates.io/crates/salsa) 75 | - [self-replace](https://crates.io/crates/self-replace) 76 | - [specs](https://crates.io/crates/specs) 77 | - [tonic](https://crates.io/crates/tonic) 78 | - [wasm-bindgen](https://crates.io/crates/wasm-bindgen) 79 | 80 | # Crates I no longer use 81 | 82 | - [structopt](https://crates.io/crates/anyhow) 83 | -------------------------------------------------------------------------------- /rust-papercuts.md: -------------------------------------------------------------------------------- 1 | - String literal ctor (`S!(...)`) 2 | - `default` in prelude 3 | -------------------------------------------------------------------------------- /rust-performance.md: -------------------------------------------------------------------------------- 1 | - https://www.reddit.com/r/rust/comments/fwynp1/invisible_performance_wins/ 2 | - https://www.reddit.com/r/programming/comments/ffu7rv/will_c_ever_be_beaten_this_paper_presents_a_study/ 3 | - https://www.researchgate.net/publication/320436353_Energy_efficiency_across_programming_languages_how_do_energy_time_and_memory_relate 4 | - https://sites.google.com/view/energy-efficiency-languages/ 5 | - https://sites.google.com/view/energy-efficiency-languages/updated-functional-results-2020 6 | -------------------------------------------------------------------------------- /rust-project-ideas.md: -------------------------------------------------------------------------------- 1 | - implement awk 2 | - https://lwn.net/SubscriberLink/820829/5bf9bf8bb9d6f2bf/ 3 | - https://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html 4 | - https://www.gnu.org/software/gawk/manual/gawk.html 5 | - https://9p.io/cm/cs/awkbook/index.html 6 | - implement lomuto partitioning in std sort 7 | - https://news.ycombinator.com/item?id=23212620 8 | - implement ganache in rust 9 | - https://github.com/trufflesuite/ganache-cli 10 | - it's slow 11 | - implement libsignal in rust 12 | - https://github.com/Michael-F-Bryan/libsignal-protocol-rs 13 | - implement midi 2.0 14 | - coreutils benchmark 15 | - https://github.com/uutils/coreutils 16 | - https://github.com/redox-os/coreutils 17 | - https://github.com/davidfischer/pycoreutils 18 | - https://github.com/coreutils/coreutils (gnu) 19 | - busybox 20 | - https://github.com/guonaihong/coreutils 21 | - https://github.com/EricLagergren/go-coreutils 22 | - https://github.com/GrayJack/coreutils 23 | - tokei but sorted by crate - which crates contribute the most code 24 | - implement activitypub https://activitypub.rocks/ 25 | - implement a private token on top of ckb 26 | - use the zcash rust libraries 27 | - https://github.com/trailofbits/publications/blob/master/reviews/ZcashWP.pdf 28 | - implement "age" encryption tool 29 | - https://github.com/FiloSottile/age 30 | - https://news.ycombinator.com/item?id=21895671 31 | - add hyperscan to rust-regex 32 | - https://news.ycombinator.com/item?id=21876284 33 | - implement junction concurrent hashmaps in rust 34 | - https://preshing.com/20160201/new-concurrent-hash-maps-for-cpp/ 35 | - create a systems language benchmark using real-world software 36 | - e.g. grep, ls, http, key-value 37 | - implement qrencode in rust 38 | - implement wireguard in rust 39 | - implement OpenBLAS in rust 40 | - implement a pic compiler 41 | - https://en.wikipedia.org/wiki/Pic_language 42 | - implement nongnu libunwind in rust 43 | - just the stack tracing to begin with, for use in backtrace-rs 44 | - implement faster-utf8-vaidator for core run_utf8_validation 45 | - https://news.ycombinator.com/item?id=21547369 46 | - https://github.com/zwegner/faster-utf8-validator 47 | - https://github.com/lemire/fastvalidate-utf-8 48 | - https://github.com/killercup/simd-utf8-check 49 | - unpdf - convert pdf research papers to html 50 | - implement redis with crossbeam-skiplist 51 | - re-implement sphinx 52 | - re-implement 'data landscape' projects 53 | - https://mattturck.com/data2019/ 54 | - substrate on ckb 55 | - https://www.parity.io/utxo-on-substrate/ 56 | - implement vst3.0 in rust 57 | - implement vst2.0 in rust 58 | - site to collect rust new contributor issues 59 | - rust assembler with high/low level assembly language 60 | - ArcMutex, etc 61 | - jekyll clone in rust 62 | - start by just replacing jekyll code 63 | - use new linux aio for files https://lwn.net/Articles/776703/ 64 | - occassion-emoji.com - find emoji's by occassion 65 | - rustfmt/clippy integration into cargo test 66 | - port https://github.com/rv8-io/rv8 to rust 67 | - port dynasm to rust 68 | - crate loc counter that accounts for dependencies 69 | - maybe just modify tokei 70 | - auditable cryptobin in rust 71 | - better sql https://edgedb.com/blog/we-can-do-better-than-sql/ 72 | - lucene in rust 73 | - rust module extraction tool 74 | - use item dependency graph 75 | - show modules that are crate-independent 76 | - show crate-dependencies of modules 77 | - recommend refactoring plan 78 | - show wich items are being imported the most, 79 | outside of their module 80 | - these are the items to abstract first 81 | - show which items are being imported the most 82 | into module M. 83 | - enforce that mods don't have crate dependencies 84 | - with annotation 85 | - asm black_box 86 | - pthreads in rust, binary compatible 87 | - alloc-free unwinder 88 | - mustache template macros 89 | - write good documentation guidelines 90 | - runtime machine code function inliner 91 | - tool to turn off cargo default features 92 | - one at a time, in dag order 93 | - count the numbers of - and _ in crate names 94 | - revive https://github.com/brson/pwrabs 95 | - revive https://github.com/brson/cargo-index-tool 96 | - double-fail finder 97 | - convert terminal text w/ ANSI escapes to HTML 98 | - convert markdown to text w/ ANSI escapes 99 | - lib to create ansi escape sequences 100 | - lib to strip ANSI escapes from a stream 101 | - implement SSTable 102 | - simple cli logger 103 | - use log macros like println - no extra "junk" like timestamps 104 | - env vars can turn on traditional env_logger 105 | - kv server 106 | - multiple frontends: HTTP GET/PUT, memcached, in-process 107 | - tikv, 108 | - multiple backends: fs, tikv, rocks, berkelydb, sled 109 | - matrix server 110 | - rust mdn documentation project 111 | - implement heap layers and mesh 112 | - https://github.com/plasma-umass/Mesh 113 | - rust project metadata infobase 114 | - bin/lib info from gimli / symbolic (?) 115 | - debuginfo from gimli and (something) 116 | - lib metadata via rustc 117 | - rustc metadata via rustc 118 | - q:s 119 | - how much time / space can I save be deleting dupe deps? 120 | - Rust WAF https://github.com/0xInfection/Awesome-WAF 121 | - least-common-denominator sql 122 | - create a test suite of well-specced sql features that passes in every common database 123 | - create database adapters that expose only the common functionality 124 | - create an implementation of common-sql 125 | - error_type! / quick_error! for Fail 126 | - Security tools in Rust 127 | - https://blog.gtank.cc/modern-alternatives-to-pgp/ 128 | - https://news.ycombinator.com/item?id=19173326 129 | - OpenGPG reimplementation 130 | - LSM tree or persistent ART 131 | - contribute to uutils 132 | - create BTree / HashMap initializers from tupels. Does this not exist?! 133 | - rust contribution guide 134 | - list all rust validation projects 135 | - top-down performance in rust 136 | - https://dendibakh.github.io/blog/2019/02/09/Top-Down-performance-analysis-methodology 137 | - rust-wiki.com 138 | - rustdoc-lint 139 | - crate that allows defining 'cfg' macros 140 | - for repeated cfgs, instead of #[cfg(all(jemalloc, not(fuzzing)))] write #[cfg(jemalloc_on)] 141 | - rustup that adds key system packages like cmake 142 | - zero-allocate symbolicated backtraces 143 | - rust microservice toolkit 144 | - everything is also a library 145 | - built on pingcap where possible 146 | - comprehensive authentication microservice 147 | - comprehensive etcd-like microservice 148 | - for now just create an etcd api for tikv 149 | - comprehensive payments microservice 150 | - message bus 151 | - either kafa or a kafka layer on top of tikv 152 | - mysql (or postgres) microservice - TiDB 153 | - notifications microservice - web and mobile 154 | - user tracking 155 | - metricsc - prometheus + grafana 156 | - DNS? Does anybody need this? 157 | - service mesh - linkerd? 158 | - raft microservice / library 159 | - implement rosie pattern matching in rust 160 | - https://spin.atomicobject.com/2018/11/14/rosie-pattern-language/#.W-xEPiyim0g.hackernews 161 | - cloneables 162 | - haproxy / nginx / varnish 163 | - implement grep with ripgrep (and egrep etc) 164 | - and ag, and ack 165 | - turn chalk/datafrog/differential-dataflow into a real language 166 | - hook up datafrog to differential/timely-dataflow 167 | - give datafrog a datlog syntax 168 | - simd mempcy+utf8 verify 169 | - wtf does this mean 170 | - remove duplicate deps in rust's Cargo.lock 171 | - reimplement emacs in rust 172 | - simd-optimize mem.rs 173 | - run bloaty mcbloatface on std / rustc 174 | - write an 'aspect-oriented' instrumentation systam for rust/std 175 | - use polkadot to build a payed distriuted hash table 176 | - s-chord plus token incentives 177 | - http://zoo.cs.yale.edu/classes/cs722/2011/Jason_chord.pdf 178 | - http://www.cs.unm.edu/~treport/tr/05-04/chord.pdf 179 | - maybe like sia? 180 | - tonka: https://pdos.csail.mit.edu/~petar/5ttt.org/ 181 | - nginx-like web server 182 | - self-contained 183 | - rhai bindings, others 184 | - node emulation? 185 | - python asyncio integration 186 | - rust history browser 187 | - rust v c++ v c, etc benchmark 188 | - nts/ntp client/server https://tools.ietf.org/html/draft-ietf-ntp-using-nts-for-ntp-19 189 | - productize servo 190 | - https://refresh.study/ 191 | - https://news.ycombinator.com/item?id=17638477 192 | - review r/rust 193 | - review twir 194 | - review rfcs 195 | - review release predictions 196 | - review release notes 197 | - read /r/rust 198 | - read urlo 199 | - read irlo 200 | - praise commenters 201 | - review prs 202 | - review rustup prs 203 | - review cargo prs 204 | - review guideniles book 205 | - do upcoming feature report (for twir?) 206 | - write blog posts 207 | - do markdown shootout 208 | - hack on cretonne 209 | - reactive controls systems 210 | - lalrpop rust grammer 211 | - rustc cretonne backend 212 | - procuctize serve browser 213 | - productize servo app platform 214 | - do outstandig prs 215 | - andle control over projects 216 | - check in on projects we've handed control over 217 | - fix bug in doc-testing used for cookbook 218 | - triage cookbook 219 | - make a vector game with pathfinder 220 | - accellerate is_ascii 221 | - update twoway for intrinsics 222 | - optimize memchr to match glibc with intrinsics 223 | - compare core memchr to sushi's memchr 224 | - contribute to https://github.com/joncatanio/cannoli 225 | - write for rust edition guide 226 | - hack on cargobomb windows support 227 | - hack on cargobomb rustfix 228 | - rust anthology 229 | - stdx 230 | - tystack 231 | - rust api guidelines 232 | - rust cookbook 233 | - chamber 234 | - rust playbook 235 | - profiling iterator 236 | - struct-of-vecs 237 | - rust-skeptic 238 | - local rust installer 239 | - rustupult 240 | - bash/powershell one-liner to build and run any rust program 241 | - antigen rust 242 | - nested bump-region allocator 243 | - single-threaded allocator 244 | - ngstd ("nug-stud"), no-generics std 245 | - for no-generics, abi-compat-rust, 246 | - crate some common data structures 247 | - rustup sanity check 248 | - check for functioning environment 249 | - configure rust to work in any environment 250 | - fedora -> sudo yum install gcc, etc. 251 | - macos -> download and install xcode, etc. 252 | - make a rustup plugin 253 | - O.G. Rust Series 254 | - og_fmt the fmt` macro 255 | - og_lovecraft - lovecraft faults 256 | - og_strbuf - String -> StrBuf 257 | - heap dump/restore for rust ala glibc dumper 258 | - https://news.ycombinator.com/item?id=13073566 259 | - rust: the language: the game (rust-the-game.md) 260 | - cli-kit 261 | - everything i need when making a cli program 262 | - reexports 263 | - log, error-chain, reqwest 264 | - script functions 265 | - run, download, copy_dir, remove_dir_all 266 | - systems conveniences 267 | - dojob, hardlink, flock, symlink_dir 268 | - symlink-aware remove_dir 269 | - retry with exponential decay 270 | - I/O conveniences 271 | - write_string, read_string, write_lines, read_lines, 272 | - run while intercepting output (tee?) 273 | - deployment 274 | - pack and repack multiple-platform bins into one 275 | - self-update 276 | - aws/gce/azure/kubernetes jobs 277 | - atomic-io, io-tree, io-sift 278 | - framework for doing cargobomb-style distributed io 279 | - framework for creating reliable programs that recover from crashes 280 | - look into redux model for state changes 281 | * http/2 framework 282 | * chamber, gaol, ipc-channel sandbox 283 | * semver tool 284 | - talk to https://twitter.com/badboy_/status/741626328173162497 285 | * anthology 286 | * rust http server throwdown 287 | * battleplan https://gist.github.com/brson/9b20cb38d90a707a37c7d3ec0b5ba8d5 288 | - rust-mob 289 | - rust platform++ 290 | - instant distributed systems 291 | - adjectives: distributed, secure, solid, heterogeneous, diverse, 292 | welcoming, easy, expansive, inevitable, indestructable, indomitable 293 | - a tool and cargo metapackage for defining, building, validating, 294 | deploying, and maintaining distributed systems 295 | - suitable for games, apps, websites, ioc, botnets 296 | - showcase the best of rust 297 | - project templates for platforms and roles 298 | - (builds on rust platform platform support) 299 | - android, iOS, flatpak, windows 300 | - web server, message server, clients, android game wasm app 301 | - focus on higher-level laguage for UIs, rust for infrastructure 302 | - (builds on rust platform bridges) 303 | - java for android, ruby for websites, swift for ios, 304 | python for whatever, C# for windows / unity, 305 | javascript for web 306 | - make rust appeal to all language communities 307 | - use rust for for the common infrastructure 308 | - build and test on many platforms, mostly via docker 309 | - (builds on platform infrastructure support) 310 | - automatic deployment to cloud, app stores, devices 311 | - integrate with kubernetes or something like it 312 | - automatic security and authentication 313 | - include some scheme for securing communications and use it across all platforms 314 | - integration with payment platforms, add networks, cryptocurrency? 315 | - multiple communication strategies, mqtt, https, p2p 316 | - device mangement framework with web interface 317 | - aws, android, ios, desktop packages, stores 318 | - make it easy to bring up exotic hardware platforms quickly 319 | - capture the next-gen thing as a value-add 320 | - mob-platform collects all the components it builds on 321 | - build on existing rust libs 322 | - investigate botnet c&c 323 | - other names 324 | - throng, throngs, throngings, cabal, clan, swarm, clique, 325 | coterie, packwolf, wolfpack, conclave, powwow, council, 326 | gathering, congregation, throngregation, band, rust-society, 327 | invasion, raid, assault, breach, incursion, incur, incrust, 328 | onslaught, rust-onslaught, usurper, usurpation, marauder, irruption, 329 | irrupst, irrupt, irupt, erupt, burst, flare, flareup, flargun, spew 330 | - futures-based rt-guarantees 331 | - create a templating system for parsing snips of markdown into 332 | an html template, for more advanced layout 333 | - create a system for piping colored console output into a filter that outputs 334 | html with proper color attributes 335 | - benchmarking service ala coveralls.io 336 | - rewrite xen in rust 337 | - implement etcd with raft-rs 338 | - create markdown-editing web-app for mobile 339 | - create a wasm dynamic linker 340 | - write a reddit client with new api 341 | - create a global shared rust crate cache 342 | - implement fuchsia's microkernel in rust 343 | - package servo 344 | - add afl to cargo-fuzz 345 | - add hongfuzz to cargo-fuzz 346 | - cretonne rustc backend 347 | - cretone custom compiler 348 | - get more proof for rust being fastest language in the world 349 | - cargo-crusader 350 | - rust-api-guidelines 351 | - re-annotitade std 352 | -------------------------------------------------------------------------------- /rust-quotes-and-press-neg.md: -------------------------------------------------------------------------------- 1 | # 2021-03-10 2 | 3 | Why asynchronous Rust doesn't work: 4 | 5 | https://theta.eu.org/2021/03/08/async-rust-2.html 6 | 7 | https://news.ycombinator.com/item?id=26406989 8 | 9 | # 2020-05-10 10 | 11 | /r/rust thread: 12 | 13 | https://www.reddit.com/r/rust/comments/ggyo51/criticisms_of_rust 14 | 15 | # 2017-05-23 16 | 17 | Negative quote about Rust's liberal reputation. 18 | 19 | "Socially, I live in a fairly conservative area (and, surprisingly, 20 | programmers are more conservative than the average person here), and 21 | the Rust community's reputation is a barrier to even talking about 22 | Rust at times. The actual state of the community is much better than 23 | it was three years ago, but the initial experiences a lot of people 24 | had have remained, particularly as a lot of enterprise bros simply do 25 | not participate in extracurricular activities like HN and reddit and 26 | only get hearsay exposure." 27 | 28 | https://www.reddit.com/r/programming/comments/6cta9d/rust_and_csv_parsing/dhxqh24/ 29 | 30 | # 2015-11-10 31 | 32 | Andrei Alexandrescu's "leg day" quote. 33 | 34 | "Reading any amount of Rust code evokes the joke "friends don't let 35 | friends skip leg day" and the comic imagery 36 | (https://www.google.com/search?q=...) of men with hulky torsos resting 37 | on skinny legs. Rust puts safe, precise memory management front and 38 | center of everything. Unfortunately, that's seldom the problem domain, 39 | which means a large fraction of the thinking and coding are dedicated 40 | to essentially a clerical job (which GC languages actually automate 41 | out of sight)." 42 | 43 | https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Andrei-Alexandrescu -------------------------------------------------------------------------------- /rust-quotes-and-press.md: -------------------------------------------------------------------------------- 1 | Collection of (mostly early) responses to Rust. 2 | 3 | # 2021-07-26 4 | 5 | https://edwardsnowden.substack.com/p/ns-oh-god-how-is-this-legal 6 | 7 | # 2021-06-12 8 | 9 | A few thoughts on Fuchsia security 10 | 11 | - https://blog.cr0.org/2021/06/a-few-thoughts-on-fuchsia-security.html 12 | - https://news.ycombinator.com/item?id=27487465 13 | 14 | "For system-level folks, Rust is one of the most exciting security developments of the past few decades. It elegantly solves problems which smart people were saying could not be solved. Fuchsia has a lot of code, and we made sure that much of it (millions of LoC) was in Rust. 15 | 16 | Our kernel, Zircon, is not in Rust. Not yet anyway. But it is in a nice, lean subset of C++ which I consider a vast improvement over C." 17 | 18 | 19 | # 2021-06-01 20 | 21 | Quote's from Guido 22 | 23 | - https://www.tectalk.co/python-creator-guido-van-rossum-reviews-popular-programming-languages/ 24 | 25 | # 2019-07-23 26 | 27 | PNA Rust on HN 28 | 29 | - https://news.ycombinator.com/item?id=20511271 30 | - https://twitter.com/lucio_d_franco/status/1153827158210560001 31 | 32 | # 2019-07-20 33 | 34 | Rust mentioned in congress re libra 35 | 36 | https://www.c-span.org/video/?c4808083/rust-language-chosen 37 | https://www.reddit.com/r/programming/comments/cf8j82/us_house_committee_on_financial_services_hearing/ 38 | 39 | # 2019-07-19 40 | 41 | - https://www.zdnet.com/google-amp/article/microsoft-to-explore-using-rust/ 42 | - 70% security bugs are memory bugs per microsoft 43 | 44 | # 2017-07-16 45 | 46 | https://techcrunch.com/2017/07/16/death-to-c/ 47 | 48 | TechCrunch says drop C/C++, use Rust. 49 | 50 | # 2017-07-03 51 | 52 | Rust used in the Win32/TeleBot.AB trojan. 53 | 54 | https://www.welivesecurity.com/2017/06/30/telebots-back-supply-chain-attacks-against-ukraine/ 55 | 56 | # 2017-06-24 57 | 58 | Chelsea Manning mentions Rust briefly: 59 | 60 | https://twitter.com/xychelsea/status/878715383552856064?cn=bWVudGlvbg%3D%3D&refsrc=email 61 | 62 | # 2017-06-20 63 | 64 | "Hi, I think rust is just an amazing achievement because it is the 65 | first time we all, just about the first time we've seen one of these 66 | kind of linear or affine type systems actually make its way into 67 | practical use. So its just incredible, well done! I'm, you know, I 68 | mean I'm wild with envy. I want to steal all the best ideas I can and 69 | put them in Haskell." 70 | 71 | Simon Peyton Jones 72 | 73 | https://youtu.be/wXoY91w4Agk?t=2022 74 | 75 | # 2017-06-01 76 | 77 | "The dev-environment-setup experience with Rust is amazing. The Rust 78 | community has striven to make it super easy to get started with Rust 79 | and it shows. Literally one shell command will set everything you need 80 | up." 81 | 82 | "Essentially Rust has a lot of the good things about Scala’s type 83 | system. One thing currently missing from Rust is first class support 84 | for higher-kinded types (HKT), which, to be honest, I don’t miss too 85 | much" 86 | 87 | https://beachape.com/blog/2017/05/24/rust-from-scala/ 88 | 89 | # 2017-05-09 90 | 91 | https://michaelfairley.com/blog/i-made-a-game-in-rust/ 92 | 93 | > "TL;DR: I’m glad I picked Rust for A Snake’s Tale, and I will be 94 | continuing to make my games in Rust for the foreseeable future1; 95 | however, I can’t strongly recommend Rust for gamedev in the near-term, 96 | especially if you’re hoping for a batteries included experience." 97 | 98 | > "Beyond the “big ideas” contained in Rust (e.g. the ownership model), 99 | the “small ideas” that most other systems-y language don’t contain 100 | (Option, Result, Iterator, discriminated unions, pattern matching, 101 | etc. etc. etc.) make minute-to-minute programming much nicer." 102 | 103 | > "Holy cow are the compiler error messages generally fantastic. rustc 104 | seems like a friend who’s trying to help you write better code, 105 | rather than a gatekeeper working to slow you down." 106 | 107 | > "Rather than being locked into one paradigm, I found myself being 108 | able to cleanly use different programming styles as warranted in 109 | different situations." 110 | 111 | > Stable upgrades have been a breeze, and the release train has been 112 | very nice. 8 new versions of Rust were released during the 113 | development of A Snake’s Tale, and each upgrade took no more than a 114 | few minutes. The release train has also consistently delivered 115 | much-welcomed improvements. 116 | 117 | > Rust code being platform independent by default is 😍😍😍. There are no 118 | source level differences between my Mac, Windows, and Linux builds3, 119 | and the differences between mobile and desktop are relatively small 120 | and focused mostly around the UI delta between touchscreen and 121 | mouse+keyboard and OpenGL vs OpenGL ES. 122 | 123 | # 2017-05-07 124 | 125 | Rust code in Prey video game 126 | 127 | https://www.reddit.com/r/rust/comments/69s225/rust_makes_it_into_a_aaa_video_game_as_an_art/ 128 | 129 | # 2017-05-05 130 | 131 | "I really love seeing articles like this come out about Rust. 132 | 133 | It's language design the way it should be: incorporating the cutting 134 | edge ideas from academia while still striving to cater to beginners; 135 | drawing on the strengths of other languages communities to build out 136 | good library and solutions to package management; designing everything 137 | in the open, and constantly seeking feedback from their users. 138 | 139 | It's a great blend of theoretical CS, HCI, computer systems, and 140 | application development, and it's always fun to hear about what 141 | they're up to." 142 | 143 | https://news.ycombinator.com/reply?id=14276182&goto=item%3Fid%3D14275512%2314276182 144 | 145 | # 2017-04-25 146 | 147 | "In brief, Rust was a joy to work with. Its powerful pattern matching 148 | made writing compiler optimization rules very easy, and we found that 149 | code that compiled usually “just worked” because of the stringent 150 | checks Rust’s own compiler performs on code the programmer 151 | writes. Additionally, writing C APIs in Rust was also very easy; Rust 152 | provides good support and documentation for doing this. While there 153 | are a few features the Rust developers are working on which we hope 154 | appear in the stable compiler soon (namely, incremental compilation 155 | and the box keyword), we wholeheartedly reccomend Rust to those 156 | looking for a fun, powerful programming language for their next 157 | project." 158 | 159 | http://dawn.cs.stanford.edu/blog/weld.html 160 | 161 | # 2017-04-06 162 | 163 | Rust mentioned in Batgirl comic 164 | 165 | https://twitter.com/chasinglogic/status/850115493923086336 166 | http://www.readcomics.tv/batgirl-2016/chapter-8/10 167 | 168 | # 2017-03-27 169 | 170 | "MIT-Stanford project uses LLVM to break big data bottlenecks" 171 | 172 | "Written in Rust, Weld can provide orders-of-magnitude speedups to Spark and TensorFlow" 173 | 174 | http://www.infoworld.com/article/3182205/big-data/mit-stanford-project-uses-llvm-to-break-big-data-bottlenecks.html 175 | 176 | # 2017-03-26 177 | 178 | https://omtcyfz.github.io/2017/03/26/Rust-from-a-C++-programmers-perspective.html 179 | 180 | "I believe that Rust is, in fact, the future of low-level tools and systems, the actual future we deserve" 181 | 182 | # 2017-03-25 183 | 184 | "In modern gcc, std::variant doesn't look like a competent replacement 185 | for old-fashioned tagged unions ..." 186 | 187 | https://news.ycombinator.com/item?id=13956351 188 | 189 | std::variant is not as efficient as rust enums 190 | 191 | # 2017-03-23 192 | 193 | "I use Rust (since ~9-10months) and C++ (since ~7 years) at work, both 194 | in the same project (modern generic header-only C++ using almost all 195 | of C++17 already...). My time is spent like this: ~40% Rust, and 60% 196 | C++, implementing new features in both (the C++ part is not "legacy" 197 | code or anything, it is just that new modules are written in Rust, but 198 | the "old" ones are still being developed). 199 | 200 | The jump from C++ to Rust is qualitatively larger and better in 201 | benefits than the jump from C to C++. Still, trying to sell Rust to 202 | C++ programmers is as hard as trying to sell C++ to C programmers. 203 | 204 | ... 205 | 206 | What does Rust bring to the table? It eliminates all that cruft: 207 | 208 | ..." 209 | 210 | massive pitch to C++ programmers 211 | 212 | https://www.reddit.com/r/cpp/comments/611811/have_you_used_rust_do_you_prefer_it_over_modern_c/dfb3xhp/?st=j0mj6j2i&sh=d87c1791 213 | 214 | "Everyone deserves access to C technology without restriction, 215 | especially as rust makes inroads." -- Theo De Raadt 216 | 217 | https://marc.info/?l=openbsd-tech&m=149032069130072&w=2 218 | 219 | # 2017-03-22 220 | 221 | Most loved language second year in a row. 222 | 223 | http://stackoverflow.com/insights/survey/2017 224 | 225 | "Developers using languages listed above the blue line in this chart 226 | such as Go, Rust, and Clojure are being paid more even given how much 227 | experience they have" 228 | 229 | https://amosbbatto.wordpress.com/2017/03/19/the-growing-trend-toward-compiled-languages/ 230 | 231 | Lots of discussion about the popularity of Rust. 232 | 233 | # 2017-03-21 234 | 235 | OkCupid exploring Rust: 236 | 237 | https://tech.okcupid.com/rust-and-rpc-okcupid-hackweek-2017 238 | 239 | # 2017-03-17 240 | 241 | "One of the biggest overall gainers of any of the measured languages, 242 | Rust leaped from 47 on our board to 26 – one spot behind Visual 243 | Basic. This comes two quarters after the language not only stalled, 244 | but actually gave up ground in our last rankings. What a difference a 245 | few months can make. By our metrics, Rust went from the 46th most 246 | popular language on GitHub to the 18th. Some of that is potentially a 247 | result of the new process, of course, but no other language grew 248 | faster." 249 | 250 | http://redmonk.com/sogrady/2017/03/17/language-rankings-1-17/ 251 | 252 | "C++ is where the money is currently at, but I've switched from C++ to 253 | Rust. It took me a few weeks to get around the borrowing system, but 254 | overall I feel that I write much more maintainable code than before. 255 | 256 | Issues I had with C++: 257 | 258 | - ... (littany)" 259 | 260 | https://www.reddit.com/r/programming/comments/5zze8k/crosscompile_and_link_a_static_binary_on_macos/df2lidj/?st=j0eg3161&sh=b3e6c977 261 | 262 | "The Rust #programming language has some traction outside @mozilla, 263 | including use at @Dropbox. #rustlang" -- Stephen Shankland (CNET writer) 264 | 265 | https://twitter.com/stshank/status/842872876042657792 266 | 267 | # 2017-03-16 268 | 269 | "Did a double-take upon seeing Windows used so nonchalantly. All of 270 | the Rust tooling being so (apparently) effortlessly cross-platform is 271 | really cool and I don't think the project sees enough love for it." 272 | 273 | https://www.reddit.com/r/programming/comments/5zrzms/announcing_rust_116/df0qiut/ 274 | 275 | # 2017-03-10 276 | 277 | "Until this point, all of the firmware I had written, personally and 278 | professionally, was done in C and Assembly. Given the safety 279 | guarantees and high performance provided by Rust, it was a very 280 | enticing choice. I was curious to see how involved the process would 281 | be and if I could ditch C for future projects (spoiler: yes)." 282 | 283 | http://www.acrawford.com/2017/03/09/rust-on-the-cortex-m3.html 284 | 285 | # 2017-03-09 286 | 287 | "I recently wrote an MPEG-2 subtitle decoder in Rust, and spent my 288 | weekend attacking it with cargo fuzz. The fuzzer ran over a billion 289 | sample inputs through my code. 290 | 291 | "I discovered: 292 | 293 | - No malloc/free-related errors, thanks to the borrow checker. 294 | - 3 errors where I constructed invalid Range objects. These might 295 | have been exploitable or resulted in infinite loops in C. 296 | - One arithmetic underflow error, which might have been exploitable 297 | if it weren't for Rust's bounds checking. 298 | 299 | So while writing high risk code, Rust ruled out most errors at compile 300 | time, and caught 4 more at run time. Up until now I had underrated 301 | Rust's runtime checks as part of the overall security story, but I now 302 | consider them as indispensable as the compile time checks." 303 | 304 | https://www.reddit.com/r/rust/comments/5y3cxb/how_many_security_exploits_would_rust_prevent/den3vz7/ 305 | 306 | # 2017-03-06 307 | 308 | Martin Odersky wants to remove implicits from Dotty, citing Rust. 309 | 310 | https://github.com/lampepfl/dotty/pull/2060#issuecomment-284758952 311 | 312 | # 2017-02-25 313 | 314 | One Year with Rust: I wrote a full featured application in rust, and so can you 315 | 316 | https://news.ycombinator.com/item?id=13732706 317 | 318 | # 2017-02-23 319 | 320 | http://blog.faraday.io/how-we-made-our-csv-processing-142x-faster/ 321 | 322 | # 2017-02-22 323 | 324 | Toward a more approachable Rust 325 | 326 | https://lwn.net/Articles/714712/ 327 | 328 | Fallout from ESR blog 329 | 330 | # 2017-02-22 331 | 332 | "I'm not sure if this is what you're after, since it's not really in 333 | book form, but I've learned a lot about advanced language 334 | implementation from reading the Rust RFCs [1], especially those 335 | relating to MIR. Between the discussion on each PR and the resulting 336 | implementation in the actual compiler, it makes some very complicated 337 | subjects more relatable than they normally would be. I'm really 338 | grateful that so much of Rust's development happens in such an open 339 | fashion." 340 | 341 | https://news.ycombinator.com/item?id=13710726 342 | 343 | # 2017-02-22 344 | 345 | https://medium.com/@rillian/deploying-rust-in-a-large-codebase-7e50328074e8#.9r5fixac2 346 | 347 | rillian talks about integrating Firefox into Rust 348 | 349 | # 2017-02-19 350 | 351 | "Rust's poor support for pointer-based graphs improved my code" 352 | 353 | https://www.reddit.com/r/rust/comments/5ux4uq/rusts_poor_support_for_pointerbased_graphs/ 354 | 355 | Ownership-obeying graph representations have a lot of advantages. 356 | 357 | # 2017-02-15 358 | 359 | "rust/prepare.mk: Don't remove the $(nop) command below!" 360 | 361 | https://news.ycombinator.com/item?id=13655081 362 | 363 | # 2017-02-13 364 | 365 | What can the programming language Rust do for astrophysics? 366 | 367 | https://arxiv.org/abs/1702.02951 368 | 369 | https://news.ycombinator.com/item?id=13632894 370 | 371 | Apparently the experiment is flawed https://news.ycombinator.com/reply?id=13635226&goto=item%3Fid%3D13632894%2313635226 372 | 373 | https://www.reddit.com/r/rust/comments/5trref/what_can_rust_do_for_astrophysics/ 374 | 375 | A GNOME developers argument on Vala being a dead language 376 | 377 | http://www.phoronix.com/scan.php?page=news_item&px=GNOME-Vala-Bassi 378 | 379 | # 2017-02-08 380 | 381 | boost regex badly needs fuzzing 382 | 383 | https://news.ycombinator.com/item?id=13600284 384 | 385 | This HN thread contrasts Rust with C++ quite starkly. 386 | 387 | A fuzz report for [boost regex] is filled with horrific crashes. 388 | 389 | Two fuzzing rounds on Rust regex yielded quality fixes, but no memory safety violations [rf1] [rf2]. 390 | 391 | Thread is mostly about Rust, and pcwalton picked a big fight! 392 | 393 | [boost regex]: https://svn.boost.org/trac/boost/ticket/12818 394 | [rf1]: https://github.com/rust-lang/regex/issues/84 395 | [rf2]: https://github.com/rust-lang/regex/pull/262 396 | 397 | # 2017-02-03 398 | 399 | Mozilla binds Firefox's fate to the Rust language 400 | 401 | http://www.infoworld.com/article/3165424/web-browsers/mozilla-binds-firefoxs-fate-to-the-rust-language.html 402 | 403 | # 2017-02-02 404 | 405 | "This is amazing. Is Rust the best developer team out there? They move quickly and release features with a cadence I have not seen in 406 | other languages. I would love to hear more about other languages release this way." 407 | 408 | https://news.ycombinator.com/item?id=13556486 409 | 410 | # 2017-01-27 411 | 412 | "Package managers all the way down" - discusses cargo and rustup 413 | 414 | 10:00 <&steveklabnik> Cargo is "at the apex of usability" for language package managers, he said, adding that developing code in Rust is "a painless and beautiful process". 415 | 10:00 <&steveklabnik> :metal: 416 | 10:02 <&steveklabnik> It might be tempting to just dismiss the whole thing, saying that the older way was better, but that way is not going to remain viable for much longer. His 417 | experience with Rust made that clear; developing in that environment is just too nice. 418 | 419 | https://lwn.net/SubscriberLink/712318/0a8c0c18c21dc27d 420 | 421 | "The trouble with FreeBSD" 422 | 423 | https://lwn.net/SubscriberLink/712308/cea4a92801616685 424 | 425 | # 2017-01-25 426 | 427 | InfoWorld technology of the year award 428 | 429 | http://www.infoworld.com/article/3160526/application-development/infoworlds-2017-technology-of-the-year-award-winners.html#slide12 430 | 431 | # 2017-01-12 432 | 433 | ESR has as an exceedingly bad impression of Rust :( 434 | 435 | "Rust severely disappoints me" 436 | http://esr.ibiblio.org/?p=7294 437 | 438 | https://www.reddit.com/r/rust/comments/5nl3fk/rust_severely_disappoints_me/ 439 | 440 | # 2017-01-06 441 | 442 | "I just want to say that this project is amazing. At the risk of 443 | sounding hyperbolic, I think Rust is the most exciting thing that's 444 | happening in computing today. This sort of project that plausibly 445 | replaces projects traditionally written only in C/C++ with something 446 | that has performance parity, but is in a language where contributions 447 | are relatively accessible and safe, is the most exciting thing even 448 | within the bounds of an intriguing ecosystem." 449 | 450 | https://news.ycombinator.com/item?id=13339259 451 | 452 | re alacritty terminal emulator 453 | 454 | # 2017-01-04 455 | 456 | librsvg requires Rust 457 | 458 | https://mail.gnome.org/archives/desktop-devel-list/2017-January/msg00001.html 459 | 460 | # 2017-01-03 461 | 462 | ESR considers Rust for a rewrite from C 463 | 464 | http://blog.ntpsec.org/2017/01/03/getting-past-c.html 465 | 466 | # 2016-12-29 467 | 468 | Various fallout from Steve's "Rust is more that safety" post 469 | 470 | "Rust is it's community" - https://mgattozzi.com/rust-is 471 | 472 | "Rust is mostly safety" http://graydon2.dreamwidth.org/247406.html 473 | 474 | "Rust is software's salvation" https://redox-os.org/news/rust-is-softwares-salvation-17/ 475 | 476 | "Fire Mario, not Fire Flowers" http://words.steveklabnik.com/fire-mario-not-fire-flowers 477 | 478 | "Safety is Rust's fireflower" https://thefeedbackloop.xyz/safety-is-rusts-fireflower/ 479 | 480 | "Fire Flowers and Mario" https://medium.com/@ag_dubs/fire-flowers-and-marios-marketing-rust-996b3fdbe8f3 481 | 482 | "My thoughts on Rust in 2017" https://medium.com/@Hisako1337/rust-in-2017-8f2b57a67d9b#.3eegqri2g 483 | 484 | # 2016-12-28 485 | 486 | https://news.ycombinator.com/item?id=13272474 487 | 488 | "Other than porting architectures and Rustifying the usual C headers from the manufacturer, Rust has been an absolute breath of fresh air 489 | when working on reliable, memory constrained systems. I keep running to the disassembler to make sure that my high level code don't 490 | force the compiler to do something stupid but have yet to find anything that required I scale back my abstractions back to C levels." 491 | 492 | # 2016-12-24 493 | 494 | zcache signing ceremony written in Rust due to security requirements 495 | 496 | https://m.reddit.com/r/rust/comments/5k55c0/zcash_ceremony_code_written_in_rust_due_to/ 497 | 498 | # 2016-12-14 499 | 500 | http://www.welivesecurity.com/2016/12/13/rise-telebots-analyzing-disruptive-killdisk-attacks/ 501 | 502 | "This trojan downloader is written in the Rust programming language." 503 | 504 | # 2016-12-13 505 | 506 | https://www.reddit.com/r/golang/comments/5hx5ba/hello_gophers/db4vplp/?st=iwphpbjl&sh=7ae49d0d 507 | 508 | "I just headed over to /r/rust and I am amazed. Respectful tone from anybody, absolutely no downvoted post (I tried hard to find one 509 | and failed), even no downvoted comments (I also tried hard to find one and failed). If we could take over some of this spirit to this 510 | subreddit, it would benefit everyone." 511 | 512 | # 2016-12-08 513 | 514 | https://lwn.net/SubscriberLink/708196/f0f91b4c8b657b5b/ 515 | 516 | GStreamer security mentions Rust 517 | 518 | # 2016-12-06 519 | 520 | http://leftoversalad.com/c/015_programmingpeople/ 521 | 522 | comic about rust 523 | 524 | # 2016-12-01 525 | 526 | https://eev.ee/blog/2016/12/01/lets-stop-copying-c/ 527 | 528 | https://www.reddit.com/r/programming/comments/5fwce0/lets_stop_copying_c/ 529 | 530 | # 2016-11-30 531 | 532 | http://joeduffyblog.com/2016/11/30/15-years-of-concurrency/ 533 | 534 | https://news.ycombinator.com/item?id=13076677 535 | 536 | "Out of the bunch, Rust has impressed me the most. They have delivered on much of what we set out to deliver with Midori, but actually shipped it (whereas we did not). My hat goes off to that team, seriously, because I know first hand what hard, hard, hard work this level of type system hacking is." 537 | 538 | https://ruudvanasseldonk.com/2016/11/30/zero-cost-abstractions 539 | 540 | "All overhead is gone completely". Impressive example. 541 | 542 | https://news.ycombinator.com/item?id=13074667 543 | 544 | 545 | 546 | # 2016-11-22 547 | 548 | http://accidentallyquadratic.tumblr.com/post/153545455987/rust-hash-iteration-reinsertion 549 | 550 | # 2016-11-01 551 | 552 | http://www.infoworld.com/article/3136934/open-source-tools/project-for-porting-c-to-rust-gains-mozillas-backing.html 553 | http://lwn.net/Articles/705266/ 554 | 555 | # 2016-10-31 556 | 557 | http://www.infoworld.com/article/3135382/development-tools/rust-language-puts-ease-ahead-of-features-for-2017.html 558 | 559 | # 2016-10-20 560 | 561 | http://blog.faraday.io/saved-by-the-compiler-parallelizing-a-loop-with-rust-and-rayon/ 562 | 563 | mention of rls: 564 | http://sdtimes.com/microsofts-milestone-speech-recognition-node-js-v6-9-0-released-google-open-sources-nomulus-sd-times-news-digest-oct-19-2016 565 | 566 | # 2016-10-19 567 | 568 | Ask HN: What is the state of c++ vs. Rust? 569 | https://news.ycombinator.com/item?id=12744317 570 | 571 | "First of all, I agree that cargo blows the C/C++ tools out of the 572 | water in terms of ease of use. But I think it's even easier than newer 573 | stuff too. It's by far the best dependency manager I've used." 574 | 575 | https://news.ycombinator.com/item?id=12746170 576 | 577 | http://www.infoworld.com/article/3132449/application-development/mozillas-rust-goes-real-time-with-code-feedback.html#tk.rss_infoworldtechwatch?utm_source=twitterfeed&utm_medium=twitter 578 | 579 | https://blog.sentry.io/2016/10/19/fixing-python-performance-with-rust.html 580 | 581 | # 2016-10-18 582 | 583 | http://www.theregister.co.uk/2016/10/18/facebook_mercurial_devs_forget_git/ 584 | 585 | # 2016-10-01 586 | 587 | Mention of Rust in article about security 588 | 589 | https://techcrunch.com/2016/10/01/learned-helplessness-and-the-languages-of-dao/?ncid=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29 590 | 591 | # 2016-09-14 592 | 593 | re RustConf 594 | 595 | "I was fortunate to be able to attend. Sometimes I feel like I'm just not built for conferences: I prefer solitude, and people usually go to conferences to confer. That said, this was an exceptional group of people to be among: smart, friendly, helpful, passionate, and accepting. I know it's been said before: the rust community at this stage of its evolution gets this right." 596 | 597 | - https://news.ycombinator.com/reply?id=12500858&goto=item%3Fid%3D12499292%2312500858 598 | 599 | # 2016-08-31 600 | 601 | http://www.infoworld.com/article/3114475/open-source-tools/the-next-version-of-fedora-picks-up-rust.html 602 | 603 | # 2016-08-26 604 | 605 | http://www.infoworld.com/article/3109150/linux/linux-at-25-linus-torvalds-on-the-evolution-and-future-of-linux.html 606 | 607 | > That's not a new phenomenon at all. We've had the system people who used Modula-2 or Ada, and I have to say Rust looks a lot better than either of those two disasters. 608 | 609 | # 2016-08-22 610 | 611 | http://stratumsecurity.ghost.io/2016/08/22/joining-hands-and-singing-merrily-part-2-2 612 | 613 | > When our other major option for the XFIL Agent was C or C++, for code that we will have to deploy to our clients' own machines, Rust is 614 | far and away a better option. Its powerful type system, safety guarantees, and high-level features have allowed us to solve problems 615 | with more confidence than any of our other options would have. We're very happy with our results, as well as the efficiency and 616 | reliability of the software we've built with it so far. 617 | 618 | 619 | # 2016-08-03 620 | 621 | http://arstechnica.com/information-technology/2016/08/firefox-48-ships-bringing-rust-mainstream-and-multiprocess-for-some/ 622 | 623 | # 2016-07-06 624 | 625 | 16:25 <&steveklabnik> We're expanding our use of Rust into even more bold endeavours, details soon. 626 | 16:25 <&steveklabnik> Based on our experience with it in the last 1.5 years, stick with it, it will return your effort many times over in the medium-long run. 627 | 16:25 <&steveklabnik> ^ jamie from dropbox on HN 628 | 16:25 <&steveklabnik> https://news.ycombinator.com/item?id=12044991 629 | 630 | # 2016-06-29 631 | 632 | 08:44 <&steveklabnik> https://blogs.dropbox.com/tech/2016/06/lossless-compression-with-brotli/ <- 633 | 08:45 <&steveklabnik> The Rust programing language fits the bill perfectly: it’s a language that promises memory safety without garbage collection, concurrency without data races, 634 | and abstractions without overhead. It also has sufficient performance for our needs. That means that code written in Rust has the same memory requirements as 635 | the equivalent code written in C. At Dropbox, many of our services are actually memory bound, so this is a key advantage over a garbag 636 | 08:45 <&steveklabnik> etc 637 | 08:45 <&steveklabnik> :D 638 | 08:46 <&steveklabnik> Currently the decompressor runs at 72% of the speed of the vanilla -O3 optimized Brotli decompressor in gcc-4.9 for decompressing 4 megabyte blocks of data. 639 | 640 | # 2016-06-28 641 | 642 | > It's interesting, because this article - the whole theme of it - was inspired by the Rust and Servo community. They regularly have "This week in Rust" and "This week in Servo" posts to inform the community of the progress. And let me tell you, these are extremely valuable in keeping the community up to date and engaged. It's proven to be such a successful model that other libraries in the Rust community, and outside of it have started to make their own posts like this. 643 | 644 | > Which brings us to this post. Someone took their time to write this up, gather and organize the relevant info, for the benefit of the community. And what do they get as a response? Negativity and memes. 645 | 646 | [/u/ImSoCabbage](https://www.reddit.com/r/linux/comments/4q8d9n/this_week_in_gtk/d4r53l4) 647 | 648 | # 2016-06-01 649 | 650 | http://www.linuxjournal.com/content/new-version-rust-hits-streets-0 651 | 652 | # 2016-05-16 653 | 654 | > "Rust has done a truly phenomenal job at being a new language. I can remember when it was first announced, the demo of rust looked like linefeed noise (anyone remember the @'s?) It has become incredibly ergonomic. I think rust took the right amount of time to stabilize, the long beta/alpha period was well worth it." 655 | 656 | > "I also love just about every decision make about the language and 657 | ecosystem. Small standard library. Sanctioned build 658 | system/dependency management. Unstable features for evolution. 659 | Continuous language feature deployment. Using cargo to check for 660 | breaking language changes." 661 | 662 | > "Really, just fantastic. I can't think of any other way to start a language. Here is to hoping that someday I can get rust at work." 663 | 664 | [/u/cogman10](https://www.reddit.com/r/rust/comments/4jmb5z/one_year_of_rust/d381hh3) 665 | 666 | # 2016-05-13 667 | 668 | > "Rust's support for cross compilation, both in the compiler and the tooling (cargo, multirust/rustup) is amazing. Last week I was working on a hardened system project. It involved building a system consisting of just a kernel and a single process. At first I was going to target a unikernel, so I pulled the "x86_64-rumprun-netbsd" target, read some docs on rumprun, and in about 30 minutes I had a Rust project running as a unikernel, all well supported by Rust and its tooling.Rust's support for cross compilation, both in the compiler and the tooling (cargo, multirust/rustup) is amazing. Last week I was working on a hardened system project. It involved building a system consisting of just a kernel and a single process. At first I was going to target a unikernel, so I pulled the "x86_64-rumprun-netbsd" target, read some docs on rumprun, and in about 30 minutes I had a Rust project running as a unikernel, all well supported by Rust and its tooling." 669 | 670 | [fpgaminer on HN](https://news.ycombinator.com/item?id=11693004) 671 | 672 | # 2016-05-01 673 | 674 | http://forum.dlang.org/post/mailman.1738.1462099059.26339.digitalmars-d@puremagic.com 675 | 676 | # 2016-04-28 677 | 678 | [Mozilla's Rust language doubles down on speed and simplicity (InfoWorld)](http://www.infoworld.com/article/3062936/application-development/mozillas-rust-language-doubles-down-on-speed-and-simplicity.html) 679 | 680 | ## 2016-04-15 681 | 682 | [Rust 1.8 takes steps to replace the Make build system (InfoWorld)](http://www.infoworld.com/article/3056622/application-development/rust-18-takes-steps-to-replace-the-make-build-system.html) 683 | 684 | ## 2016-04-14 (1.8 release) 685 | 686 | > "So in 1.7 one of the most important things was that it contained a breaking change, at it was a test of how Rust handled that sort of thing. I didn't see even one person express a negative outcome as a result of that change, so I would say that Rust passed the test, and Rust's strategy for small inevitable breaking changes so far is successful!" 687 | 688 | -- [/u/deseringmachines](https://www.reddit.com/r/rust/comments/4es4av/announcing_rust_18/d22v8nd) 689 | 690 | [Rust is the #4 website that feeds hackernews](https://github.com/antontarasenko/smq/blob/master/reports/hackernews-top-domains-by-median.md). 691 | 692 | ## 2016-04-10 693 | 694 | > Q: "Do you see any programming language in the next 10/20 years taking over C++'s current place as most programming language used for systems?" 695 | 696 | > A: "I would love to see Rust take that place. I have been following an OS written entirely in Rust, and it has great idioms." 697 | 698 | -- [/u/migueldeicaza](https://www.reddit.com/r/programmerchat/comments/4dxpcp/i_am_miguel_de_icaza_i_started_xamarin_mono_gnome/d1vci1w) 699 | 700 | ## 2016-04-09 701 | 702 | [Frog and Toad are Cofounders](https://medium.com/frog-and-toad-are-cofounders/the-pitch-655df5f5e6da#.m5qz5a64l). 703 | A story using Rust as an example of trendy tech. 704 | 705 | ## 2016-04-06 706 | 707 | [Redox: a Rust-based microkernel (LWN)](https://lwn.net/SubscriberLink/682591/b22d2633646dda29). 708 | 709 | ## 2016-03-22 710 | 711 | [Rust's Redox could show Linux a few new tricks (InfoWorld)](http://www.infoworld.com/article/3046100/open-source-tools/rusts-redox-os-could-show-linux-a-few-new-tricks.html). 712 | 713 | ## 2016-03-14 714 | 715 | [The Epic Story of Dropbox's Exodus from the Cloud Empire](http://www.wired.com/2016/03/epic-story-dropboxs-exodus-amazon-cloud-empire/). 716 | Wired story on Dropbox. Mention's Rust. 717 | 718 | [Magic Pocket Infrastructure](https://blogs.dropbox.com/tech/2016/03/magic-pocket-infrastructure/). 719 | Dropbox's accompanying blog post. 720 | 721 | > "I would be more interested in a proposal to move parts of QEMU 722 | to Rust, or just about anything else except C++..." 723 | 724 | -- [PPM (QEMU maintainer)](http://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg02276.html) 725 | 726 | # 2016-03-10 727 | 728 | [Rust most loved in StackOverflow developer's survey](http://stackoverflow.com/research/developer-survey-2016#technology-most-loved-dreaded-and-wanted) 729 | 730 | # 2016-02-02 731 | 732 | [4chan discusses rust](http://boards.4chan.org/g/thread/52767422). 733 | Link dead. 734 | 735 | # 2016-01-20 736 | 737 | [InfoWorld technology of the year award](http://www.infoworld.com/article/3023050/open-source-tools/infoworlds-2016-technology-of-the-year-award-winners.html#slide21). 738 | 739 | # 2016-01-22 740 | 741 | > "The fact that Rust continues to mature is incredibly exciting." 742 | 743 | > "One of the biggest reasons we're struggling with computer security today is that our tools are too primitive and fragile," said Ristic. "Most components of our infrastructure are written in low level languages such as C. Having been tortured by C during my years of wiring security-critical software, I don't think I exaggerate when I compare programming in it with walking through a minefield." 744 | 745 | > "With Rust, many of the classes of problem simply go away, by design. At the same time, software written in it is compatible with existing software written in C. What this means is that we can start to slowly migrate to Rust and significantly improve our security as a result." 746 | 747 | -- [Ivan Ristic, software engineer and founder of SSL Labs](http://www.theregister.co.uk/2016/01/22/rust_16) 748 | 749 | # 2016-01-08 750 | 751 | > "That leaves Rust as my default recommendation for new, non-critical 752 | projects in this space. Like Dropbox employee, what I've noticed is 753 | the two of you on Rust teams here are unusually helpful and 754 | respectful compared to many in PL communities defending their 755 | work. Even pcwalton when he's clearly less than happy with my 756 | comments. ;)" 757 | 758 | -- [nickpsecurity on HN](https://news.ycombinator.com/item?id=10867076) 759 | 760 | # 2015-12-10 761 | 762 | > "Stability has been very good; in the last 6 months, we've had no issues with the stability of the rust compiler, the output binaries, or the rust stdlib." 763 | 764 | -- [/u/jamwt (Dropbox)](https://www.reddit.com/r/programming/comments/3w8dgn/announcing_rust_15/cxucrse) 765 | 766 | > "The Rust core team has been amazingly friendly and helpful. We've had several meetings with them where they came to our office and basically said "how's it going? what do you need? open up your laptop and show us your biggest problem." The project is under very good management. 767 | 768 | -- [/u/jamwt (Dropbox)](https://www.reddit.com/r/programming/comments/3w8dgn/announcing_rust_15/cxum0dm) 769 | 770 | # 2015-11-23 771 | 772 | > "Rust seems sensible" 773 | 774 | -- [John Carmack](https://twitter.com/ID_AA_Carmack/status/668811183307145217) 775 | 776 | # 2015-11-09 777 | 778 | > "Friends don't let friends skip leg day" 779 | 780 | -- [Andrei Alexandrescu on Rust](https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Andrei-Alexandrescu) 781 | 782 | See also his similar quote from 2015-08-28. 783 | 784 | # 2015-10-28 785 | 786 | [Ian Lance Taylor on Rust](https://www.quora.com/What-do-Go-programming-language-designers-think-of-Rust-programming-language) 787 | 788 | # 2015-10-07 789 | 790 | > "The OS community I always look to as an example of a welcoming and 791 | friendly one is Rust. Rust the compilar/cargo/infrastructure and 792 | also most of the bigger projects written in Rust have a very good 793 | vibe to them and are very explicit about the rules of engagement." 794 | 795 | -- [What Makes a Good Community](http://sarah.thesharps.us/2015/10/06/what-makes-a-good-community/) 796 | 797 | # 2015-10-05 798 | 799 | [Positive report on RustCamp diversity](http://techwhirl.com/conference-report-friendly-diverse-rust-camp/) 800 | 801 | # 2015-09-28 802 | 803 | > "Rust's spectacular engineering makes memory management far less of a chore than it's predecessors" 804 | 805 | [When Rust Makes Sense](http://m50d.github.io/2015/09/28/when-rust-makes-sense.html) 806 | 807 | > "When I write Rust code, I feel like a great programmer, even though 808 | I've only recently graduated from being a complete newbie to someone 809 | who mostly knows his stuff." 810 | 811 | -- [/u/llogiq](https://www.reddit.com/r/rust/comments/3mofy0/when_rust_makes_sense_or_the_state_of_typed/cvgpwke) 812 | 813 | > "One of the major reasons for being interested in Rust is that it is something that is much easier to convince coworkers of." 814 | 815 | -- [gmjosack on HN](https://news.ycombinator.com/item?id=10289174) 816 | 817 | > "Essentially, Rust gives me new super powers and the borrow checker is my sidekick making sure I don't shoot myself in the foot." 818 | 819 | -- [lambda on HN](https://news.ycombinator.com/reply?id=10290874&goto=item%3Fid%3D10289174) 820 | 821 | "I would like to think it is because Rust put a breath of fresh air into Systems Programming, by adding features that make modern languages good, and makes what some of the hardest things to do in C easy." 822 | 823 | -- unknown 824 | 825 | [Rust most starred language on GitHub](https://github.com/showcases/programming-languages) (until Swift showed up). 826 | 827 | # 2015-09-25 828 | 829 | [Kenton Varda mentions Rust in `curl | bash` discussion](https://blog.sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install.html?hn=1) 830 | 831 | # 2015-09-23 832 | 833 | [CPP lifetime proposal references Rust. Authored by Herb Sutter.](https://github.com/isocpp/CppCoreGuidelines/blob/09aef9bd86d933bc1e1ffe344eb2e73d2de15685/docs/Lifetimes%20I%20and%20II%20-%20v0.9.1.pdf) 834 | 835 | [Sutter on Rust](https://www.reddit.com/r/cpp/comments/3m0d41/writing_good_c14_by_default_herb_sutter/cvcnmn5). 836 | 837 | # 2015-09-17 (1.3 release) 838 | 839 | > "@rustlang might be one of the best documented, best engineered (and apparently, most honest) programming languages " 840 | 841 | -- [@Jacob_Henner](https://twitter.com/Jacob_Henner/status/644364501391945729) 842 | 843 | > " I guess I'll be able to compile all my code on stable 1.4 judging by https://github.com/rust-lang/rust/pull/28339" 844 | 845 | -- [arthursilva on HN](https://news.ycombinator.com/item?id=10235011) 846 | 847 | > "From what I can tell (passively reading about language decisions and seeing the responsiveness of all involved on various communication channels), it's a great lesson in building a community while simultaneously creating a fun programming language." 848 | 849 | -- [noobymatze on HN makes their first internet comment](https://news.ycombinator.com/item?id=10235578) 850 | 851 | # 2015-09-01 852 | 853 | [Brief mention in Wired](http://www.wired.com/2015/09/facebooks-new-anti-spam-system-hints-future-coding/) 854 | 855 | # 2015-08-28 856 | 857 | > "Rust has great promise 'safe coding without a garbage collector' but herein 858 | lies its challenge as well - the language had to dedicate so much real 859 | estate to this (difficult) problem alone, it became a disharmonic creature 860 | with one bulging muscle and little of anything else." 861 | 862 | -- [Andrei Alexandrescu](https://www.reddit.com/r/programming/comments/3ioy9b/andrei_alexandrescu_c_guru_leaves_facebook_to/cuj0csn) 863 | 864 | # 2015-08-17 865 | 866 | [What's on tap for Mozilla's Rust in 2016 (InfoWorld)](http://www.infoworld.com/article/2971852/application-development/whats-on-tap-for-mozillas-rust-in-2016.html). 867 | 868 | > "The Rust community seems to be populated entirely by human beings. I have no idea how this was done. I suspect Graydon Hoare deserves a large share of the credit for leading by example but everyone I have interacted with in the community has been friendly and patient." 869 | 870 | -- [Three Months of Rust](http://scattered-thoughts.net/blog/2015/06/04/three-months-of-rust/) 871 | 872 | # 2015-07-15 873 | 874 | [Two reasons the Rust language will succeed (InfoWorld)](http://www.infoworld.com/article/2947214/open-source-tools/two-reasons-the-rust-language-will-succeed.html). 875 | 876 | # 2015-07-14 877 | 878 | [Rust doge](http://i.imgur.com/157mlnN.png) 879 | 880 | # 2015-07-03 881 | 882 | [Things Rust shipped without (Graydon)](http://graydon2.dreamwidth.org/218040.html). 883 | 884 | [Comments on HN for the above](https://news.ycombinator.com/item?id=9827051). 885 | 886 | # 2015-06-18 887 | 888 | [Parallel page rendering with Mozilla Servo (LWN)](http://lwn.net/SubscriberLink/647969/48b505d485950a9e/) 889 | 890 | # 2015-06-17 891 | 892 | [Why I <3 Rust (Julia Evans)](https://drive.google.com/file/d/0B3oFPgN3B006Qjh0UWpLZlRXZzQ) 893 | 894 | # 2015-06-15 895 | 896 | [Rust mentioned in a comic strip](http://www.commitstrip.com/en/2015/06/15/when-you-have-no-room-for-error/). 897 | 898 | # 2015-06-01 899 | 900 | [Photos from 1.0 launch in bangalore](https://www.flickr.com/photos/galaxyk/sets/72157651031840283). 901 | 902 | # 2015-05-15 (1.0 release) 903 | 904 | > "This is a day I've been looking forward to for three-and-a-half years..." 905 | 906 | -- [@saneyuki_s (with dramatic picture)](https://twitter.com/saneyuki_s/status/599259576517595137) 907 | 908 | [HN](https://news.ycombinator.com/item?id=9551937). 909 | 910 | [Ars Technica](http://arstechnica.com/information-technology/2015/05/mozilla-backed-rust-language-stabilizes-at-version-1-0/). 911 | 912 | # 2015-05-13 913 | 914 | [Rust makes me excited about the future](http://www.reddit.com/r/rust/comments/35w2nq/rust_makes_me_excited_about_the_future/). 915 | 916 | # 2015-05-02 917 | 918 | [Death to C (TechCrunch)](http://techcrunch.com/2015/05/02/and-c-plus-plus-too/) 919 | 920 | # 2015-04-23 921 | 922 | > "This ownership stuff is such a blessing and amazing. I'm currently working on a contract where we're trying to fixup some code that crashes under heavy load, as well as troubleshoot some perf issues. The root cause is that it's not clear who actually owns what until when, so in some cases an object is destructed while there's still some code thinking it can use it. Fun." 923 | 924 | > "For perf, 30% of the CPU is burned in malloc/free, due to them copying strings around. The system has an arena allocator built in, and many of these strings might be able to go in there. Except no one is sure exactly how long the lifetime is on these things. So everyone copies everything just to be sure. Rust would force addressing this kinda thing up front. (And this project coulda added an refcounted structure or something, but it's a few hundred kloc of C and C++ so...)" 925 | 926 | -- [MichaelGG on HN](https://news.ycombinator.com/item?id=9435792) 927 | 928 | # 2015-04-04 929 | 930 | [Mozilla's Rust-based Servo browser engine inches forward (InfoWorld)](http://www.infoworld.com/article/2905688/applications/mozillas-rust-based-servo-browser-engine-inches-forward.html) 931 | 932 | # 2015-03-19 933 | 934 | > "One reason Rust will be a great language for systems engineers - https://doc.rust-lang.org/std/process/struct.Command.html … is damn near perfect." 935 | 936 | -- [@adamhjk](https://twitter.com/adamhjk/status/578627590996496384) 937 | 938 | # 2015-03-13 939 | 940 | [A Swift guide to Rust](http://faq.sealedabstract.com/rust/). 941 | 942 | # 2015-03-12 943 | 944 | [Rust CoC recommended by geekfeminism](http://geekfeminism.wikia.com/wiki/Code_of_conduct). (no longer apparently) 945 | 946 | # 2015-02-24 947 | 948 | > "In contrast, Rust's core devs have been forthcoming about 949 | practically every objection they've gotten. Their answers are clear, 950 | detailed, not demeaning, and constructive. When they don't know, 951 | they're honest about it, and when answers are hard, they take the 952 | time to explain. But I have never heard of anyone being belittled 953 | for not understanding lifetimes or the borrow checker." 954 | 955 | -- [Daishiman on HN](https://news.ycombinator.com/item?id=9099299) 956 | 957 | [What's your killer Rust feature love-fest](https://www.reddit.com/r/rust/comments/2x0h17/whats_your_killer_rust_feature/). 958 | 959 | # 2015-02-20 960 | 961 | ``` 962 | 11:22 -!- HappilyDoge [HappilyDoge@moz-hgo9t9.fios.verizon.net] has joined #rust-internals 963 | 11:23 < HappilyDoge> I just came in here to say that I'm with huon. I love this language too. That is all. 964 | 11:23 -!- HappilyDoge [HappilyDoge@moz-hgo9t9.fios.verizon.net] has left #rust-internals ["Leaving"] 965 | ``` 966 | 967 | # 2015-02-14 968 | 969 | > "That was surprisingly civil. I came for drama and left pleasantly disappointed. Shoutout to /r/rust" 970 | 971 | -- [/u/SosNapoleon](https://www.reddit.com/r/programming/comments/2vvcbm/author_of_unix_in_rust_abandons_rust_in_favour_of/col8o0k) 972 | 973 | > "I am not a rust guy yet, but I plan on picking it up and have been in that sub for a long time. I don't think I've seen a more level headed sub on reddit." 974 | 975 | -- [JavaDroid](https://www.reddit.com/r/programming/comments/2vvcbm/author_of_unix_in_rust_abandons_rust_in_favour_of/colbt25) 976 | 977 | # 2015-01-24 978 | 979 | > "The rust project is the best run open source project I've seen. The culture, automation and communication is awesome." 980 | 981 | -- [ozten on HN](https://news.ycombinator.com/item?id=8940431) 982 | 983 | ``` 984 | 10:47 < HKT> brson: As an outsider I really like how Rust feels like a community developed language rather than just being open source 985 | ``` 986 | 987 | # 2015-01-23 988 | 989 | [How to Go and Rust languages compare (Quora)](https://www.quora.com/How-do-Go-and-Rust-languages-compare) 990 | 991 | [Why Go is not Good](http://yager.io/programming/go.html) 992 | 993 | [Rust vs. Go](http://jaredly.github.io/2014/03/22/rust-vs-go/) 994 | 995 | # 2014-11-06 996 | 997 | [Rust and I were meant for each other](https://www.reddit.com/r/rust/comments/2ljrp2/i_think_rust_and_i_were_meant_for_each_other/). 998 | 999 | # 2014-10-27 1000 | 1001 | [Some good floating point benchmarks](http://www.fourmilab.ch/fourmilog/archives/2014-10/001537.html). 1002 | 1003 | # 2014-10-14 1004 | 1005 | > "As someone interested in Rust and obsessive over Doom, this is about as cool as it gets" 1006 | 1007 | -- [@Notch](https://twitter.com/notch/status/521988177519996928) 1008 | 1009 | # 2014-09-24 1010 | 1011 | > "The core team and it's open-ness and communication with everyone is really why i absolutely love Rust, they're very active in the community and very open to ideas and criticisms of the language" 1012 | 1013 | -- [speewave](http://www.reddit.com/r/rust_gamedev/comments/2gyrkh/jonathan_blow_ideas_about_a_new_programming/ckoyc3h) 1014 | 1015 | # 2014-07-30 1016 | 1017 | [sebcrozet comment about rust perf](http://www.reddit.com/r/rust/comments/2c5ax6/how_does_rust_compare_to_c_performancewise/cjcalo1). 1018 | 1019 | # 2014-07-01 1020 | 1021 | [Discussion of 30-minute introduction (good rationalization of breakage)](https://news.ycombinator.com/item?id=7968556). 1022 | 1023 | > "Mozilla is one of my favorite tech companies. Servo is a great example: Mozilla is willing to engage in fundamental CS research. Not only are they trying to put together a parallel, secure browser engine from the ground up, but they even created Rust to do so. This is truly long-term work, which seems rare in an increasingly short-term world." 1024 | 1025 | > "And Rust isn't just another C clone with OOP or CSP bolted on: it's principled, relatively elegant and takes full advantage of the last few decades of PL research. All while being practical—it has to be, since it's evolved with a Servo as a concomitant project. A non-trivial companion project like that seems great for naturally guiding a language! Not many other languages can say any of this, much less ones actually poised to replace C++ or at least do actual systems programming." 1026 | 1027 | > "And Mozilla is doing all this in a completely open and transparent way. I think this is incredibly important: anybody can get a glimpse into active development or even contribute. Just go to the relevant GitHub repo[1][2] and you're set. This is the way open source is supposed to work, rather than having companies develop behind close doors and dump source code occasionally (although that's also better than nothing)." 1028 | 1029 | > "I really wish more companies would take this sort of approach with their open source or basic research work. This gives me more confidence in Servo, Rust and Mozilla as a whole, especially compared to many of Mozilla's competitors (both in the browser space and in programming languages)." 1030 | 1031 | -- [tikhonj on HN](https://news.ycombinator.com/item?id=7238054) 1032 | 1033 | 1034 | > "Paul Graham talks about people who 'live in the future' -- in a specific area of their lives, they see clearly that some change is coming long before everyone else catches on. It seems the trend towards legalization of marijuana is one such area -- it probably is one of the next gold rushes. (In my opinion, 2 other such areas are virtual reality and the Rust programming language)." 1035 | 1036 | -- [charlieflowers on HN](https://news.ycombinator.com/item?id=7611230) 1037 | 1038 | > "If you are building a new language with serious ambitions for usage, you should really take a look at how well the Rust community has turned out to be. The "Buzz" you experience around the language is largely fueled by lots of enthusiasts - e.g. hop on the IRC channel at any time of day and get help. There are no dumb questions, especially about changes that happened in the mainline 2 days ago." 1039 | 1040 | > "Barriers for committing to Rust itself are very low. Also, they aggressively moderate their spaces according to their CoC. A few days ago, I asked a rather picky question on their subreddit and was quite surprised how on-point and serious the answers were. Given that the topic had the potential for some trolling, it was surprisingly calm." 1041 | 1042 | > "It's really a community I am happy in." 1043 | 1044 | -- Argorak on HN (link?) 1045 | 1046 | # 2014-07-03 (0.11 release) 1047 | 1048 | [HN thread](https://news.ycombinator.com/item?id=7978599). 1049 | 1050 | > > "I can't bring myself to care about a language that changes that much that quickly out in the open. I get that it's still early in development, but honestly, why even bother sharing it with the world at this point?" 1051 | 1052 | > "Because it's an open source project. A real open source project, with open design and open contributions. This is exactly how it is supposed to work. You're supposed to care because you want to help develop a cutting-edge language to solve real world problems. If that is not your cup of tea, that's fine, just wait for 1.0, but open development is a good thing." 1053 | 1054 | > "We've tend to expect projects to be released fully formed, but that's just because we're used to open source as corporate PR. This is how a community run project works." 1055 | 1056 | -- [/u/jcdyer3](http://www.reddit.com/r/programming/comments/29o446/rust_0110_released/cinhddx) 1057 | 1058 | # 2014-05-23 1059 | 1060 | > "@Jonathan_Blow rust looks fun, but I don't think I'd want try to make a bigger project in it.." 1061 | 1062 | -- [@Notch to @Jonathan_Blow](https://twitter.com/notch/status/469879785947402240) 1063 | 1064 | # 2013-06-27 1065 | 1066 | [Minor mention my John Carmack](https://twitter.com/seanmoon/status/350473918429143040). 1067 | 1068 | # 2013-05-01 1069 | 1070 | Go and Rust - objects without class 1071 | 1072 | https://lwn.net/Articles/548560/ 1073 | 1074 | # 2013-04-17 1075 | 1076 | [A taste of Rust](http://lwn.net/Articles/547145/). LWN article. 1077 | 1078 | # 2013-04-03 1079 | 1080 | Mozilla and Samsung building a new browser engine 1081 | 1082 | https://lwn.net/Articles/545716/ 1083 | 1084 | # 2013-01-25 1085 | 1086 | ["When I checked out Rust" on This PLT Life](http://this-plt-life.tumblr.com/post/41441254767/when-i-checked-out-rust). 1087 | 1088 | # 2010-07-08 1089 | 1090 | [The Rust Language](http://lambda-the-ultimate.org/node/4009). Lambda the Ultimate. First significant mention of Rust in press. 1091 | [Discussion on Reddit](https://www.reddit.com/r/programming/comments/cnfeo/rust_is_systems_programming_languages_being/) 1092 | -------------------------------------------------------------------------------- /rust-resources.md: -------------------------------------------------------------------------------- 1 | - [The Little Book of Rust Books](https://lborb.github.io/book/) 2 | - [Rust verification tools 2021](https://alastairreid.github.io/automatic-rust-verification-tools-2021/) 3 | - [Periodic Table of Rust Types](http://cosmic.mearie.org/2014/01/periodic-table-of-rust-types) 4 | - [Rust String Conversions Cheat Sheet](https://docs.google.com/spreadsheets/d/19vSPL6z2d50JlyzwxariaYD6EU2QQUQqIDOGbiGQC7Y/pubhtml?gid=0&single=true) 5 | - [Rust Iterator Cheat Sheet](https://danielkeep.github.io/itercheat_baked.html) 6 | - [Rust Container Cheet Sheet](https://docs.google.com/presentation/d/1q-c7UAyrUlM-eZyTo1pd8SZ0qwA_wYxmPZVOQkoDmH4/edit) 7 | - [Rust API Guidelines](https://github.com/brson/rust-api-guidelines) 8 | - https://caniuse.rs/ 9 | - https://github.com/rust-unofficial/awesome-rust/ 10 | - https://lib.rs 11 | - https://cheats.rs/ 12 | - https://github.com/rust-secure-code/projects 13 | - https://github.com/pretzelhammer/rust-blog/blob/master/posts/tour-of-rusts-standard-library-traits.md 14 | - [Another Container Cheet Sheet](https://i.redd.it/220xo2f6wci51.png) -------------------------------------------------------------------------------- /rust-safety-notes.md: -------------------------------------------------------------------------------- 1 | - https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html?m=1 2 | - https://www.zdnet.com/article/chrome-70-of-all-security-bugs-are-memory-safety-issues/ 3 | - https://www.chromium.org/Home/chromium-security/memory-safety 4 | - https://cseweb.ucsd.edu/~yiying/RustStudy-PLDI20.pdf 5 | - https://arxiv.org/abs/2003.03296 6 | - https://www.zdnet.com/google-amp/article/microsoft-to-explore-using-rust/ 7 | - 70% security bugs are memory bugs per microsoft 8 | - Encleve vuln's from mingshen (baidu)'s presentation 9 | - CVE-2015-6639 10 | - https://github.com/PolySync/misra-rust 11 | - https://anssi-fr.github.io/rust-guide/ 12 | - https://security.googleblog.com/2021/02/mitigating-memory-safety-issues-in-open.html 13 | - https://github.com/Microsoft/MSRC-Security-Research/blob/master/presentations/2019_02_BlueHatIL/2019_01%20-%20BlueHatIL%20-%20Trends%2C%20challenge%2C%20and%20shifts%20in%20software%20vulnerability%20mitigation.pdf 14 | -------------------------------------------------------------------------------- /rust-timeline.md: -------------------------------------------------------------------------------- 1 | # A Rust timeline 2 | 3 | This is a timeline of important events in Rust's history, 4 | mostly focusing on the pre-1.0 era. 5 | 6 | - 2006/07/23 - Graydon starts working on Rust 7 | - https://github.com/graydon/rust-prehistory 8 | - https://github.com/graydon/rust-prehistory/commit/b0fd440798ab3cfb05c60a1a1bd2894e1618479e 9 | - 2009/??/?? - Graydon starts working on Rust for Mozilla 10 | - 2010/06/16 - Initial commit to git repo 11 | - https://github.com/rust-lang/rust/commit/c01efc669f09508b55eced32d3c88702578a7c3e 12 | - 2010/07/07 - Rust announced at Mozilla Summit, Whistler 13 | - https://wiki.mozilla.org/Summit2010/Schedule 14 | - 3:45 PM. Session B093 - Servo Project 15 | - http://venge.net/graydon/talks/intro-talk-2.pdf 16 | - 2010/07/08 - Rust mentioned on LtA 17 | - http://lambda-the-ultimate.org/node/4009 18 | - 2010/0?/?? - Patrick enters project 19 | - 2010/12/?? - Raphael enters project 20 | - 2010/12/?? - Brian enters project as volunteer 21 | - 2011/??/?? - Marijn enters project under contract 22 | - 2011/04/29 - rustc bootstraps 23 | - https://mail.mozilla.org/pipermail/rust-dev/2011-April/000341.html 24 | - 2011/05/?? - Brian joins Mozilla 25 | - 20??/??/?? - Marijn exits project 26 | - 20??/??/?? - Raphael exits project 27 | - 2012/01/20 - Rust 0.1 released 28 | - 2012/03/29 - Rust 0.2 released 29 | - 2012/04/26 - roc convinces Samsung to work on Servo 30 | - http://robert.ocallahan.org/2012/04/korea.html 31 | - 2012/07/12 - Rust 0.3 released 32 | - 2012/07/20 - Rust 0.3.1 released (Mac fix) 33 | - 2012/10/15 - Rust 0.4 released 34 | - 2012/12/21 - Rust 0.5 released 35 | - 2013/??/?? - Alex enters project 36 | - 2013/04/03 - Rust 0.6 released 37 | - 2013/07/03 - Rust 0.7 released 38 | - 2013/??/?? - Graydon exits project 39 | - todo: link to email 40 | - https://www.reddit.com/r/rust/comments/7qels2/i_wonder_why_graydon_hoare_the_author_of_rust/ 41 | - 2013/??/?? - Alex joins Mozilla 42 | - 2013/09/26 - Rust 0.8 released 43 | - 2013/??/?? - Tim exits project 44 | - 2014/01/09 - Rust 0.9 released 45 | - 2014/04/04 - Rust 0.10 released 46 | - 2014/06/?? - (new) Cargo initial alpha release 47 | - 2014/07/02 - Rust 0.11 released 48 | - 2015/04/10 - [Leakpocalypse](https://github.com/rust-lang/rust/issues/24292) 49 | - 2015/05/15 - Rust 1.0 released 50 | 51 | - ? - Removal of garbage collector 52 | - ? - Removal of green threading 53 | - ? - "mutpocalypse" 54 | - ? - "libcpocalypse" 55 | 56 | - 2020/08/11 - Mozilla fires everybody on the Rust and Servo teams except Niko 57 | - This marks the end of Mozilla Research, Servo, and the Rust Project at Mozilla 58 | - https://blog.mozilla.org/blog/2020/08/11/changing-world-changing-mozilla/ 59 | - https://news.ycombinator.com/item?id=24120336 60 | --------------------------------------------------------------------------------