223 lines
22 KiB
Plaintext
223 lines
22 KiB
Plaintext
<p>Hello and welcome to another issue of <em>This Week in Rust</em>!
|
||
<a href="http://rust-lang.org">Rust</a> is a programming language empowering everyone to build reliable and efficient software.
|
||
This is a weekly summary of its progress and community.
|
||
Want something mentioned? Tweet us at <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> or <a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>.
|
||
Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md">We love contributions</a>.</p>
|
||
<p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a>.
|
||
If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p>
|
||
<h2 id="updates-from-rust-community">Updates from Rust Community</h2>
|
||
<h3 id="official">Official</h3>
|
||
<h3 id="rustconf-2021">RustConf 2021</h3>
|
||
<ul>
|
||
<li><a href="https://youtu.be/ylOpCXI2EMM">Project Update: Lang Team by Niko Matsakis</a></li>
|
||
<li><a href="https://youtu.be/DnYQKWs_7EA">Project Update: Libs Team by Mara Bos</a></li>
|
||
<li><a href="https://youtu.be/UrDhMWISR3w">Move Constructors: Is it Possible? by Miguel Young de la Sota</a></li>
|
||
<li><a href="https://youtu.be/CV5CjUlcqsw">The Importance of Not Over-Optimizing in Rust by Lily Mara</a></li>
|
||
<li><a href="https://youtu.be/BLy_YF4nmqQ">Identifying Pokemon Cards by Hugo Peixoto</a></li>
|
||
<li><a href="https://youtu.be/qUu1vJNg8yo">Fuzz Driven Development by Midas Lambrichts</a></li>
|
||
<li><a href="https://youtu.be/D1NAREuicNs">Writing the Fastest GDBT Library in Rust by Isabella Tromba</a></li>
|
||
<li><a href="https://youtu.be/m-Qg3OoPIdc">Whoops! I Rewrote it in Rust by Brian Martin</a></li>
|
||
<li><a href="https://youtu.be/b0I4vP2CP88">How I Used Rust to Become Extremely Offline by Luke Westby</a></li>
|
||
<li><a href="https://youtu.be/8d7DqeYXq7A">Supercharging Your Rust Code With Five Little-Known Attributes by Jackson Lewis</a></li>
|
||
<li><a href="https://youtu.be/4_Jg-rLDy-Y">Compile-Time Social Coordination by Zac Burns</a></li>
|
||
<li><a href="https://youtu.be/9H9SO2u6Q20">Hacking rustc: Contributing to the Compiler by Esteban Kuber</a></li>
|
||
<li><a href="https://youtu.be/OZPXhmy-wVw">This Week in Rust: 400 Issues and Counting! by This Week in Rust's very own Lead Editor Nell Shamrell-Harrington!</a></li>
|
||
</ul>
|
||
<h3 id="projecttooling-updates">Project/Tooling Updates</h3>
|
||
<ul>
|
||
<li><a href="https://rust-analyzer.github.io/thisweek/2021/09/20/changelog-95.html">rust-analyzer Changelog #95</a></li>
|
||
<li><a href="https://rome.tools/blog/2021/09/21/rome-will-be-rewritten-in-rust">Rome will be rewritten in Rust</a></li>
|
||
<li><a href="https://sixtyfps.io/thisweek/2021-09-20.html">SixtyFPS (GUI crate) weekly report 19th of September</a></li>
|
||
<li><a href="https://www.sea-ql.org/SeaORM/blog/2021-09-20-introducing-sea-orm">Introducing SeaORM: An async & dynamic ORM for Rust</a></li>
|
||
<li><a href="https://gfx-rs.github.io/2021/09/16/deno-webgpu.html">wgpu alliance with Deno</a></li>
|
||
<li><a href="https://www.phoronix.com/scan.php?page=news_item&px=Mesa-Rust-2021-Experiment">Experimenting Is Underway For Rust Code Within Mesa</a></li>
|
||
<li><a href="https://www.reddit.com/r/rust/comments/pqiiw1/goscript_is_now_language_feature_complete/">Goscript is now language feature complete</a></li>
|
||
<li><a href="https://security.googleblog.com/2021/09/an-update-on-memory-safety-in-chrome.html?m=1">An update on Memory Safety in Chrome</a></li>
|
||
<li><a href="https://datafuselabs.github.io/weekly/2021-09-22-databend-weekly/">This week in Databend #8</a></li>
|
||
</ul>
|
||
<h3 id="observationsthoughts">Observations/Thoughts</h3>
|
||
<ul>
|
||
<li><a href="https://blog.knoldus.com/how-to-use-vectors-in-rust/">How to use Vectors in Rust?</a></li>
|
||
<li><a href="https://blog.knoldus.com/message-passing-in-rust-threads-is-very-helpful/">Message Passing in Rust Threads is very helpful</a></li>
|
||
<li><a href="https://gregstoll.wordpress.com/2021/09/18/new-project-wheel-of-fortune-solver-and-rust-is-still-faster-than-python/">New project: Wheel of Fortune solver! (and Rust is still faster than Python)</a></li>
|
||
<li><a href="https://smallcultfollowing.com/babysteps/blog/2021/09/08/rustacean-principles/">Rustacean Principles</a></li>
|
||
<li><a href="https://smallcultfollowing.com/babysteps//blog/2021/09/16/rustacean-principles-continued/">Rustacean Principles, Continued</a></li>
|
||
<li><a href="https://www.justinm.one/blog/2021/09/11/fullstackrust/">Full Stack Rust</a></li>
|
||
<li><a href="https://epage.github.io/blog/2021/09/learning-rust/">Learnability of Rust</a></li>
|
||
<li><a href="https://research.activision.com/publications/2021/09/the-rust-programming-language-for-game-tooling">The Rust Programming Language for Game Tooling</a></li>
|
||
<li><a href="https://nickb.dev/blog/reality-check-for-cloudflare-wasm-workers-and-rust">Reality Check for Cloudflare Wasm Workers and Rust</a></li>
|
||
<li><a href="https://gergo.erdi.hu/blog/2021-09-18-rust_on_the_mos_6502__beyond_fibonacci/">Rust on the MOS 6502: Beyond Fibonacci</a></li>
|
||
<li><a href="https://tech.marksblogg.com/rocket-rust-web-framework.html">Rocket: A Web Framework for Rust</a></li>
|
||
<li><a href="https://blog.kraken.com/post/7964/oxidizing-kraken-improving-kraken-infrastructure-using-rust/">Oxidizing Kraken: Improving Kraken Infrastructure Using Rust</a></li>
|
||
<li><a href="https://diziet.dreamwidth.org/9894.html">Tricky compatibility issue - recent changes to <code>std::io::ErrorKind</code></a></li>
|
||
<li>[audio] <a href="https://youtu.be/SsZUicpnpVE">Flutter/Rust Roundtable - Flying High with Flutter #24</a></li>
|
||
<li>[audio] <a href="https://rustacean-station.org/episode/036-luca-palmieri/">Rustacean Station: From Zero to Production with Luca Palmieri</a></li>
|
||
<li>[audio] <a href="https://soundcloud.com/arewepodcastyet/awpy-08-jon-ferdinand-ronge-gjengset">AreWePodcastYet 08 with Jon Ferdinand Ronge Gjenset</a></li>
|
||
<li>[audio] <a href="https://rustacean-station.org/episode/037-daniel-mckenna/">Rustacean Station: Rust Code Coverage with Daniel McKenna</a></li>
|
||
<li>[video] <a href="https://youtu.be/FiEbgZlBXhk">rust4ml @ Rust DC w/ Vlad Orlov</a></li>
|
||
<li>[video] <a href="https://youtu.be/Gv-nG6F_09I">In-kernel, fast-path packet processing with AF_XDP @ Rust DC w/ Collins Huff</a></li>
|
||
</ul>
|
||
<h3 id="rust-walkthroughs">Rust Walkthroughs</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/ockam-network/ockam/tree/develop/documentation/use-cases/end-to-end-encrypt-all-application-layer-communication">How to end-to-end encrypt all application layer communication</a></li>
|
||
<li><a href="https://kerkour.com/blog/rust-on-esp32">Rust on ESP32</a></li>
|
||
<li><a href="https://kerkour.com/blog/compile-rust-for-esp32-xtensa-on-raspberry-pi-aarch64/">How to compile Rust and LLVM for ESP32 on a Raspberry Pi</a></li>
|
||
<li><a href="https://oknozor.github.io/blog/optimize-rust-binary-size/">Optimize Rust binaries size with cargo and Semver</a></li>
|
||
<li><a href="https://www.fpcomplete.com/blog/axum-hyper-tonic-tower-part2">Combining Axum, Hyper, Tonic, and Tower for hybrid web/gRPC apps: Part 2</a></li>
|
||
<li><a href="https://www.fpcomplete.com/blog/axum-hyper-tonic-tower-part3">Combining Axum, Hyper, Tonic, and Tower for hybrid web/gRPC apps: Part 3</a></li>
|
||
<li><a href="https://www.fpcomplete.com/blog/axum-hyper-tonic-tower-part4/">Combining Axum, Hyper, Tonic, and Tower for hybrid web/gRPC apps: Part 4</a></li>
|
||
<li><a href="https://hoj-senna.github.io/HShhss/texts/001arduino1.html">First steps with an Arduino board and Rust</a></li>
|
||
<li><a href="https://blog.logrocket.com/full-stack-rust-a-complete-tutorial-with-examples/">Full-stack Rust: A complete tutorial with examples</a></li>
|
||
<li><a href="https://dev.to/senyeezus/designing-state-machines-in-rust-252k">Designing state machines in Rust</a></li>
|
||
<li><a href="https://dev.to/antoniovdlc/optimising-a-javascript-library-with-webassembly-a-failed-attempt-48le">Optimizing a JavaScript library with WebAssembly, a failed attempt!</a></li>
|
||
<li>[series] <a href="https://dev.to/mileswatson/series/14520">URL Shortener with Rust, Svelte, & AWS</a></li>
|
||
<li>[CN] <a href="https://dev.to/daniel1in/string-in-rust-34d7">String in Rust</a></li>
|
||
<li>[video] <a href="https://www.youtube.com/watch?v=7odJDwhjCXQ&list=PLEIv4NBmh-GsWGE9mY3sF9c5lgh5Z_jLr&ab_channel=BedroomBuilds">From Python to Rust - all episodes</a></li>
|
||
<li>[video] <a href="https://youtu.be/UVUjnzpQKUo">1 Problem, 16 Programming Languages (C++ vs Rust vs Haskell vs Python vs APL...)</a></li>
|
||
<li>[video] <a href="https://youtu.be/0HlrqwLjCxA">Explaing Rust Analyzer 15: Error Resilient Parsing</a></li>
|
||
<li>[video] <a href="https://www.youtube.com/watch?v=J_yGWdgeGQM">Getting started with Rust 🦀 2021: 6. Library API design overhaul, async and more</a></li>
|
||
<li>[video] [series] <a href="https://youtube.com/playlist?list=PL7r-PXl6ZPcD63DS2djSiz4SlXkaTfobc">Rust for Java Developers</a></li>
|
||
</ul>
|
||
<h3 id="miscellaneous">Miscellaneous</h3>
|
||
<ul>
|
||
<li><a href="https://neverworkintheory.org/2021/09/20/do-developers-read-compiler-error-messages.html">Do Developers Read Compiler Error Messages?</a></li>
|
||
<li><a href="https://www.reddit.com/r/rust/comments/pqs2dh/alpine_system_change_proposal_rust_in_main/">Alpine: System change proposal: Rust in main</a></li>
|
||
<li><a href="https://www.phoronix.com/scan.php?page=news_item&px=Rust-Adds-Motorola-M68k">Rust Adds Support For The Motorola M68000 Processors</a></li>
|
||
<li><a href="https://saveriomiroddi.github.io/Rust-lulz-godbolt-assembly-exploring-without-crate-limitations-in-visual-studio-code">Godbolt assembly exploring without crate limitations, in Visual Studio Code</a></li>
|
||
<li><a href="https://www.reddit.com/r/rust/comments/pm4xe9/what_libraries_do_you_miss_from_other_languages/">What libraries do you miss from other languages?</a></li>
|
||
<li><a href="https://www.reddit.com/r/rust/comments/pp0nfa/rust_for_rustaceans_is_off_to_the_printer/">Rust for Rustaceans is off to the printer!</a></li>
|
||
<li><a href="https://www.reddit.com/r/rust/comments/ppf83d/gcc_codegen_now_under_rustlang_organization/">GCC codegen now under rust-lang organization</a></li>
|
||
<li><a href="https://www.reddit.com/r/rust/comments/ppya5y/rust_in_qemu_host_support_matrix/">Rust in Qemu, host support matrix</a></li>
|
||
<li><a href="https://docs.google.com/document/u/1/d/e/2PACX-1vSt2VB1zQAJ6JDMaIA9PlmEgBxz2K5Tx6w2JqJNeYCy0gU4aoubdTxlENSKNSrQ2TXqPWcuwtXe6PlO/pub">Chrome - Borrowing Trouble: The Difficulty Of A C++ Borrow Checker</a></li>
|
||
<li>[picture] <a href="https://www.reddit.com/r/rust/comments/pskqhk/media_my_rust_project_was_featured_in_one_of/">My Rust project was featured in one of Europe's biggest computer magazines (heise c't)</a></li>
|
||
<li>[video] <a href="https://www.reddit.com/r/rust/comments/pl7n8a/media_wrote_a_neat_little_maze_solver_largest/?utm_source=share&utm_medium=web2x&context=3">Wrote a neat little maze solver. Largest solved so far is 125k x 125k. Here's a smaller 512x512</a></li>
|
||
</ul>
|
||
<h2 id="crate-of-the-week">Crate of the Week</h2>
|
||
<p>This week's crate is <a href="https://github.com/willcrichton/flowistry">flowistry</a>, a VS code extension to visualize data flow in Rust code.</p>
|
||
<p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/963">Willi Kappler</a> for the suggestion!</p>
|
||
<p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p>
|
||
<h2 id="call-for-participation">Call for Participation</h2>
|
||
<p>Always wanted to contribute to open-source projects but didn't know where to start?
|
||
Every week we highlight some tasks from the Rust community for you to pick and get started!</p>
|
||
<p>Some of these tasks may also have mentors available, visit the task page for more information.</p>
|
||
<ul>
|
||
<li><a href="https://github.com/ockam-network/ockam/issues/1804">ockam-network/ockam - Ockam TCP Transport using smoltcp</a></li>
|
||
<li><a href="https://github.com/ockam-network/ockam/issues/1624">ockam-network/ockam - File Transfer over end-to-end encrypted secure channels</a></li>
|
||
</ul>
|
||
<p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821">here</a>.</p>
|
||
<h2 id="updates-from-rust-core">Updates from Rust Core</h2>
|
||
<p>256 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2021-09-13..2021-09-20">merged in the last week</a></p>
|
||
<ul>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88529">ARMv6K Nintendo 3DS Tier 3 target added</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88321">add initial support for m68k</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88994">disable the evaluation cache when in intercrate mode</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/87867">use a separate interner type for <code>UniqueTypeId</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88690">accept <code>m!{ .. }.method()</code> and <code>m!{ .. }?</code> statements</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88729">recover from <code>Foo(a: 1, b: 2)</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/86422">emit clearer diagnostics for parens around for loop heads</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/86382">make diagnostics clearer for <code>?</code> operators</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88911">improve error message for type mismatch in generator arguments</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88894">improve error message for missing trait in trait impl</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89021">add a separate error for <code>dyn Trait</code> in <code>const fn</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/87960">suggest replacing an inexisting field for an unmentioned field</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89055">suggest better place to add call parentheses for method expressions wrapped in parentheses</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88841">suggest removing bad parens in <code>(recv.method)()</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89012">suggest removing <code>#![feature]</code> for library features that have been stabilized</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88735">don't lint about missing code examples in derived traits</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88719">point at argument instead of call for their obligations</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89000">reuse existing shared <code>Lrc</code> for <code>MatchImpl</code> parent</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88965">fast reject for <code>NeedsNonConstDrop</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/82183">simplify lazy <code>DefPathHash</code> decoding by using an on-disk hash table</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88988">avoid codegen for <code>Result::into_ok</code> in <code>lang_start</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89069">use <code><[T; N]>::map</code> in <code>Sharded</code> instead of <code>SmallVec</code> and unsafe code</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88832">introduce a fast path that avoids the <code>debug_tuple</code> abstraction when deriving <code>Debug</code> for unit-like enum variants</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88722">make <code>UnsafeCell::get_mut</code> const</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88558"><code>const</code> <code>drop</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89031">don't inline <code>OnceCell</code> initialization closures</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88954">allow <code>panic!("{}", computed_str)</code> in <code>const fn</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89017">fix potential race in <code>AtomicU64</code> time monotonizer</a></li>
|
||
<li><a href="https://github.com/rust-lang/futures-rs/pull/2499">futures: fix Unusable <code>Sink</code> implementation on <code>Scan</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7690">clippy: change <code>while_let_on_iterator</code> suggestion to use <code>by_ref()</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7640">clippy: improve accuracy of <code>mut_key</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7653">clippy: new lint: <code>same_name_method</code></a></li>
|
||
</ul>
|
||
<h3 id="rust-compiler-performance-triage">Rust Compiler Performance Triage</h3>
|
||
<p>A nice week: more improvements than regressions.</p>
|
||
<p>Triage done by <strong>@pnkfelix</strong>.
|
||
Revision range: <a href="https://perf.rust-lang.org/?start=9f85cd6f2ab2769c16e89dcdddb3e11d9736b351&end=7743c9fadd64886d537966ba224b9c20e6014a59&absolute=false&stat=instructions%3Au">9f85cd6f2..7743c9f</a></p>
|
||
<p>2 Regressions, 4 Improvements, 8 Mixed; ??? of them in rollups</p>
|
||
<p>44 comparisons made in total</p>
|
||
<p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-09-21.md">Full report here</a></p>
|
||
<h3 id="approved-rfcs">Approved RFCs</h3>
|
||
<p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These
|
||
are the RFCs that were approved for implementation this week:</p>
|
||
<ul>
|
||
<li><a href="https://github.com/rust-lang/rfcs/pull/2845">RFC: Supertrait item shadowing</a></li>
|
||
</ul>
|
||
<h3 id="final-comment-period">Final Comment Period</h3>
|
||
<p>Every week <a href="https://www.rust-lang.org/team.html">the team</a> announces the
|
||
'final comment period' for RFCs and key PRs which are reaching a
|
||
decision. Express your opinions now.</p>
|
||
<h3 id="rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></h3>
|
||
<p><em>No RFCs are currently in the final comment period.</em></p>
|
||
<h3 id="tracking-issues-prs"><a href="https://github.com/rust-lang/rust/labels/final-comment-period">Tracking Issues & PRs</a></h3>
|
||
<ul>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/89006">Stabilize RFC 2345: Allow panicking in constants</a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/88090">Perform type inference in range pattern</a></li>
|
||
<li>[disposition: close] <a href="https://github.com/rust-lang/rust/pull/88028">Disable unused_must_use for statically known bools</a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/87228">Decide whether asm! and/or global_asm! should be exported from the prelude.</a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/87220">Make #[derive(A, B, ...)] cfg-eval its input only for A, B, ... and stabilize feature(macro_attributes_in_derive_output)</a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/84267">Make <code>*const (), *mut ()</code> okay for FFI</a></li>
|
||
</ul>
|
||
<h3 id="new-rfcs">New RFCs</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/rust-lang/rfcs/pull/3177">[Help wanted] First draft of patchfile RFC</a></li>
|
||
<li><a href="https://github.com/rust-lang/rfcs/pull/3176">Multiple artifact deps on the same crate with different names, for different targets</a></li>
|
||
</ul>
|
||
<h2 id="upcoming-events">Upcoming Events</h2>
|
||
<h3 id="online">Online</h3>
|
||
<ul>
|
||
<li><a href="https://www.meetup.com/Dallas-Rust/events/jqxqwryccmblc/">September 28, 2021, Dallas, TX, US - Last Tuesday - Dallas Rust</a></li>
|
||
<li><a href="https://github.com/gfx-rs/meetup">October 2, 2021 - Rust Graphics meetup</a></li>
|
||
<li><a href="https://www.meetup.com/Buffalo-Rust-Meetup/events/280628523/">October 5, 2021, Buffalo, NY, US - Buffalo Rust User Group, First Tuesdays - Buffalo Rust Meetup</a></li>
|
||
</ul>
|
||
<h3 id="north-america">North America</h3>
|
||
<ul>
|
||
<li><a href="https://www.meetup.com/Rust-ATL/events/lhpkmsyccnbrb/">October 13, 2021, Atlanta, GA, US - Grab a beer with fellow Rustaceans - Rust Atlanta</a></li>
|
||
</ul>
|
||
<h3 id="europe">Europe</h3>
|
||
<ul>
|
||
<li><a href="https://berline.rs/">September 22, 2021, Berlin, DE - Rust and Tell - an onsite event - Berline.rs</a></li>
|
||
</ul>
|
||
<p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get
|
||
it mentioned here. Please remember to add a link to the event too.
|
||
Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p>
|
||
<h1 id="rust-jobs">Rust Jobs</h1>
|
||
<p><strong>Kollider</strong></p>
|
||
<ul>
|
||
<li><a href="https://kollider.homerun.co/junior-backend-engineer/en">Junior Backend Engineer (Remote)</a></li>
|
||
</ul>
|
||
<p><strong>Subspace Labs</strong></p>
|
||
<ul>
|
||
<li><a href="https://jobs.lever.co/subspacelabs/9d8f9b6d-4141-4782-923a-2872a06c723e">EVM Execution Engineer (Remote)</a></li>
|
||
</ul>
|
||
<p><strong>Oxford Ionics</strong></p>
|
||
<ul>
|
||
<li><a href="https://www.oxionics.com/software-engineer-embedded">Software Engineer: Embedded (Begbroke, UK)</a></li>
|
||
<li><a href="https://www.oxionics.com/software-engineer-compiler">Software Engineer: Compiler (Begbroke, UK)</a></li>
|
||
</ul>
|
||
<p><strong>ChainSafe</strong></p>
|
||
<ul>
|
||
<li><a href="https://jobs.smartrecruiters.com/ChainSafeSystemsInc/743999769790643-protocol-engineer-forest-rust-">Protocol Engineer - Forest (Remote)</a></li>
|
||
<li><a href="https://jobs.smartrecruiters.com/ChainSafeSystemsInc/743999769885107-rust-engineer-substrate-">Rust Engineer - Substrate (Remote)</a></li>
|
||
</ul>
|
||
<p><em>Tweet us at <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> to get your job offers listed here!</em></p>
|
||
<h1 id="quote-of-the-week">Quote of the Week</h1>
|
||
<blockquote>
|
||
<p>the strains of the project have hurt a lot of people over the years and I think maybe the only path to recovery involves getting some distance from it.</p>
|
||
</blockquote>
|
||
<p>– <a href="https://twitter.com/graydon_pub/status/1437521319722029056">Graydon Hoare on twitter</a></p>
|
||
<p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1107">mmmmib</a> for the suggestion!</p>
|
||
<p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p>
|
||
<p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell">nellshamrell</a>, <a href="https://github.com/llogiq">llogiq</a>, and <a href="https://github.com/cdmistman">cdmistman</a>.</em></p>
|
||
<p><small><a href="https://www.reddit.com/r/rust/comments/ptjwmc/this_week_in_rust_409/">Discuss on r/rust</a></small></p> |