dns
Version, currently 1.0.54 versions
- 1.0.5latestMay 28, 2024
- 1.0.4not indexedMay 28, 2024
- 1.0.3not indexedMay 28, 2024
- 1.0.0not indexedMay 28, 2024
github.com/636f7374/dns.cr
๐ง Under evaluation - Crystal Domain Name System Resolver
16 stars
2 dependents
License: BSDv3
Installation
# Add this to your shard.yml
dependencies:
dns:
github: 636f7374/dns.cr
version: ~> 1.0.5Then run:
shards installshard.yml
- Crystal
>= 1.0.0- License
- BSDv3
- Authors
- 636f7374, usiegj00
Dependencies
This version declares no dependencies.
README
Description
- High-performance, reliable, and stable DNS Resolver.
- This repository is under evaluation and will replace Durian.cr.
Features
- [X] Concurrent
- [X] Caching
- [X] UDP
- [X] DNS over T(CP/LS)
- [X] DNS over HTTP(S)
Usage
- Please check the examples folder.
Used as Shard
Add this to your application's shard.yml:
dependencies:
dns:
github: 636f7374/dns.cr
Installation
$ git clone https://github.com/636f7374/dns.cr.git
Development
$ make test
References
- StackOverflow | How to convert a string or integer to binary in Ruby?
- StackOverflow | Requesting A and AAAA records in single DNS query
- StackOverflow | Example of DNS Compression Pointer Offset > than 12 bytes
- StackOverflow | why libuv do DNS request by multiple thread
- Official | DNS_HEADER structure
- Official | The Saga of Concurrent DNS in Python, and the Defeat of the Wicked Mutex Troll
- Official | Help understanding DNS packet data
- Official | Ietf - RFC 1035
- Official | Docs.rs::hyper_trust_dns_connector
- Official | libuv provides asynchronous variants of getaddrinfo and getnameinfo
- Blogs | Adventures in Rust: Futures and Tokio
- Blogs | Cocoa: Asynchronous Host name lookups
- Blogs | Using DNS with Libevent: high and low-level functionality
- Blogs | The problem with libresolv
- Blogs | The problem with getaddrinfo
- Blogs | What does getaddrinfo do?
- Blogs | A warm welcome to DNS
- Document | DNS Query Message Format
- Docuemnt | Protocol and Format
- Document | Binary Numbers
- Document | DNS Message Header and Question Section Format
- Document | DNS Name Notation and Message Compression Technique
- Github Gist | DNS Query Code in C with linux sockets
- Github Gist | getaddrinfo.strace
- Source Code | posix/getaddrinfo.c
- Source Code | DNS header for C | 0x00sec
- ...
Related
- #8480 | blocking call in one fiber can cause IO timeouts in others
- #4816 | Add Resolv class to standard library
- #2660 | Fix/Implement own DNS resolver
- #4236 | Configurable DNS resolvers
- #2829 | DNS threaded resolver
- #2745 | Don't use libevent's getaddrinfo, use C's getaddrinfo
- #8376 | Some TCPSocket connections will cause HTTP::Server accept (freeze | blocking | hangs | waiting)?
- ...
Credit
Contributors
|Name|Creator|Maintainer|Contributor| |:---:|:---:|:---:|:---:| |636f7374|โ|โ|โ| |usiegj00|||โ|
License
- BSD 3-Clause Clear License
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.0.5- Tagged
- May 28, 2024
- Commit
87a75b08b98a- Crystal
>= 1.0.0- Indexed
- yes
Dependents
Repository
github.com/636f7374/dns.cr
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 15, 2026
- Synced
- Aug 15, 2026
- Versions
- 4