I think I may have implemented what you're looking for several years ago for JSAN, which has a client that auto-detected appropriate mirrors in a few seconds each time it starts.
http://search.cpan.org/~adamk/Mirror-URI-0.90/lib/Mirror/YAML.pm Or at least, something similar to it. It autodetects mirrors, can validate them for both speed and staleness, and doesn't give a crap about where they or you are physically in the world. It auto-updates to new master servers, and is resistant to mirror/repo hijacking, and it can (with a tweak to support an async library) do it in parallel. Adam K On Tue, Feb 8, 2011 at 5:55 PM, brian d foy <brian.d....@gmail.com> wrote: > I've cloned the cpanpm repo and played with CPAN::Mirrors to make it a > bit more useful for things outside of CPAN.pm. Most of its use in > CPAN.pm is to support urllist in CPAN::FirstTime, but I want to use it > to also update the urllist as I travel, and create other interesting > applications for it. > > I haven't merged anything, but you can look at the firsttime branch: > > https://github.com/briandfoy/cpanpm/blob/firsttime/lib/CPAN/Mirrors.pm > > I have some other refactorings to do, but I don't want to drop them all > on you at once. > > And, who makes the MIRRORED.BY file? I imagine that's something from a > script that Jarkko makes, but how does it get the data? I'd like to see > about exporting it as JSON or something. Also, is it something that > noc.perl.org has to handle as the master CPAN moves off of FUNET? > > -- > brian d foy <brian.d....@gmail.com> >