I haven't used either (yet). But as someone who wants to move away from JSON as a configuration format, ron doesn't, for me, offer much of a value proposition. And it's too tied to serde IMHO.
I also like KDL's optional type annotations (yes, I'm crazy that way.).
May I suggest you try to learn how to use the rust toolchain directly first?
The error message looks informative to me. What part of this line did you not get?
either src/lib.rs, src/main.rs, a [lib] section, or [[bin]] section must be present
I think you're tying yourself too close to VSCode. Reading this Cargo guide is a minimal requirement. And you should learn how to use cargo (the command), at least for basic operations. This is not hard. If anything, it's much simpler than those bloated and opaque editor/IDE setups.
I don't know, and I don't want to get personal. But that's usually a sign of someone who doesn't even code (at non-trivial levels at least), and thinks programming languages are like sport clubs, developers are like players contracted to play for one and only one club, and every person in the internet gantry need to, for some reason, pick one club (and one club only) to be a fanboy of. Some people even center their whole personality around such fanboyism, and maybe even venture into fanaticism.
So each X vs Y language discussion in the mind of such a person is a pre-game or a pre-season discussion, where the game or season is an imaginary competition such people fully concoct in their minds, a competition that X or Y will eventually and decidedly "win".
Maybe that was an exaggeration on my part. Some junior developers probably fall into these traps too, although one might expect, or maybe hope, that their view wouldn't be that detached from reality.
I'm hoping to finally finish and send out a delayed new release for one of my older and mature CLI tools this weekend. It's written in C btw 😄
I hope that someone in the 40 comments i don't have time to read right now has pointed out that the premise of OP is flawed for the simple reason that Rust hit v1.0 in 2015, while Zig is still nowhere near that milestone in 2024.
So we are not even talking about the same "future" period from the start.
So, no need to get to the second false premise in OP, which is limiting a "future" period to one successful dominating language only. Nor is there a need to go beyond these premises and discuss actual language details/features.
Not only that. We don't just "inject" raw strings with the syn/quote duality. Stringified or not, the token tree will be parse-checked into the expected syn type before being used in generated code.
So the distinction is both wrong and irrelevant. This is what I meant by wrong on multiple levels/layers 😉
Maybe a good idea for a post. But the amount of reaches required makes this icky.
Pretending people write:
rust
let Ok(x) = read_input() else { return Err(Error) };
instead of
rust
let x = read_input().map_err(|_| ...)?;
Pretending people write:
rust
const x: &str = "...";
instead of
rust
const X: &str = "...";
Pretending there exist people who have such knowledge of rust macros hygiene, ident namespaces, etc, but somehow don't know about how macro code expands (the "shock" about the compile error).
Maybe there is a reason after all why almost no one (maybe no one, period) was ever in that situation.
Bringing vimperator/pentadactyl back! That would be the dream.
Anyway, last time I tested it (~3 weeks ago), servo was not very usable still with the few websites I tried. Hopefully it gets, at least partway, there in a few months.
The best "support" you can get is support from upstreams directly (I'm involved in both sides of that equation). But upstreams will often only "support" you when you 1. run the latest stable version 2. the upstream source code wasn't patched willy-nilly by the packager (your distro).
So the best desktop linux experience comes with using rolling distro that gives you such packages, with Arch being the most prominent example.
The acquired knowledge that argues stability and tells you otherwise is a meme.
Some shallow observations without really getting into the code:
misc
labeler/ResNet50_nsfw_model.pthin the repository really necessary?(I like my
--filter=tree:0clones to be maximally fast and small.)rsky-cryptoanyhowin library code.multibasedependency much either. I know thatbase64at least got re-written since that crate's last update (Nov 6, 2020).rsky-feedgenserde_cboris long dead (I was a user myself).serde_cborandserde_ipld_dagcborare dependencies anyway.lazy_statictoonce_cella long time ago. And your use is available in std on stable Rust today.rsky-firehose$CURRENT_YEARis meh anyway. But I guess that comes from IPLD.rsky-identityanyhowin library code.rsky-pds*base*dependencies does one need? All of them of course!rsky-syntaxlazy_staticandanyhowagain.That's all from a code organization and ecosystem PoV. Otherwise, things look normal and not fancy (which is good).
Unfortunately, I don't have the time to look beyond that at this moment.