11 ms·
DNSGlobe – Rust TUI to watch DNS propagate around the world
- krypd0h 2mo agoI 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 2mo agoThanks for the feedback!
- krypdoh 2mo agoSort 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 :)
- Callicles 2mo agoReleased a new version with the suggestion ;)
- teddyh 2mo agoThe 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.
- Callicles 2mo agoThat's what the tool is doing - querying a bunch of public resolvers around the world to see the state of what they resolve to. Since end users usually use DNS servers close to their location, this gives an idea, around the world, of who sees what. Agreed, this is a cache that expires and refreshes from the source DNS server. It just looks like a virus that propagates when the cache expires.
- teddyh 2mo ago> It just looks like a virus that propagates when the cache expires. No it does not. The changes do not happen geographically. There is no geographical connection whatsoever. Calling the tool “DNSGlobe”, and displaying a map, only further reinforces the myth.
- Terretta 2mo agodnspatter (dns spatter + dns patter)
- marysol5 2mo agoAnycast goes BRRRRRRRRR Just because YOU query a server, doesn't mean that a user somewhere else is querying the same server.
- toast0 2mo agoa) different DNS systems get the change out to all the authoritatives different ways. Some of them with much delay. Delays are hopefully minimal on modern systems, but I've worked with bad systems where you change dns in the api and it takes minutes and sometimes hours for the authoritatives to start returning new results; traditional notify/axfr based systems often have a queue of several seconds at least. b) as resolver caches expire, new queries will hopefully get new answers (as long as the authoritatives get updated per a), and eventually you get the new results everywhere except for resolvers that do terrible things... When the change is made and it takes time for the results to show up everywhere, I think propagate is a reasonable verb. You could use disperse or diffuse or something else, but you need a verb to let people know it's going to take time for your changes to be visible everywhere. I don't know that propagate necessary implies the change becomes visible in an orderly way. 'Around the globe' doesn't really either, it's just observing from around the globe as resolvers get new data. What verb do you prefer to use to describe how unsychronized caches obtain new values?
- robohoe 2mo agoAren’t there websites already that check global DNS servers to check TTL expiry of DNS records?
- OptionOfT 2mo agoVibe-coded. Sorry. https://github.com/514-labs/dnsglobe/blob/c29802162636832e88b56bbb205e6c773c254e5b/src/dns.rs#L69 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.
- Callicles 2mo agoThis was 100% vibe-coded with Claude Code and Fable. https://x.com/thatsFrScience/status/2073741209592295866 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.
- orangeboats 2mo agoIt'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.
- zx8080 2mo ago> The combination just seems to be vibe coders' favorite, for some reason. It's the secret key to HN front page!
- blacklite 2mo agoThat's not whose favorite it is; it's the favorite of who's doing the work. :)
- inigyou 2mo agoIt must be because if you program in Rust, you don't have bugs ;)
- LouisvilleGeek 2mo agoNot sure of why everyone is negative against this tool? I quite like it. Thanks for sharing!
- drcongo 2mo agoI 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.
- throwitaway222 2mo agoRust terminal apps are the bees knees right now
- panki27 2mo agoIt's called DNSGlobe but it does not feature a globe, only a map :(
- Flaapjan 2mo ago[dead]
- bcjdjsndon 2mo agoWhat'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 2mo agoYou 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 https://crates.io p.s. stop being so grumpy!
- oksurerly 2mo ago> most hardcore programmers > Vibe-coded LOL. LMAO.
- khurs 2mo agoMicrosoft are using Rust for Windows and Azure Google are using Rust despite having developed GO SpaceX and NASA are using Rust for critical life and death systems. Cloudflare use Rust to obtain extreme high performance. And many, many more. Stop being a pain: https://en.wikipedia.org/wiki/Straw_man https://en.wikipedia.org/wiki/Straw_man
- bcjdjsndon 2mo ago> Stop being a pain They're always so emotional, rustaceans.
- bcjdjsndon 2mo ago> 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
- matteogauthier 2mo agoIt reminds me of https://globalping.io/ https://globalping.io/
- deleted 2mo ago[deleted]