Skip to content
Snippets Groups Projects
Commit aec9b565 authored by Marek Vavruša's avatar Marek Vavruša
Browse files

doc: updated readme

parent 61b8eaf7
Branches
Tags
No related merge requests found
# Knot DNS Resolver
## Preparation
[![Build Status](https://travis-ci.org/CZNIC-Labs/knot-resolver.svg?branch=master)](https://travis-ci.org/CZNIC-Labs/knot-resolver)
The Knot DNS Resolver depends on the Knot DNS library which is introduced in current master, and on the
reasonably recent version of the `libuv`.
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
a state-machine like API for extensions. There are three built-in modules: *iterator*, *cache* and *stats*,
but each module can be flipped on and off.
### libuv
### Try it out?
If the libuv with a version at least 1.0 is not present on your system,
compile and install the sources code from the Git repository.
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:
```
$ git clone https://github.com/libuv/libuv.git
$ cd libuv
$ ./autogen.sh
$ make && make install
$ docker run cznic/knot-resolver
```
## Compilation
See the build page https://registry.hub.docker.com/u/cznic/knot-resolver for more information and options.
You can hack on the container by changing the container entrypoint to shell like:
```
$ docker run -it --entrypoint=/bin/bash cznic/knot-resolver
```
### Building from sources
The Knot DNS Resolver depends on the development version of the Knot DNS library, and a reasonably recent version of `libuv`.
Several dependencies may not be in the packages yet, the script pulls and installs all dependencies in a chroot.
```
$ export PKG_CONFIG_PATH="..." # Change, if you installed the libknot somewhere else
$ ./configure
$ FAKEROOT="/tmp/resolver-depends"
$ ./scripts/build-depends.sh ${FAKEROOT}
$ export LDFLAGS="-L${FAKEROOT}/lib"
$ export PKG_CONFIG_PATH="${FAKEROOT}/lib/pkgconfig"
$ ./configure --enable-integration-tests
$ autoreconf -if
$ make
$ make check
```
## Running
### Running
There is a separate resolver library in the `lib` directory, and a minimalistic daemon in
the `daemon` directory. The daemon accepts a few CLI parameters, and there's no support for configuration
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment