frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

A Rust Documentation Ecosystem Review

https://www.harudagondi.space/blog/rust-documentation-ecosystem-review/
94•hyperbrainer•8mo ago

Comments

theletterf•8mo ago
This is a nice analysis of Rust documentation, but I find the continued emphasis on content types disappointing. I think docs should shift from what to write to what are the needs of users of the docs are. Then you can think of content types. If you don't, you just end up checking boxed just cause.

https://news.ycombinator.com/item?id=42645075

adolph•8mo ago
Yeah, that’s a generous sentiment until you are trying to pull docs for a particular version of VAFileman from a .zoo archive . . .
shepmaster•8mo ago
SNAFU author here, thanks for including my crate! I’ll try to give your review a thorough read through later and incorporate feedback that makes sense.

I do have https://diataxis.fr/ and related stuff open in another tab and keep meaning to figure out how to best apply it for SNAFU.

Out of curiosity, do you recall if you also read the top-level docs[1]? That’s intended to be the main introduction, I actually don’t expect most people to read the user’s guide, unfortunately.

[1]: https://docs.rs/snafu/latest/snafu/index.html

LtdJorge•8mo ago
I see you every time I open Stack Overflow :D
hyperbrainer•8mo ago
To be clear, this is not my review. I just found it very interesting and relevant to my own work.
airstrike•8mo ago
Great article. I deeply appreciate the work that went into it.

I struggle with navigating most crates on docs.rs. It just doesn't have the things I want it to have, it's hard to quickly jump around definitions... 9/10 times I end up just cloning the repo and browsing through the code on vscode. I wish docs.rs was more like that experience but with nicely rendered docs to go along them.

Also, as the resident diehard iced fan, I think the section on that library is pretty fair and I appreciate that. There's definitely room for improving existing docs by fleshing out some of the descriptions in modules and functions.

Having said that, I do think the focus on `iced::application` and `Element` misses the forest for the trees a little bit, because those are some of the most generic parts of an iced application—`iced` is more about the plumbing between things than it is about those things themselves, if that makes sense. In other words, it's not super useful to talk about what `Element` is. It's just a generic widget. How it makes widgets generic is less relevant to the user, and certainly for beginners. It's better to talk about how it is used.

The same goes for `iced::application` and its signature. It's honestly a ridiculously elegant design that hides away all the complexity needed to make this possible:

    pub fn main() -> iced::Result {
        iced::application(MyApp::default, MyApp::update, MyApp::view).run()
    }
If that isn't the cleanest way to initialize an application, I don't know what is.[1]

Again, it's better to talk about how those things are used than it is to talk about their specific implementation. And to that end, the docs include a "pocket guide" at the very index of the crate, which covers how those concepts fit together. The author addresses this in this paragraph, but I feel it also doesn't give it enough credit:

> The rest of the crate root’s docs consists of snippets for each concept of the crate and how to start using them. They aren’t an exhaustive explanation of these concepts, but they’re a great venue for discovering what iced has to offer here in terms of API. And wow there’s a lot of concepts here.

If you're starting with the library, I encourage you to go through the pocket guide and the examples to learn more. Alt-tabbing between the two should give you lots of opportunity to understand the many concepts and how they fit together.

[1] The arguments are totally generic, so `MyApp::default` could be `MyApp::new` if you wanted or any other function that returns some instance of `MyApp` -- and which can _also_ return `(MyApp, Task)` -- i.e. your app and some task to run at initializing. That flexibility makes for very ergonomic code, and you don't have to worry about how it achieves that. Also note `Application` has uses the builder pattern, so you could just call `.title(App::title)` on it to set the title... and the argument there is, as you might have guessed, generic again. You could call `.title("My title")` and it would also work. That's beautifully designed.

schneems•8mo ago
As a crate author a thing I don’t like is that rustdocs are not easily sharable even though the same code might be used in a function, module and readme doc.

I took a stab at a JINJA based rustdoc templating solution: https://docs.rs/drydoc/latest/drydoc/. It’s not “done” but I think the idea holds promise. Anything else like this that you’ve seen? My other option is to use include_str macro.

airstrike•8mo ago
Thanks for sharing and good luck on your project. I think better docs is a worthwhile idea overall and although the implementation details may vary, a template solution could appeal to some people.

Separately, I find it disheartening that people come into this thread with some bone to pick against Rust and just downvote everything they see without adding anything to the conversation. Part of me feels that a downvote should require a reply for this reason.

flysand7•8mo ago
There's no downvote button for me, I had no idea HN had downvotes
schneems•8mo ago
FWIW I’ve got one. You need over 1k karma I think (or maybe it is based on some other metric).

A post with more downvotes than upvotes will show up as grey for me too.

LtdJorge•8mo ago
The grey part is for everyone. Flagged posts show an even lighter grey, IIRC.
schneems•8mo ago
Thanks! I’m less soliciting for people to use this specific solution and almost sharing aloud hoping someone will say “duh use crate X”

Thanks for the concern over votes. I think your comment turned the tides, I’m at +1 now.

Overall Rust has the best doc eco system of any lang I’ve used. I wish more communities stole from rust. The most useful part of any doc is an example and rustdoc makes it really easy to write one and keep it from doc-rotting. My particular pain is for an author who aims to go above and beyond.

Specifically I was thinking of the winnow tutorial when writing this crate. The return type example is straight from what I would like to be able to toggle on/off in their docs.

I also have a more mature library for easing maintenance burdens for tutorial writing but it’s not rust https://github.com/zombocom/rundoc

xnickb•8mo ago
I have a habit of reading Conclusions of lengthy articles before I read the article itself to decide whether it's worth a read or not.

This article had by far the most useless conclusion section.

airstrike•8mo ago
> Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.

https://news.ycombinator.com/newsguidelines.html

ClickHouse Acquires Langfuse

https://langfuse.com/blog/joining-clickhouse
34•tin7in•1h ago•5 comments

East Germany balloon escape

https://en.wikipedia.org/wiki/East_Germany_balloon_escape
520•robertvc•17h ago•179 comments

Show HN: Streaming gigabyte medical images from S3 without downloading them

https://github.com/PABannier/WSIStreamer
11•el_pa_b•1h ago•1 comments

Cloudflare acquires Astro

https://astro.build/blog/joining-cloudflare/
821•todotask2•19h ago•361 comments

High-Level Is the Goal

https://bvisness.me/high-level/
144•tobr•1d ago•60 comments

Cursor's latest “browser experiment” implied success without evidence

https://embedding-shapes.github.io/cursor-implied-success-without-evidence/
556•embedding-shape•19h ago•236 comments

FLUX.2 [Klein]: Towards Interactive Visual Intelligence

https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence
136•GaggiX•10h ago•41 comments

6-Day and IP Address Certificates Are Generally Available

https://letsencrypt.org/2026/01/15/6day-and-ip-general-availability
413•jaas•18h ago•230 comments

Drone Hacking Part 1: Dumping Firmware and Bruteforcing ECC

https://neodyme.io/en/blog/drone_hacking_part_1/
64•tripdout•7h ago•6 comments

LLM Structured Outputs Handbook

https://nanonets.com/cookbooks/structured-llm-outputs
247•vitaelabitur•1d ago•42 comments

Releasing rainbow tables to accelerate Net-NTLMv1 protocol deprecation

https://cloud.google.com/blog/topics/threat-intelligence/net-ntlmv1-deprecation-rainbow-tables
117•linolevan•12h ago•68 comments

Beebo, a wave simulator written in C

https://git.sr.ht/~willowf/beebo/
49•anon25783•3d ago•3 comments

Lies, Damned Lies and Proofs: Formal Methods Are Not Slopless

https://www.lesswrong.com/posts/rhAPh3YzhPoBNpgHg/lies-damned-lies-and-proofs-formal-methods-are-...
13•OgsyedIE•2d ago•2 comments

Dell UltraSharp 52 Thunderbolt Hub Monitor

https://www.dell.com/en-us/shop/dell-ultrasharp-52-thunderbolt-hub-monitor-u5226kw/apd/210-bthw/m...
225•cebert•17h ago•286 comments

Experts Warn of Growing Parrot Crisis in Canada

https://www.ctvnews.ca/ottawa/video/2026/01/06/experts-warn-of-growing-parrot-crisis-in-canada/
60•debo_•4d ago•28 comments

Keifu – A TUI for navigating commit graphs with color and clarity

https://github.com/trasta298/keifu
46•indigodaddy•9h ago•6 comments

STFU

https://github.com/Pankajtanwarbanna/stfu
832•tanelpoder•16h ago•516 comments

Office app has changed to copilot and now I can't open files

https://old.reddit.com/r/Office365/comments/1q2b28q/office_app_has_changed_to_copilot_and_now_i_cant
39•csmantle•1h ago•7 comments

Which is "Bouba", and which is "Kiki"? [video]

https://www.youtube.com/watch?v=1TDIAObsqcs
17•basilikum•6d ago•14 comments

Every data centre is a U.S. military base

https://www.policyalternatives.ca/news-research/every-data-centre-is-a-u-s-military-base/
54•HotGarbage•2h ago•24 comments

Reading across books with Claude Code

https://pieterma.es/syntopic-reading-claude/
101•gmays•15h ago•23 comments

Meditation and Unconscious: A Buddhist Monk and a Neuroscientist (2022)

https://thereader.mitpress.mit.edu/meditation-and-the-unconscious-buddhism-neuroscience-conversat...
11•arunc•4h ago•4 comments

Show HN: Tusk Drift – Turn production traffic into API tests

https://github.com/Use-Tusk/tusk-drift-cli
28•jy-tan•1d ago•1 comments

The 'untouchable hacker god' behind Finland's biggest ever crime

https://www.theguardian.com/technology/2026/jan/17/vastaamo-hack-finland-therapy-notes
31•c420•2h ago•21 comments

HTTP RateLimit Headers

https://dotat.at/@/2026-01-13-http-ratelimit.html
69•zdw•2d ago•13 comments

The five orders of ignorance (2000)

https://cacm.acm.org/opinion/the-five-orders-of-ignorance/
62•svilen_dobrev•4d ago•18 comments

Patching the Wii News Channel to serve local news (2025)

https://raulnegron.me/2025/wii-news-pr/
91•todsacerdoti•21h ago•21 comments

Emoji Use in the Electronic Health Record is Increasing

https://jamanetwork.com/journals/jamanetworkopen/fullarticle/2843883
82•giuliomagnifico•16h ago•76 comments

Elasticsearch was never a database

https://www.paradedb.com/blog/elasticsearch-was-never-a-database
134•jamesgresql•5d ago•95 comments

Install.md: A standard for LLM-executable installation

https://www.mintlify.com/blog/install-md-standard-for-llm-executable-installation
73•npmipg•12h ago•92 comments