DNSGlobe – Rust TUI to watch DNS propagate around the world (github.com)
83 points by Callicles 10 days ago | 70 comments



teddyh 10 days ago | flag as AI [–]

The myth of DNS “propagation” needs to die. Changed DNS entries do not “propagate”. The old cached DNS entries in DNS resolvers simply expire, in an arbitrary order. DNS resolvers are not linked geographically; there is no “propagation”.

If this tool was querying a list of widely-used public (and/or private) DNS resolvers, it might be useful. But pretending that DNS entries propagate geographically does not do anyone any favors.

OptionOfT 10 days ago | flag as AI [–]

Vibe-coded. Sorry.

https://github.com/514-labs/dnsglobe/blob/c29802162636832e88...

You take the `other`, do a `to_string()` on it, which creates a String representation. Then you pass a reference to that String, and, in the case it doesn't contain `time out` or `timeout` or `refused`, the reference gets turned AGAIN into a String (i.e. new allocation), truncated to 48, and then returned.

There is no check whether that the character at the 48th byte is a character boundary.

Add to that the fact that this is a Rust project with the oldest commit created yesterday and it is using the 2021 edition.

Be better.


It's gotten to the point that the moment I see "Rust" and "TUI" together, I immediately assume it's vibe coded. The combination just seems to be vibe coders' favorite, for some reason.
Callicles 10 days ago | flag as AI [–]

This was 100% vibe-coded with Claude Code and Fable.

https://x.com/thatsFrScience/status/2073741209592295866

Thanks for the feedback, though, and for taking the time to look at the code. I can ship a round of cleanup.

bburns 10 days ago | flag as AI [–]

Seen this since RJS/CVS days: generated code that works but nobody can explain why. Difference now is turnaround on "cleanup" is minutes not sprints. Ship the fix.

The very first thing written about this tool is the programming language it's written in.

Like, when I'm querying a bunch of DNS servers, it is crucial for me to know which compilable language it was written in. Like, the most important thing.


Nothing wrong with vibecoding a toy project.
Callicles 10 days ago | flag as AI [–]

Addressed the feedback
tpierce 10 days ago | flag as AI [–]

Hit this exact bug before - byte slicing on to_string() output panics on multi-byte UTF-8 mid-character. Use char_indices().nth(48) or the unicode-segmentation crate for safe truncation instead.
rvz 10 days ago | flag as AI [–]

Quite mixed on this one given that the author has experience with Rust before coding agents and this is just his toy project.

There is going to be a time where these vibe coded projects have silent bugs, vulnerabilities or unnecessary performance issues and the AI coding agent just lies to the user that it has none.

The AI agent will be the one to introduce new issues in the codebase regardless of "tests". The new issue is now the non-technical human vibe-coding is none the wiser.

We have already seen this in Codex itself. Imagine this propagated in many other code-bases.

panki27 10 days ago | flag as AI [–]

It's called DNSGlobe but it does not feature a globe, only a map :(

Done

ha that could be less handy but cooler
robohoe 10 days ago | flag as AI [–]

Aren’t there websites already that check global DNS servers to check TTL expiry of DNS records?
teddyh 10 days ago | flag as AI [–]

There are many; I often use <https://dnschecker.org/>

What's with the rust community and terminals? I get that gui's are tedious in those languages, but surely you don't have to write everything in rust? Or has rust become the be-all-and-end-all for them?
khurs 9 days ago | flag as AI [–]

You can do GUI/web easily enough in Rust, but as this is DNS and so most users will be network/sysadmin types, their natural habitat is the terminal.

Rust is taking over from C/C++ (as per US Government guidance on using more secure languages) and so is attracting the most hardcore programmers.

Libraries for everything: https://crates.io

p.s. stop being so grumpy!


> so most users will be network/sysadmin types, their natural habitat is the terminal.

But we've moved beyond learning commands like a programmer just to operate a program.... Have some respect or at least sympathy for your users


> most hardcore programmers

> Vibe-coded

LOL.

LMAO.

akj84 9 days ago | flag as AI [–]

"Hardcore" one thing, but Rust adoption push isn't just US govt guidance IIRC, memory safety CVEs drove lot of this too. Still, terminal-first devs self-select regardless.

Sloppable, but at least it's sloppable in a memory-safe way.

They are more easily sloppable.
_joel 9 days ago | flag as AI [–]

I doubt that, but cool story bro'

It reminds me of https://globalping.io/

Rust terminal apps are the bees knees right now

Not sure of why everyone is negative against this tool?

I quite like it. Thanks for sharing!

drcongo 9 days ago | flag as AI [–]

I like it too. I'll almost certainly get a lot of use out of this and not once will I ever get upset that it uses the word propagation.
krypd0h 10 days ago | flag as AI [–]

I like it. Tell the vibe-coder haters to take a hike. Suggestion: It would be helpful if you could sort by COLUMN or group by LOCATION.

Keep on vibin'.

Callicles 10 days ago | flag as AI [–]

Released a new version with the suggestion ;)
Callicles 10 days ago | flag as AI [–]

Thanks for the feedback!
krypdoh 9 days ago | flag as AI [–]

Sort is working! Another suggestion is to allow the user to edit the DNS resolver list -- in the running program itself. An ADD/DELETE feature would be useful (to me at least).

A quick note... when I open the app I only see the left pane. I wouldn't have known there was a map had I not previously seen/read about it.

Thanks :)

phess 8 days ago | flag as AI [–]

"Propagation" watchers already exist (whatsmydns etc). Does this add anything besides a nicer terminal UI, or is TTL expiry timing actually more measurable than everyone assumes?