Rust Adventure Phase 2

Rust Adventure is a growing collection of courses designed to help users of languages like JavaScript, Python, and Elixir become productive with Rust.

The first phase of Rust Adventure focused on answering the question What can you do with Rust?

During this phase Rust Adventure introduced the first workshops on building

Command line applications and serverless functions are two categories with which a learner can take what they know and apply it to their personal or company projects without having to advocate for a rewrite in Rust.

The second phase of Rust Adventure is about expanding these categories and making learning Rust more accessible to a wider audience.

Pricing Changes

Part of becomming more accessible to more people is a new pricing model.

Rust Adventure is now a subscription instead of a one-time price.

While one-time pricing works really well for companies and people who are already employed writing Rust, subscription pricing allows Rust Adventure to offer instruction to a wider audience, including those that may be interested in Rust but not at the point where they are using it on the job.

Subscription pricing also fits better with the future of Rust Adventure: An ever-growing collection of workshops organized into multiple topical streams. More on that later.

Additionally, while the Rust standard library is extremely stable, ecosystem crates that haven't hit 1.0 yet are fast-moving targets, and workshops need to be maintained over time as new releases come out. A subscription pricing model supports this work.

This also marks the introduction of self-serve team pricing with volume discounts. Choose the number of licenses you want, whether to pay monthly or yearly, and then send invites to your team after signing up.

Site Redesign

The site has undergone a complete overhaul. Notably the site has a Dark mode and a Light mode depending on your operating system's preferences.

  • There is a new articles section where non-workshop, one-off, or deep-dive related writing lives.
  • Each workshop gets it's own page as well, where anyone can learn more about the workshop.
  • The viewing experience has undergone an overhaul, with larger video viewing sizes by default and more access to notes, diffs, and other lessons.

This also sets the stage for the implementation of site-wide subtitles on videos.

Workshop Roadmap

Rust Adventure is now thinking about workshops in terms of streams. Each stream intends to cover a relevant topic from beginner Rustacean through production usage. Streams are no more than guided suggestions: "if you want to do X, take this workshop next", and you can skip around as much as you want.

Command Line Stream

StructOpt was merged into Clap as of v3. While the current workshops are largely still applicable, the Command Line Applications stream of workshops will be reworked to fit into a series of increasingly advanced Clap-based workshops.

Serverless Stream

The current Serverless stream starts off with Netlify which allows us to focus on writing small async Rust functions. This is great, but using Netlify's build support for Rust can lead to some issues, as learners don't control when the Netlify CI system upgrades shared dependencies like libc so learners can end up with differing results due to no fault of their own.

There is a better option in cargo-zigbuild, which is the same tooling we use in the AWS workshops. We will integrate this with GitHub Actions to incorporate a more stable CI base and introduce handling Rust in CI environments.

AWS is a deep and complex topic itself, and we will continue to utilize Rust in various places, such as for change data capture with DynamoDB, or as an AppSync resolver.

Overall the Serverless stream will continue to move in a direction that widens into handling users, integrating with databases, and more.

Games Stream

Bevy's new pace of releasing every three months can result in breaking changes or smaller quality of life improvements. 2048 and Snake will be kept up to date and re-recorded if necessary as Bevy continues to ship improvements.

There are more workshops already in development, such as Block Breaker, which introduces 2d physics, and a 2d platformer.

Desktop Applications Stream

Tauri recently hit 1.0 and we've been preparing for this behind the scenes. Expect a brand new stream of workshops introducing Tauri-based desktop applications from the smallest "call a Rust function from JavaScript" usage down to shipping and updating an application.

Powering JavaScript Stream

Sometimes we live in another language like JavaScript. Luckily for us Rust is great at fitting into other languages.

We can write Rust functions that are callable from JavaScript functions using napi-rs and then package that up as an npm library. This can be another great way to integrate Rust into your workflow without completely switching up-front, or just to get some performance wins while keeping the JavaScript interface for your users.