Git Product home page Git Product logo

denes's Introduction

denes - Simple DNS framework in Erlang.


Works: Listening on UDP port and slimple parsing of most common packets implemented.


Plans: In future it would be a comprehensive library with embeded client and server,
resolver, recursion, database, forwarding, filtering, caching, dnssec, dnscurve,
benchmarking, stress testing, testing this and other implementations, etc.

New ideas: Shared cache beetwen multiple machines can be interesting idea.

Research plans: p2p dns.

Erlang was choisen because of expresivnes of it, especilly regarding
parsing and building binary messages. Also memory safety, speed, concurency, reliability,
parallel processing, and embeded database was also important factors.



NOTE: ALPHA QUALITY VERSION.

Coded in about 6 hours after reading some RFCs.
Not functional at all.
Currently usefull for educational purposes or just parsing some DNS messages from clients.


Roadmap (in order):
   . handling compressed domain names (suffix compression)
   . handling truncated messages.
   . constructin of messages, as well port and ID randomization
   . creating compressed messages
   . answering queries from clients using dummy data
   . serving data from local file/db with erlang tuples or HOSTS.TXT
   . asking other server and waiting for response for it
   . recursion support
   . full IPv6 support
   . domain matching
   . ...
   . cache
   . ...
   . resolvconf integration (reloading upstream nameserver after network reconnection, DHCP update)
   . transparent proxy, sniffer mode
   . avahi supprt
   . ...
   . other data sources bind (master) files, ldap, postgresql, odbc


Copyright: Witold Baryluk, 2011
License: BSD, seed LICENSE file for details

denes's People

Contributors

baryluk avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.