boats.gitlab.io
In my previous post, I discussed the new io-uring interface for Linux, and how to create a safe API for using io-uring from Rust. In the time since that post, I have implemented a prototype of such an API. The crate is called ringbahn, and...
News & Blog Posts
2020-06-02
~5 min read
boats.gitlab.io
Last fall I was working on a library to make a safe API for driving futures on top of an an io-uring instance. Though I released bindings to liburing called iou, the futures integration, called ostkreuz, was never released. I don’t know if...
News & Blog Posts
2020-05-12
~9 min read
boats.gitlab.io
In a previous post, I shortly discussed the concept of “effects” and the parallels between them. In an unrelated post since then, Yosh Wuyts writes about the problem of trying to write fallible code inside of an iterator adapter that doesn’...
News & Blog Posts
2020-04-14
~8 min read
boats.gitlab.io
I’ve long been a proponent of having some sort of syntax in Rust for writing functions which return results which “ok-wrap” the happy path. This is has also always been a feature with very vocal, immediate, and even emotional opposition fro...
News & Blog Posts
2020-04-07
~15 min read
boats.gitlab.io
About two and a half years ago I wrote a Rust library called failure, which quickly became one of the most popular error handling libraries in Rust. This week, its current maintainer decided to deprecate it, a decision I strongly support. T...
News & Blog Posts
2020-04-07
~6 min read
boats.gitlab.io
This is just a post about something that grinds my gears a bit more than it reasonably should: I think the habit of applying for CVEs for Rust (and Rust ecosystem libraries) is silly at best and harmful at worst. I think it muddies the wate...
News & Blog Posts
2020-03-31
~4 min read
boats.gitlab.io
One of the big sources of difficulty on the async ecosystem is spawning tasks. Because there is no API in std for spawning tasks, library authors who want their library to spawn tasks have to depend on one of the multiple executors in the e...
News & Blog Posts
2019-11-19
~3 min read
boats.gitlab.io
Today I’m releasing a library called iou. This library provides idiomatic Rust bindings to the C library called liburing, which itself is a higher interface for interacting with the io_uring Linux kernel interface. Here are the answers to s...
News & Blog Posts
2019-11-12
~5 min read
boats.gitlab.io
The first version of async/await syntax is in the beta release, set to be shipped to stable in 1.39 on November 7, next month. There are a wide variety of additional features we could add to async/await in Rust beyond what we’re shipping in...
News & Blog Posts
2019-10-22
~6 min read
boats.gitlab.io
Many people who use Rust for a bit - especially those who like the language but do not fall in love with it - feel a sense that there must be a smaller, simpler variation on the same theme which would maybe be a little less powerful, but wo...
News & Blog Posts
2019-07-23
~6 min read
boats.gitlab.io
In my previous post I said that the lang team would be making our final decision about the syntax of the await operator in the May 23 meeting. That was last Thursday, and we did reach a decision. In brief, we decided to go forward with the...
News & Blog Posts
2019-05-28
~4 min read
boats.gitlab.io
The idea of a zero cost abstraction is very important to certain programming languages, like Rust and C++, which intend to enable users to write programs with excellent performance profiles with relatively little effort. Since this idea is...
News & Blog Posts
2019-05-21
~4 min read
boats.gitlab.io
This is an announcement regarding the resolution of the syntax for the await operator in Rust. This is one of the last major unresolved questions blocking the stabilization of the async/await feature, a feature which will enable many more p...
News & Blog Posts
2019-05-07
~12 min read
boats.gitlab.io
The biggest unresolved question regarding the async/await syntax is the final syntax for the await operator. There’s been an enormous amount of discussion on this question so far; a summary of the present status of that discussion and the p...
News & Blog Posts
2019-04-16
~6 min read
boats.gitlab.io
This is my second post on the design of generators. In the first post, I outlined what an MVP of the feature would look like. In this post, I want to take a look at the first design issue for the feature: how it integrates with the ? operat...
News & Blog Posts
2019-02-19
~5 min read
boats.gitlab.io
We’re still not finished with the design of async/await, but it’s already become clear that it’s time to get the next phases of the feature into the pipeline. There are two extensions to the minimal async/await feature we’ve currently got t...
News & Blog Posts
2019-02-12
~5 min read
boats.gitlab.io
This blog post is about a project called Romio that I’ve been working on over the past two or three weeks. Romio is a port of a small part of the Tokio project to the newer futures APIs. I started the project to get some experience porting...
News & Blog Posts
2018-12-11
~11 min read
boats.gitlab.io
The post before this one covered how shifgrethor handles rooting: how we track for the garbage collector that this object is alive. That isn’t sufficient for implementing a tracing garbage collector though: the idea of a tracing garbage col...
News & Blog Posts
2018-11-06
~3 min read
boats.gitlab.io
Rust 2018 is almost out the door, but there is one big decision the language team has yet to make. It has to do with the modules and paths system, so of course it is a very easy decision that no one has a strong opinion about. ;-) In Rust 2...
News & Blog Posts
2018-11-06
~5 min read
boats.gitlab.io
After the digression in the previous post, it’s time to get back to what I promised in the first post: a look at how shifgrethor handles rooting. Shifgrethor’s solution is somewhat novel and takes advantage of some of Rust’s specific featur...
News & Blog Posts
2018-10-30
~8 min read