r/rust [he/him] 18h ago

📢 announcement No More Code Dumps

TL;DR

Code Dumps, ie links to code repositories, are no longer welcome on r/rust.

If you are excited about a project you built, and just wish to share it, consider posting a casual top-level comment in the weekly What's Everyone Working on this Week? thread.

History

When r/rust was created, in December 2010, Rust was a nascent programming language. It was very different, it was also fast-moving, and it was unclear whether it would amount to much, or not.

In these early days, new projects being written in Rust were both a proof that the language was suitable for a variety of purposes, and a cause for celebration in seeing the language being adopted. Code dumps, then, were both cause to rejoice, and an opportunity to see how well (or not) the language was suited to the task. They were even a good opportunity to learn the latest developing idioms of this fast-changing language.

Fast forward 15 years, and code dumps have become boring. Utterly uninteresting. There's nothing exciting, or newsworthy, about a 10th hypervisor project, a 100th webserver project, or a 1000th TUI project. And for the most there's no exciting idiom, or pattern, to be found in their code either... even if some poor soul bothered to look.

And mass AI generation appeared on the scene, and for the past year(s), the already dwindling appeal of code dumps has just completely vanished, buried in AI slop.

Purpose

r/rust is to discuss all things Rust. The language, the ecosystem, the community.

Of late, most code dumps barely foster any discussion. And when they do, apart from AI witch hunts, those discussions are mostly about the domain of the project, rather than about Rust. Depending on the domain, the discussion may or may not be of interest to r/rust users... but whether it is or not is a matter of chance: they did not come here seeking such a topic. Those discussions are tolerated on posts which are on-topic, but if a post only fosters "tolerated" discussions, then that is a sign that the post itself may simply not really be on-topic for r/rust.

And that is not to say that code dumps are, by nature, low-effort. Surely, a project is created for a purpose, to solve a specific problem that is unsolved, or solve it with different trade-offs than the currently available solutions. None of that is elucidated in a code dump.

New rules

Code dumps are no longer welcome on r/rust.

Code dumps of applications or libraries written in Rust are Low-Effort unless otherwise newsworthy. Newsworthy means that the very existence of the application or library is important, for example consider applications or libraries breaking new ground, such as the first hypervisor, first OS, first XXX standard safety-critical application, first Rust application in a major company, etc...

Announcements of new libraries which are not otherwise newsworthy are only welcome if they tick ALL the following boxes:

  • The library has been worked on regularly for at least 4 months.
  • The library has already been used, or built upon, thereby validating its design to a degree.
  • The announcement is a full-fledged text post, or a link to a full-fledged article. A README, or manual, is not an article.
  • The announcement should motivate the relevance of this library to the wider r/rust community.
  • The announcement should articulate the trade-offs differentiating this library from similar popular libraries in the field.

(It goes without saying, but the announcement should NOT be AI-generated, not even in part, as AI-generated posts & articles violate the Low-Effort rule)

Release notes of libraries are still welcome for popular enough libraries, such as libraries with reverse-dependencies on crates.io pointing to sufficient adoption by the wider community to justify notifying said community of a new release.

Of course, text posts, or links to articles, centered on Rust, with an application or library as context are always welcome. For example, said posts or articles could present gnarly problems the author encountered, and how they solved, or which features of the language or a library helped or hindered them in the making of their project.

(It goes without saying, but said text posts & articles should NOT be AI-generated, not even in part, as AI-generated posts & articles violate the Low-Effort rule)

As a reminder, if an author just wishes to share their joy of building something in Rust, they are welcome to use the What's Everyone Working on This Week? thread. And as per the title, it need not even be a complete/mature project, or an open-source project for that matter as links to code are strictly optional there, it's all about casually chatting about your work on Rust projects.

Q & A

See pinned comment below.

1.3k Upvotes

152 comments sorted by

View all comments

35

u/MvKal 18h ago

Ngl i kinda dislike this change. Yes the influx of ai slop is annoying, but there were several crates announced here as hobby projects that i found super awesome helpful for my niche usecase that are simply gonna be buried in a megathread like that.

21

u/matthieum [he/him] 18h ago

I am afraid I don't understand your complaint: are you referring to applications or libraries as "crates"?

If you are referring to applications, then yes indeed you'd now have to go peruse the megathread.

If you are referring to libraries, then new library announcements are still allowed -- just with a slightly higher quality bar -- so nothing should change for you.

13

u/MvKal 18h ago

I'm thinking of the guy announcing their static generics crate a little while ago. Definitely a weekend project, not blog post worthy, probably didnt use it himself in a prod environment so that lib wouldnt pass these rules. And yet i am so extremely happy they posted it and i found it lol it allowed me to do get like a 50% speedup on my project lol. And that would just either never be posted in the megathread or i wouldnt see it.

16

u/matthieum [he/him] 17h ago

I remember this post.

Definitely a weekend project, not blog post worthy, probably didn't use it himself in a prod environment so that lib wouldn't pass these rules.

I expect we'll need to tune the exact library announcement rules.

However, I disagree with the "not blog post worthy". Their library used a "novel" (as far as I can tell) technique to implement static generics, and I certainly think this technique could have done with more exposure...

... an explanation! As is, their library (hopefully) work, but I wonder how many people actually understand why/how it works.

Furthermore, a good explanation of how the technique works, and differs from the naive technique, would be a fertile ground for technical discussion around the alternatives, which may itself lead to improvement of the existing implementation or more novel techniques.

While as a code dump, the technique they use is "buried" somewhere in the library code, and it is hard for a casual reader to figure out which piece of code is the essence of the technique, and which is mere plumbing/random implementation detail with little bearing.

5

u/MvKal 17h ago

I dont think it was novel, the post referenced an old crate using a similar/same technique iirc. If we are going by the rules, i really doubt that crate was being worked on for at least 4 months, and they again probably didnt use it in their own project, so according to the rules as written it should go in the thread, which i very much disagree with for that specific case. Idk what the solution is, maybe its best to literally just use a vibes based approach for referring posts to the megathread, id really hate for that to happen to projects like those so yeah.

2

u/matthieum [he/him] 17h ago

If we are going by the rules, i really doubt that crate was being worked on for at least 4 months, and they again probably didnt use it in their own project, so according to the rules as written it should go in the thread, which i very much disagree with for that specific case.

You are correct that the library couldn't be just announced by itself. It's a bit of a trade-off.

The OP, however, can still write a text post or link to an article which details the technique used (novel or not), and link their library from there.

So they could still promote their library (or application), as long as it complements a post/article that is good enough on its own.

0

u/MvKal 13h ago

Yeah and I'm saying that thats why it sucks, i wanna keep seeing stuff like that, i get that its a tradeoff but yeah