Skip to content

erikoest/zoneparser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZoneParser: A zonefile parser with good performance

The ZoneParser is a DNS zonefile parser. It has been designed to have a good performance with regards to cpu and memory consumption. It works well with large zonefiles. The code is in an early stage of development and still has a somewhat limited functionality.

Usage

The parser is constructed with a file as input. It then works as an iterator yielding the resource records of the zone. An example:

use zoneparser::ZoneParser;

fn main() {
  let file = File::open("my-zone.no").unwrap();
  let p = ZoneParser::new(&file, "my-zone.no");

  for next in p {
    match next {
      Err(e) => {
        println!("Parse error: {}", e);
        break;
      },
      Ok(rr) => {
        println!("{}", rr);
      },
    }
  }
}

For further examples, see the included command line tools zonecount and zonediff.

Missing features

  • Only the common record fields are parsed. Content specific to the record types are returned as anonymous data fields. A later version might support parsing the data content as a secondary function call.

Contributing

The limited functionality very much reflects the needs I had when I wrote the library. If you find it useful, and miss some functionality, please let me know. It might motivate me to further development. Bug reports are always welcome.

About

A fast zonefile parser

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages