Read Rust

Community

Initiatives in the Rust community.

Posts

It's that time again! Time for us to take a look at who the Rust community is composed of, how the Rust project is doing, and how we can improve the Rust programming experience. The Rust Survey working group is pleased to announce our 2022 State of Rust Survey! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses, and establish development priorities for the future.

The Rust Foundation could not adequately support the Rust programming language and the maintainers developing the project without a strong focus on community health and collaboration. For this reason, we’ve been seeking to fill a significant role at the Foundation for several months.

Today, we’re thrilled to share that Sage Griffin has joined the Rust Foundation as our first Communities Advocate. Sage uses they/them pronouns.

It's that time again! Time for us to take a look at how the Rust project is doing, and what we should plan for the future. The Rust Community Team is pleased to announce our 2020 State of Rust Survey! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses and establish development priorities for the future. (If you'd like to give longer form feedback on the Rust roadmap, we're also collecting blog posts!)

After nearly 3 years and more than 3200 posts I'm going to slow down the posting frequency on Read Rust. I hope this will free up some spare time and make it easier to take breaks from social media. I aim to share all of the #rust2021 posts I can find, but after that I'll probably only share posts that seem particularly noteworthy or interesting.

Like so many conferences this year, RustConf 2020 was a purely virtual event. I’d already helped organize and attended The Perl Conference in the Cloud 2020 as a virtual conference earlier this year, so I knew it could work.

Rustconf 2020 happened last week (August 20th). For the first time, it was an online conference. Ironically that made it more difficult for me to attend because of timezones (and I was on vacation, so even less inclined to wake up at 4am). So I caught up with the talks earlier this week.

I’ll write some short summaries of some of the talks I think will be of interest to the TiKV community. I watched all the talks and I think that there were some great talks that I’m not writing up, that’s just because I have limited time and want to keep this post focussed. If you’re thinking of watching any of the talks, you definitely should!

The purpose of this post is to outline how I got involved with Rust open source projects with a specific emphasis on the "softer" aspects of open source contributions such as finding them and interacting with project maintainers.

open-source

A while back we announced that RustFest will happen this year as an online event. We called it RustFest Global and we want to live up to that name: RustFest Global will be a joint event by multiple teams across the globe, spanning multiple timezones. It’s still set for the weekend of 7th & 8th November. Read on for some details.

An aggregation of links that summarize RustConf 2020.

Steve Klabnik is a member of the Rust core team, an active open-source contributor, and author of The Rust Programming Language, Rails 4 in Action, and Designing Hypermedia APIs books. In 2012 and 2016, we invited Steve to speak at the RailsClub (now RubyRussia) conference. Since then, Steve has been working on Rust a lot, did a lot of interesting things and we realized that we should definitely interview him once again!

We sat down with Steve to hear from him first-hand about his professional activities at the moment, the design success of Rust, a little about the "full-stack" development hype, and overcoming burnouts.

In 2020 the way we can do events suddenly changed. In the past we had in-person events all around the world, with some major conferences throughout the year. With everything changed due to a global pandemic this won't be possible anymore. Nonetheless the Rust community found ways to continue with events in some form or another. With more and more events moving online they are getting more accessible to people no matter where they are.

Below you find updated information about Rust events in 2020.

You may be aware that Rust recently turned 5! If you read this blog, then you probably already know that the Rust project thrives because of its many contributors, and that we're always looking for ways to make it easier for people to get involved.

Today we are pleased to announce the Rust contributor survey. This short, anonymous survey should only take a few minutes to fill out, but it will really help us in understanding what kinds of problems people experience when contributing to Rust so that we can try to address them.

We released our second 'edition' of Rust at the end of 2018. Part of that release was a revamp of the Rust website. That work was completed on time, but there was some controversy when it was released, and the project itself was difficult and draining for those involved. This retrospective is an attempt to record the lessons learned from the project, and to put the project into context for those interested but not directly involved.

I always enjoyed contributing my free time towards open-source, whether that be a small PR to fix a typo in the documentation or spending an entire year maintaining and developing for a semi-obscure game.

That was where I originally heard about Rust - it was used for one of the internal tools that had to rely on fast concurrency, something that seemed like an almost perfect fit for Rust. I still remember my first time wondering what this "cargo" thing was.

Fast forward a few months and some real life business, I suddenly recalled that I wanted to learn more about Rust, and thus my learning journey began. After I was somewhat comfortable with the basics of the language, mostly thanks to the helpful folks of Serenity Discord, I thought I should give back to the wider community at least a little bit.

I came to know about Oxidize 1K, a remote-only conference on Embedded Rust development, through a twitter post. I was working from home, all the time getting inundated by morbid reports of Covid-19 taking over the world. It was a very long time since I had participated in any developer event, and I thought this was a good opportunity to jump in and immerse myself in something positive at least for a short period. And, I am glad I did it!

Vikrant Chaudhary is retiring from This Week in Rust. He joined This Week in Rust in June 2015 with issue 84 and has been part of Rust Community team since February 2018. We'd like to thank Vikrant for his stewardship of TWiR these past five years, and making TWiR one of the community's favourite newsletters. We wish him all the best in his future projects.

To keep my usual long-windedness from obscuring the point of this post, i’ll put the summary up front: I’m stepping down from my positions as lead of the Docs.rs Team, and member of the Rustdoc and Documentation Teams, and ceasing my contributions for the immediate future. The Docs.rs Team will be co-led by Pietro Albini (@pietroalbini) and Joshua Nelson (@jyn514). The Rustdoc Team continues to be led by Guillaume Gomez (@GuillaumeGomez), and the Docs Team by Steve Klabnik (@steveklabnik).

I'd like to give the folks in the Rust project a heads up that I'm going to be scaling back my involvement in the day-to-day of Rust. I'm not going anywhere in the near future, but after doing some internal reflection I think it's the right time to start formally stepping down from some explicit/implicit/defacto roles. There's more on the specifics of what this means at the end, but I'd like to indulge myself for a moment as well to wax a bit.

Following Niko Matsakis' announcement of the LLVM ICE-breaker group, I'm pleased to announce the Cleanup Crew ICE-breaker group. It follows the same principle, if you know Rust and would like to contribute to rustc -- but without knowing about the compiler or taking on a large commitment -- then the Cleanup Crew ICE-breaker group might well be for you!

A new decade has started, and we are excited about the Rust conferences coming up. Each conference is an opportunity to learn about Rust, share your knowledge, and to have a good time with your fellow Rustaceans. Read on to learn more about the events we know about so far.

Lately there has been considerable drama around Actix-web, for which I’ll point to Steve Klabnik’s A sad day for Rust to explain. This post is an opportunity to share some thoughts I’ve had about soundness, Rust, and open source community.

soundness

actix-web is dead.

This situation is bad, from all sides. When Rust was a tiny, tiny community, I thought to myself, “wow, I wonder how long this will last? Probably 1.0 will kill it.” Sort of playing off of Eternal September, I assumed that over time, the community would grow, and we’d encounter problems.

Today is the first day where I say to myself, okay, has that happened?

In my #rust2020 blog post, I mentioned rather off-handedly that I think the time has come for us to talk about forming a Rust foundation. I wanted to come back to this topic and talk in more detail about what I think a Rust foundation might look like. And, since I don’t claim to have the final answer to that question by any means, I’d also like to talk about how I think we should have this conversation going forward.

I want to write about an idea that Josh Triplett and I have been iterating on to revamp the lang team RFC process. I have written a draft of an RFC already, but this blog post aims to introduce the idea and some of the motivations. The key idea of the RFC is formalize the steps leading up to an RFC, as well as to capture the lang team operations around project groups. The hope is that, if this process works well, it can apply to teams beyond the lang team as well.

It has been a couple of days since the curtains closed on RustFest - given that I am roaming around the region, I might as well leverage my time on Catalan trains to collect my thoughts on the whole event in a digestible format.

Hello everyone, the governance working group has been working a few efforts, but we haven't made as much progress as we would have liked over the past few months, so we are going to try out a new process and meeting agenda aimed at trying to get more work done in the time we know we have.

Today we released Rustlings 2.0. There's some interesting things in this release: Exercises are now indexed by name, not by file name, rustlings watch will now require the user to delete a comment called // I AM NOT DONE to proceed, There is a new way to interact with hints, and Rustlings now self-checks for the existence of rustc before running.

I wrote down some rough thoughts on the RustConf keynote together with Steve Klabnik on my personal snippet space. Had we gone with our initial idea for it, it would maybe have been more "reflective", but also a disservice to many.

I would like to write about my gratitude to each person who was involved in Rust.Tokyo, and my thoughts about Rust.Tokyo.

For open source projects, it can be difficult to find balance between a number of factors: the free time of contributors, the desires of the communities using the project, the ability to on-ramp and mentor new contributors, and to provide necessary guidance and feedback. To address these needs, I'd like to propose a general concept and approach called Shepherding, which aims to assist maintainers of these projects with this aspect of managing the project.

This blog post is the textual version of the talk it was written to prepare for. The content should be essentially the same, though with less stumbling over my own words, less silly hand gestures, and less crying. Please Enjoy.

Are you a new Rustacean trying to take your first steps into Rust’s open source community? Are you trying to meet people in the Rust community but don’t know where to start? Are you a maintainer interested in attracting new contributors? Then have I got the talk for you!

I would like to describe an idea that’s been kicking around in my head. I’m calling this idea “shepherds 3.0” – the 3.0 is to distinguish it from the other places we’ve used the term in the past. This proposal actually supplants both of the previous uses of the term, replacing them with what I believe to be a preferred alternative (more on that later).

Rust in Large Organizations. Initially taken by Niko Matsakis and lightly edited by Ryan Levick. Agenda: Introductions, Cargo inside large build systems, FFI, Foundations and financial support.

I am glad to announce that the Traditional Chinese (正體中文) version of the Rust official website has been launched. Thanks to all contributors in the community. This article records our experience to achieve the work.

timetill.rs is a community project focused on highlighting all the Rust conferences around the world. Timetill.rs is an open project that anyone in the community can contribute to.

rust-analyzer is an experimental compiler frontend for the Rust programming language. The ultimate goal for this project is to provide the perfect IDE experience for Rust, with all IDE features working flawlessly while editing code. This post talks about what happened to rust-analyzer in between the all-hands and today, discusses future plans, and also announces the rust-analyzer Open Collective.

The Release team is pleased to announce the triage working group , which will assume responsibility from the release team for triaging issues and pull requests in the rust-lang repositories as well as for diagnosing failures in Crater runs.

Hey all! Today we're happy to announce the Governance Working Group is going public. We've been spending the last couple weeks finding our bearings and structuring the working group.

We're excited for the 2019 conference season, which we're actually late in writing up. Some incredible events have already happened! Read on to learn more about all the events occurring around the world, past and future.

This is less a specific roadmap and more of a rough braindump of where I think the project currently stands and where I would personally like it to head in 2019 and beyond. With that, let's get started: The main thing I would like to focus on this year is clearing community debt. I don't actually know what you would call this, but it's sort of like technical debt, just manifested within communities.

About RustCon Asia 2019:There was definitely a little bit of everything for everyone attended. It was heartwarming to see people enjoying their experience from talks and at the same time meeting new and old friends. The portion of the attendees was just beginning with Rust benefited from talks such as Olivia’s RustBridge for beginners, Nick’s thinking in Rust and Alex’s How to learn Rust efficiently.

The Rust community currently appears to reconfigure its design process. There is some discussion around RFCs. A topic that comes up is shared summaries. I think this is a great idea and want to share my 2¢ here.

One of the challenges I see with how we often do design is that this “solution space” is actually quite implicit. We are exploring it through comments, but each comment is only tracing out one path through the terrain. I wanted to see if we could try to represent the solution space explicitly. This post is a kind of “experience report” on one such experiment, what I am calling a collaborative summary document (in contrast to the more standard summary comment that we often do).

In the talk I gave at Rust LATAM, I said that the Rust project has always emphasized finding the best solution, rather than winning the argument. I think this is one of our deepest values. It’s also one of the hardest for us to uphold.

Let’s face it – when you’re having a conversation, it’s easy to get attached to specific proposals. It’s easy to have those proposals change from “Option A” vs “Option B” to “my option” and “their option”. Once this happens, it can be very hard to let them “win” – even if you know that both options are quite reasonable.

This is a problem I’ve been thinking a lot about lately. So I wanted to start an irregular series of blog posts entitled “Adventures in consensus”, or AiC for short. These posts are my way of exploring the topic, and hopefully getting some feedback from all of you while I’m at it.

This first post dives into what a phrase like “finding the best solution” even means (is there a best?) as well as the mechanics of how one might go about deciding if you really have the “best” solution. Along the way, we’ll see a few places where I think our current process could do better.

It’s been more than 6 years since my first commit to Ruby on Rails. I had just gotten my first full time Ruby position, was excited to move away from PHP, and wanted to give back. Since then I made 1452 commits to the project. Today, I am finally ready to move on from Rails.

I’m very excited to announce the formation of the Governance working group, an offspring of the Core team. The high-level goal of the group is making the workings of the Rust project more predictable and transparent. The working group will examine, document, and propose improvements to some of the policies and procedures that we use to run the project. To that end, the Governance WG will take multiple viewpoints and investigate our current modes of working under the perspective of community members and project members alike. Our aim is to make the project more transparent and also make it easier for interested community members to give effective feedback and stay close to the project.

I started working at 15, when I took a job as a pizza cook. Over the next seven years, I moved up the ranks, to a driver, shift manager, and then as part of the “new store opening team.” The franchise was growing, and we needed to help new franchisees open their new stores. I’d travel to where the new store was a week before they would open, help train the new staff, and then work their opening weekend. It was really fulfilling work; if pizza paid as well as tech, I’d seriously consider doing it forever.

Just released: the hot new single “Ferris Crab (Rust Raps 2018 Edition)” by Rusta Rhymes off their upcoming debut album impl Drop for Mic {}.

One thing I learned from Aaron Turon is to search for positive-sum games. First what does that even mean? In most arguments you may run into, it will be easy to find a zero-sum game: Your win is my loss and vice versa. However, in many situations, it is actually possible to go above those petty games and find a variant that allows us both to win.

A couple of weeks ago we had the fourth GNOME+Rust hackfest, this time in Thessaloniki, Greece. We held the hackfest at the CoHo coworking space, a small, cozy office between the University and the sea. Every such hackfest I am overwhelmed by the kind hackers who work on [gnome-class], the code generator for GObject implementations in Rust.

Less than 2 weeks ago, I was working on improving the integration of Rust with GNOME libraries at the fourth Hackfest, which happened this time in Thessaloniki.

I recently had the privilege of participating the Increasing Rust’s Reach(IRR) program. The program aims to grow Rust’s community of project collaborators and leaders. Increasing Rust’s Reach brings together Rust team members and individuals who are underrepresented in Rust’s community and the tech industry for a partnership of three (3) months, from mid-May to mid-August. Each partnership agrees to a commitment of 3–5 hours per week working on a Rust Project.

I've posted 718 articles to Read Rust. This post shares some insights I've gleaned from them, to make your posts as readable and discoverable as possible.

Since I’m co-organizing the Rhein-Main Rust meetup (and am probably the main driving force behind it), I tought, it might be useful to share a few ideas we have that we have either already done, or plan doing – perhaps other meetup organizers can benefit from this. Note that our meetups usually run 2-4 hours, but some attendees may have to join late or leave early so the format has to take this into account.

I’m at a fork again: my FOSS project responsibilities have grown so much that they encroach on other parts of my life. This includes time I should spend with company, clients and personal live. It leaves me with two options: shed many of my projects (as mxsash does) or find ways of making this more sustainable. Retreating would also mean that on the surviving projects, others would have to cover the resulting gap, often with less skills or experience.

I wanted to take a very quick peak at Rust. It's very different from our previous cases, no application or frameworks in the traditional sense but a language. It seems very popular toward developers using it, I'm personally interested in it hence why it is in that post.

This year's class of Increasing Rust's Reach participants span 9 timezones and 11 countries. 64% are non-native English speakers, and the group, as a whole, represents fluency in 14+ languages. We're super excited to welcome them to the Rust community!

In this this post in the listening and trust series, I’m going to talk through one of the most intense discussions the Rust community has had: the module system changes that were part of last year’s ergonomics initiative.

There were some heated discussions in Rust community as of late. During that discussions, I argued that some best practices for RFC authors would improve both on the results as well as the discussions and I promised to give it a try.

This page is a first attempt at facilitating sponsorship. This is not an officially endorsed list, but it is a list of Rustaceans that I have personally vetted and sponsored, and encourage you to support. Each of them has a long, public history of impactful work in the community.

In the previous post in this series, I recounted an early lesson for the Rust Core Team about working in the open. In this post, I want to talk about the delicate interplay between listening and trust when doing design in the open.

With #RustReach starting soon I have ran into a few "My Rust Story" posts. My path to Rust certainly is not typical (I studied HR Management in undergrad…).

The journey really started for me back in middle/high school as I was very interested in video games, computers, and how things worked. So with a few friends started a computer repair "business" that serviced the local (Western Pennsylvania) area. By the time my sophomore year of highschool rolled around we had lined up a few of the parents who owned local businesses/churches and were doing some pretty serious consulting/maintenance for our ages (also installing Halo and Half-life 2: Deathmatch on the school's servers...).

For me, most weeks working on Rust are fun — exhilarating, even. But, just like with anything else, some weeks are hard.

As this week draws to a close, I feel troubled. On the one hand, things are looking strong for the 2018 Edition (which I want to write more about soon). But on the other hand, this week I locked two RFC threads, flagged a bunch of comments for moderation, and generally absorbed a lot of emotion from a lot of different quarters of the community. There’s a sense of simmering distrust.

Ownership is a fundamental piece of Rust’s story. It amounts to a tight set of rules about who owns a value in a program, how that value can be aliased and mutated, and when that value is dropped. It prevents shared mutable state, which is the root cause of major bugs in software written without the same guarantees.

In this post I’d like to talk about a different kind ownership in though. I’d like to talk about ownership of libraries in the Rust ecosystem and the problem of sustainable maintainership.

There’s currently a campaign around the #RustReach program where it’s people post their, uh, Rust “origin stories”, so to say. Mine is not nearly as long as some other peoples’, but I thought I’d try my hand at this regardless.

The #rustreach project is apparently asking people how they got into Rust, and though I wasn’t asked in person, I thought it may be useful to write down my personal Rust story. Here goes nothing.

I first heard about Outreachy from my coach last year when I was applying for Rails Girls Summer of Code (RGSoC). Although we didn’t make through RGSoC at that time, I learned a lot about how Open Source works; whether it was about learning intricacies of Git, building patience to figure out a bug among thousands of lines of code, or becoming a programmer with better problem-solving and communication skills.

The “Increasing Rust’s Reach” projects are kicking off! With it, the Community Team is asking for people to describe how they contribute to Rust, to demonstrate the breadth of talent and perspective in the community. So here’s my personal Rust story!

I have the great pleasure and privilege this year to be one of the mentors for Increasing Rust's Reach. I'll be working with Sarah and nano on WebAssembly and I'm really excited to see what we accomplish over the next few months. Even after our first meeting I just know they're gonna do some great things. Over the coming months I'll be documenting their progress, but to kick things off the Rust Community team is asking people to describe their story and how they contribute to Rust, to show off the variety and breadth of our experiences and talent in a wide variety of areas. This is my story.

So why Rust? After all, using languages like Ruby, Go, or JavaScript, I could have written numerous full stack applications at this point. Why worry about types and ownership and all that nonsense?

Well in Rust, there are certain safety guarantees… yes, you know, the typical spiel. That may have been enough to interest me in rust, but it was not the reason I decided to stick with it — ultimately what drew me in was the community.

Last week was the third edition of the Rust+GNOME hackfest. What about talking a bit about what we achieved? The goals of this edition were: Improve gnome-class, improve gtk-rs continuous integration process, improve gtk-rs crates bindings. I'm happy to say that we were able to achieve all of these goals!

Hacking on gnome-class continues apace! Philippe updated our dependencies. Alberto made the syntax for per-instance private structsmore ergonomic, and then made that code nice and compact. Martin improved our conversion from CamelCase to snake_case for code generation. Daniel added initial support for GObject properties. This is not finished...;

I'm in Madrid since Monday, at the third GNOME+Rust hackfest! The OpenShine folks are kindly letting us use their offices, on the seventh floor of a building by the Cuatro Caminos roundabout.

I am very, very thankful that this time everyone seems to be working on developing gnome-class. It's a difficult project for me, and more brainpower is definitely welcome — all the indirection, type conversion, GObject obscurity, and procedural macro shenanigans definitely take a toll on oneself.

The Rust team is happy to announce that we’re running our Increasing Rust’s Reach program again this year. Increasing Rust’s Reach is one of several programs run by the project to grow Rust’s community of project collaborators and leaders.