kubeclient: a Kubernetes client in Rust

An ergonomic Kubernetes API client to manage Kubernetes resources.

crate - repo - docs

Fun with the Rust Alloc trait: A custom Vec implementation backed by elfmalloc

Fun with the Rust Alloc trait: a custom Vec implementation backed by elfmalloc

RFC822/2822 Sanitizer


World is full of broken code and invalid day times. Sanitize invalid RFC822/2822 inputs into valid chrono date times. https://github.com/alatiera/rfc822_sanitizer

Ammonia 1.0-rc1

Ammonia, the HTML sanitizer that parses fragments the same way that browsers do, is getting a stable API. Please give feedback now, before a bunch of decisions get set in stone.

binaryen-rs: WebAssembly production with Rust. https://github.com/pepyakin/binaryen-rs

Binaryen bindings for Rust which you can use to produce WebAssembly binaries!


I'm working on a pet shell project in rust. It uses a lisp dialect for scripting: https://github.com/juanibiapina/lish

It is still in a very initial stage, but I want to replace zsh with it eventually.


esp-rs: Compiling Rust for ESP8266

This build script builds Rust bindings to the ESP8266 Arduino library (support for other libraries installed by PlatformIO is in progress), transpiles Rust to C, then compiles it with PlatformIO.

kylyp : use rust, rocket, diesel, postgresql, and responsive design to build a new Forum.


A new Forum !

The project use rust, rocket, diesel, postgresql, and responsive design to build a new Forum.

bulletinboard: Your general-purpose DHT

An internet-wide Distributed Hash Table for your key/value pairs!


Rust syntax highlighting for Midinight Commander


Info on integrating Rust code into a C codebase

Librsvg, the library for rendering [SVG] files used by GNOME and other Linux Desktop software, is using Rust in their current release. They’ve written up how the build system is integrated, how the FFI is done, how external libraries are handled, and basic information on doing Rust.

Other than needing to have a Rust compiler to build it, it should still feel exactly like a C program.


Introducing elfmalloc, a pure-#rust allocator with performance competitive with jemalloc

@ezrosent and I are happy to announce elfmalloc, a new allocator written in pure Rust!

Quick links:

This project actually involved a number of crates - 9 in total. They are all in this repository, and many are interesting on their own:

  • bagpipe, a fast concurrent bag datastructure
  • bsalloc, a simple “bootstrapping” allocator useful in implementing other allocators
  • mmap-alloc, an allocator backed by direct mapping of memory pages
  • malloc-bind, a utility to implement the C malloc API in terms of a Rust allocator
  • slab-alloc, an implementation of Jeff Bonwick’s slab allocator algorithm
  • object-alloc, a trait for object allocators in Rust
  • object-alloc-test, a test suite for object allocators including memory corruption detection

This project is still in its early phases, there is a lot of work to do, and we would love contributions! See CONTRIBUTING.md for details.

Other links: Reddit thread, Rust users’ forum thread

Rust Cologne: RFC Lightning Talks on 2017-09-06

This time, we don’t want to talk about the Rust we currently know and love, but about the Rust we want to have next year! Join us on Wednesday, Sept. 6th, 2017 19:15 at the c4 in Cologne!

Find out more on our website or meetup.com!

@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.