Lib.rs has previously been editorializing the crates within the search algorithm on their site based on their own personal preference. However, they recently have taken it a step too far in labeling the bitcoin
repo as unmaintained despite active development taking place for the past several years. Several others have also taken similar actions.
While I share the sentiments about cryptocurrency being a solution that is in search for a problem - libs should not editorialize the contents while still claiming to be “more complete and accurate crate information than crates.io”
Today the came for cryptocurrency, if we don’t speak up - tomorrow they will come for monads and other category theory goodies.
Removed by mod
-
https://crates.io/search?q=git (finds dead placeholder, no git2 in sight) vs https://lib.rs/search?q=git (finds git2 first)
-
https://crates.io/search?q=option (dead placeholder again, and every crate that contains “at your option” in license) vs https://lib.rs/search?q=option (finds
Option
helpers and cli parsers) -
https://crates.io/search?q=database vs https://lib.rs/search?q=database
-
https://crates.io/search?q=error (7-year-old crate, podcast-api!?) vs https://lib.rs/search?q=error (anyhow + thiserror first)
-
https://crates.io/search?q=sedre (typo) vs https://lib.rs/search?q=sedre (did you mean serde?)
crates.io is fine when you know the name of the crate you want (navigation searches), but is full of noise for broader queries. It doesn’t eliminate namesquatted garbage nor obsolete crates. It searches all text including tangential boilerplate. It shows fewer results per page. OTOH lib.rs filters out the noise. It also understands words with multiple meanings and ensures all meanings are included (e.g. search for “http” knows to include “http client” and “http server” and asks you to clarify which meaning you wanted).
-
Today the came for cryptocurrency, if we don’t speak up - tomorrow they will come for monads and other category theory goodies.
To defend a scam technology like cryptocurrencies with a line that was originally about people being shipped off to concentration camps is disgusting.
Not the first time this has happened. Notable crate author burntsushi (you know, the one who wrote the regex crate) requested for all of their crates to be removed months ago.
Frankly, I think it’s deserved. It really bugs me when people start suggesting lib.rs as an alternative, because it’s really not that much better than crates.io and it has the downside of the results being biased.
Interesting, I haven’t had that same experience, although I confess I haven’t used lib.rs much in the last year or so (basically since all of the original drama with crypto stuff). But I’ve never had many problems with crates.io’s search results.
Do you have any examples of lib.rs search finding useful crates that crates.io does not find?
The crate in question, if anyone else is curious: https://lib.rs/crates/bitcoin
I couldn’t find it by searching
bitcoin
, which makes me wonder if it’s also deranked somehowI think the results don’t include deprecated crates, so the deprecation mark effectively deranks it.
When I searched “bitcoin”, I found the bitcoin crate, but I had to scroll down a bit.
Oh, you’re right. I see it as the 26th result, down below the “try searching with duckduckgo or on crates.io” notice.
the
cryptocurrency
category page is pretty interesting as well https://lib.rs/cryptography/cryptocurrencies, I was just looking formonero
and found this😂 kind of true I guess
lib.rs author here.
The visible deprecation label was unintentional. I agree that labelling an actively maintained crate as unmaintained is wrong, regardless of what the crate is for. If I wanted to mess with the bitcoin page, there are plenty of true negative things that I could have said about bitcoin, and you know I wouldn’t be shy about it.
I do think that use of bitcoin during a climate crisis and an energy crisis is immoral. Bitcoin is like a button that gives you $1000 now, but kills someone else in the future. This is not something that deserves polite acceptance. Seriously, I beg you at least switch to proof-of-stake schemes if you must.
However, in this particular case I did not mean to label it as unmaintained, since that’s plainly incorrect. You’re right to be upset, and right to be suspicious about the incorrect label given my reputation as cryptocurrency hater. However, I’m still disappointed that the community reaction was immediate pitchforks and burn-the-site-down pile-on, followed by even more scrutiny and viewing my smallest actions in the worst possible light. Couldn’t you first ask if it was meant like this and wait for my response?
I’ve meant to downrank all crates using the bitcoin crate. Downranking of them is IMHO a fair game, since bitcoin-dependent crates are not relevant to my intended target audience.
Apart from that, I’ve also got some feedback that it’s not acceptable to change or augment any crate metadata at all. The site does change crate data en masse, but when it works right this is a feature. For example, it guesses categories when they’re missing or are likely invalid (everyone gets the “parsing” category wrong). The site has a ranking algorithm, which IMHO makes its search really helpful, noticeably better than crates.io’s. But by necessity it includes many ranking signals, which are imperfect, and the choice of the signals is inherently subjective (e.g. just sorting by downloads would be more transparent, but it’s still just a different subjective choice, and has its own downsides).
I’m open to feedback how to make it clearer that the site is unofficial, opinionated, and a mashup of data sources and heuristics. I don’t think there’s a point of running lib.rs without the data cleanups or ranking. This would reduce it to only mere redundant duplicate of crates.io. I want to make something clearly better, beyond what pure crates.io can do.
But there are 120K crates and growing, so this is a hard task. If I’m going to get a load crap for every buggy boolean, I don’t want to run the site. It exists for the community, and if the community thinks I’m a villain, then why should I bother.
Disclaimer: I love the lib.rs search and general UI. I don’t like crypto currencies.
I think the way to avoid drama is to be very clear and transparent in communication. In this case I think a way to do this would be to label data that lib.rs synthesised. Maybe a asterix next to corrected categories that on mouse over (long press on phones) says something like “inferred by lib.rs due to missing data”? Exact wording could certainly be improved, and might differ on context. Perhaps the synthesised data could be a different colour as well to stand out.
Having a list of packages that were filtered out might also help. Here I’m thinking a simple text file (set to not be indexed in robots.txt) with all the package names that have filtered along with the reason listed (e.g. “auto detected name squat”). Anyone interested could download the file and take a look, as well as contact you for corrections.
Ranking algorithms is harder to be transparent about (and it is not my field of expertise), so I can’t offer any advise here. Perhaps nothing is needed?