back to main page

this is a bit of a continuation of today's earlier self, technology two.

rust, the language, is a great thing. rust, the ecosystem, is a completely horrific mess and i want to kill it with fire. the way that dependencies work in rust is such that you end up with tiny projects that do nothing taking almost an hour to compile. that is completely ridiculous and the amount of privilege it radiates makes me murdery just from writing about it here.

most things i have written in rust compile in a minute or two because for some reason i am one of the what feels like five people who actually give a single shit about dependency graph length and thereby compile performance. the worst part is that this infestation is so deeply engrained into the most basic libraries that i have to basically write my own stdlib because rust's one is too cowardly to do anything at all and the libraries are written by a mixture of morons and people who have given up or are so privileged they dont even notice that this shit matters because theyve had a top of the line 48 core computer for the last few years.

furthermore, there are some people who realllllllly want the ecosystem to stay dependent on their libraries, which have somehow gotten into the high ranks of the language so now they can prevent their libraries from being obsoleted. there are also no standarized apis for most of this shit so even if there were alternatives, youd somehow have to convince everyone to switch before you can use them, unless you want to use no libraries at all.

a webserver depends on a specific async library. want to write a web app thats async? you need that specific async library then. it also depends on a bunch of other shit that is kinda poorly made and kinda made by an asshole but the entirety of crates.io depends on it so i guess were not changing it. your web server now pulls in about 300 crates.

i wrote a different web server. i wrote a crate for it. my projects that use this web server i wrote have a dependency tree of 1. it has one dependency, and that dependency has no dependencies. i wrote a locking library too. it has a dependency tree of 0. it depends on nothing except std. similar crates that do exactly the same thing tend to have a dependency tree of five. why? because they dont give a shit about you and your peasant computer. go fuck yourself. you dont DESERVE to compile their software. go buy a better life.