Metadata-Version: 2.4
Name: ludicrousdns
Version: 0.4.0
Summary: A ludicrously speedy DNS resolver
Home-page: https://gitlab.com/sheddow/ludicrousdns
Author: Sigurd Kolltveit
Author-email: sigurd.kolltveit@gmx.com
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.5
Description-Content-Type: text/markdown
Requires-Dist: aiodns>=1.1.1
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# ludicrousdns
[![pipeline status](https://gitlab.com/sheddow/ludicrousdns/badges/master/pipeline.svg)](https://gitlab.com/sheddow/ludicrousdns/commits/master) [![coverage report](https://gitlab.com/sheddow/ludicrousdns/badges/master/coverage.svg)](https://gitlab.com/sheddow/ludicrousdns/commits/master)

Ludicrously speedy, infectious with the async. `ludicrousdns` is designed to be a cleaner, more accurate and more rate-limited version of [massdns](https://github.com/blechschmidt/massdns). 

## Installation
```
pip install ludicrousdns
```

## Usage
`ludicrousdns` can be used both as a library and a binary:
```python
from ludicrousdns import ResolverPool
r = ResolverPool()
r.resolve_hosts(["example.com", "google.com"])
```
or
```shell
echo -e "example.com\ngoogle.com" > hosts.txt
ludicrousdns resolve -d hosts.txt
```
or simply
```shell
echo -e "example.com\ngoogle.com" | ludicrousdns resolve
```

## Features
- Rate-limited
- Detects wildcard DNS
- Ludicrously speedy

## TODO
- Add benchmark to measure CPU- and network usage
- Add benchmark to measure overall speed (use randomized subdomains to avoid effects of caching)
- Add timeout to connections, for example with [async_timeout](https://github.com/aio-libs/async-timeout)
- Add option to adjust rate-limiting
