Skip to content

joeypas/BarTop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BarTop

A minimal DNS library & stub/recursive resolver

Zig License: MIT

What is BarTop?

BarTop is an educational DNS toolkit written in Zig.
It includes

  • dns.zig - a Wire-format encoder/decoder able to read & write common RR types (A, AAAA, NS, CNAME, MX, PTR, TXT, SOA, …)
  • zone.zig - a reader for RFC 1035 master files supporting $ORIGIN / $TTL and incremental state tracking
  • src/client.zig - a dns client CLI that crafts a query, sends it over UDP, and prints the decoded answer
  • src/stub_resolver.zig - an experimental stub resolver built on libxev with an in-memory LRU cache
  • src/util/crypto.zig - tools for creating RSA/ECDSA keypairs and signing messages with them, using openSSL libcrypto
  • Utilities
    • src/util/lru.zig (cache) and src/util/queue.zig
    • Simple build script + build.zig.zon dependency list (libxev, zig-clap, openSSL)

Status: personal project, API in flux, not production-ready.


API Reference

Automatically generated API Reference for the project can be found at https://joeypas.github.io/BarTop. Note that Zig autodoc is in beta; the website may be broken or incomplete.

Quick start

BarTop targets Zig 0.14.x

git clone https://github.com/joeypas/BarTop.git
cd BarTop
zig build          # Debug mode contains logs, ReleaseFast doesn't

About

A Simple DNS Library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages