@rustvideos now has 3000 subscribers

Our YouTube channel, RustVideos, now has has over 3000 subscribers and more then 700000 views. \o/

If you’ve got any Rust-related videos on YouTube, please let us know!

Also, if you want to help with translations, see https://amara.org/en/teams/mozilla/

LDN.RS Learning and Hacking #2

We’re gonna to be joined by not one, but two other Rust groups: Rome and Cambridge! Come join the 20 Rustaceans already signed up for this free event! https://www.meetup.com/Rust-London-User-Group/events/242378000/

Diesel 0.16 released

Important changes/new features:

  • A call to joinable! is needed to indicate two tables can be joined. It is added automatically by infer_schema! and is now part of the output of diesel print-schema
  • You can alias column names, e.g. to make them valid Rust identifiers (again, schema inference does this automatically for you by appending an underscore)
  • Schema inference will now generate doc comments. You can get the same with output with diesel print-schema --with-docs
  • New type support: Decimal, Blob, and Datetime for MySQL, Range types for Postgres

More details in the changelog.

Looking for questions to add to the Rust FAQ

The official Rust FAQ needs some love. It hasn’t seen any serious updates since it initially launched, and it doesn’t cover a variety of areas that it should.

So, just like when the FAQ was first being worked on, we’re looking for suggestions for questions that should be added!

Please come share your ideas on the Rust user forum!

Small updates to cargo-bump, a tool to update your project version.

Updated cargo-bump to have an accurate README.md and some minor code edits to make my new best friend, Clippy, happy. If you find editing your Cargo.toml to increase version numbers tedious, then this is the cargo extension for you: https://crates.io/crates/cargo-bump

Internship Ending: So Long, and Thanks for All the Fish

Yesterday was the last day of my Rust internship at Mozilla. I can hardly believe that twelve weeks have passed since I started, but my calendar insists.


Types as Contracts: Implementation and Evaluation

Some weeks ago, I described Types as Contracts as an approach for how to go about defining Rust’s aliasing-related undefined behavior. One key property of this approach is that it is executable, which means we can actually have a program (in this case, miri tell us whether some particular Rust test case exhibits undefined behavior or not. I have since then spent most of my time completing and refining this implementation, and running it on miri’s test suite to exercise various bits of the standard library and see whether they are actually following the rules I have been suggesting.

This post is my report on what I found, and how the approach itself changed in response to these findings. It also explains how you can run miri yourself and have it check your code for undefined behavior according to this model. Finally, I discuss some of the things that I would like to look at going forward.


[Norway] - Hack & Learn on 7th of August

Let’s meet for open hacking and collaborative learning in our group.


[Spanish] Building Web apps with Rocket

A Webinar in Spanish about building apps with Rocket about to start


Following along with "Crafting Interpreters" in rust

I’ve been following Bob Nystrom’s Crafting Interpreters for a while now, and decided to follow along using Rust instead of java or c.


Microblog about my ideal computing system https://mastodon.social/@cmr/14332210

This is Rust-relevant, as it is directly tied to my inspiration to create the Robigalia project, which is currently the community where any public Rust + seL4 work is done. I think Robigalia will probably be more practical/pragmatic/less opinionated than my ideal, but I want it to be possible for it to serve as a prototype for something with similar properties as the ideal system.

Link: https://mastodon.social/@cmr/14332210

zVault - a deduplication backup solution written in Rust

zVault is a new deduplicating backup solution that I have written from scratch. It features strong fingerprint based deduplication, compression, client-side encryption and remote storage. The project is still in a pretty early stage and all feedback and help will be highly appreciated.


The Herald received a few updates, most notably, you now need to confirm you Twitter account.

London Rust Meetup on the 19th of July

We’ll be at Code|Node (near London Liverpool Street Station). We meet at 6:30PM, join us for a night of Rust and Revelry!


An example of Rust compiling generics

I extracted a tiny example to present how Rust compiles generics from our Rust course and put it on godbolt. It may sound simple, but this tends to be a source of confusion at courses: traits get compiled down to static function calls.


I recommend following the colors and the naming scheme.

Increasing Rust’s Reach

The Rust team announces a new outreach initiative, providing mentoring and guidance on Rust specific subjects.

Feel free to apply!


A script for GitHub App recent activity: https://github.com/notriddle/show-recent-activity-for-github-bot

For normal users, you can look at there page (for example, https://github.com/notriddle). The user page for Apps doesn’t show this information, but the API endpoints still work, and this script reads them.

Updates and fixes

Notriddle fixed a few bugs around hosting this app on Heroku, mainly, avatars should now work. Also in the bunch: translation issues.

See https://github.com/skade/elixirstatus-web/pull/7https://github.com/skade/elixirstatus-web/pull/6https://github.com/skade/elixirstatus-web/pull/4

for details.

titlecase 0.10.0 (a crate and command line tool for capilatizing titles)

titlecase is a small tool that capitlizes English text according to a style defined by John Gruber for post titles on his website Daring Fireball. It is handy for writing blog posts, READMEs, etc. to ensure a consistent style. This release includes efficiency improvements, better documentation, and error reporting on stderr. Prebuilt binaries are available for Linux, macOS, FreeBSD, NetBSD, and Windows.

systemstat v0.1.2 (a crate for getting system information)

Released version 0.1.2 of systemstat, a crate that lets you get system info like CPU load, memory usage, network interfaces, battery life, etc.

Please send pull requests for OS compatibility — currently there’s no support for macOS, NetBSD, DragonFlyBSD and illumos :)