While it is inefficient in different ways, I run a full node, and use namecoin-cli name_scan 'd/start' (where start picks up last scan left off) to get the json for all names and convert to a BIND format DNS zone for BIT. Which reminds me, I need to update to handle new fields showing up as well as new garbage entries (yes America, blockchains have spam too).