README.md 2.02 KB
Newer Older
1 2
# Knot DNS Resolver

Marek Vavruša's avatar
Marek Vavruša committed
3 4
[![Build Status](https://travis-ci.org/CZ-NIC/knot-resolver.svg?branch=master)](https://travis-ci.org/CZ-NIC/knot-resolver)
[![Coverage Status](https://coveralls.io/r/CZ-NIC/knot-resolver/badge.svg?branch=master)](https://coveralls.io/r/CZ-NIC/knot-resolver?branch=master)
5

Marek Vavruša's avatar
Marek Vavruša committed
6 7
The Knot DNS Resolver is a minimalistic caching resolver implementation. The project provides both a resolver
library and a small daemon. Modular architecture of the library keeps the core tiny and efficient, and provides
8 9
a state-machine like API for extensions. There are two built-in modules: *iterator* and *cache*,
and each module can be flipped on and off.
10

Marek Vavruša's avatar
Marek Vavruša committed
11
### Try it out?
12

Marek Vavruša's avatar
Marek Vavruša committed
13 14 15 16 17
The Knot DNS Resolver is currently in an early development phase, you shouldn't put it in the production right away.

### Docker image

This is simple and doesn't require any dependencies or system modifications, just run:
18 19

```
Marek Vavruša's avatar
Marek Vavruša committed
20
$ docker run cznic/knot-resolver
21 22
```

Marek Vavruša's avatar
Marek Vavruša committed
23
See the build page [registry.hub.docker.com/u/cznic/knot-resolver](https://registry.hub.docker.com/u/cznic/knot-resolver) for more information and options.
Marek Vavruša's avatar
Marek Vavruša committed
24 25 26

### Building from sources 

Marek Vavruša's avatar
Marek Vavruša committed
27
The Knot DNS Resolver [depends][depends] on the development version of the Knot DNS library.
Marek Vavruša's avatar
Marek Vavruša committed
28
Several dependencies may not be in the packages yet, the script pulls and installs all dependencies in a chroot.
29

Marek Vavruša's avatar
Marek Vavruša committed
30 31 32
You can avoid rebuilding dependencies by specifying `BUILD_IGNORE` variable, see the [Dockerfile](scripts/Dockerfile)
for example. Usually you only really need to rebuild `libknot`.

33
```
Marek Vavruša's avatar
Marek Vavruša committed
34
$ export FAKEROOT="${HOME}/.local"
Marek Vavruša's avatar
Marek Vavruša committed
35
$ export PKG_CONFIG_PATH="${FAKEROOT}/lib/pkgconfig"
Marek Vavruša's avatar
Marek Vavruša committed
36
$ ./scripts/bootstrap-depends.sh ${FAKEROOT}
37
$ make
Marek Vavruša's avatar
Marek Vavruša committed
38
$ make check
39 40
```

Marek Vavruša's avatar
Marek Vavruša committed
41
### Running
42

Marek Vavruša's avatar
Marek Vavruša committed
43
There is a separate resolver library in the `lib` directory, and a daemon in the `daemon` directory.
44 45 46

```
$ ./daemon/kresolved -h
47
$ ./daemon/kresolved -a "127.0.0.1#53"
48
```
Marek Vavruša's avatar
Marek Vavruša committed
49 50 51 52 53 54 55

### More

See the documentation at [knot-resolver.readthedocs.org][doc].

[depends]: http://knot-resolver.readthedocs.org/en/latest/build.html
[doc]: http://knot-resolver.readthedocs.org/en/latest/index.html