1238106SdesIntroduction
2238106Sdes===================================
3238106Sdes
4238106Sdes**Unbound**
5238106Sdes
6238106Sdes	`Unbound`_  is  an implementation of a DNS resolver, that performs caching and DNSSEC validation.
7238106Sdes	Together with unbound, the libunbound library is provided.
8238106Sdes	This library can be used to convert hostnames to ip addresses, and back, as well as obtain other information. 
9238106Sdes	Since the resolver allows to specify the class and type of a query (A record, NS, MX, ...), this library offers powerful resolving tool. 
10238106Sdes	The library also performs public-key validation of results with DNSSEC.
11238106Sdes	
12238106Sdes	.. _Unbound: http://www.unbound.net/documentation
13238106Sdes
14238106Sdes**pyUnbound**
15238106Sdes
16238106Sdes	The pyUnbound is an extension module for Python which provides an object-oriented interface to libunbound. 
17238106Sdes	It is the first Python module which offers thread-safe caching resolver.
18238106Sdes	
19238106Sdes	The interface was designed with the emphasis on the simplicity of use.
20238106Sdes	There are two main classes :class:`unbound.ub_ctx` (a validation and resolution context) and :class:`unbound.ub_result` which contains the validation and resolution results.
21238106Sdes	The objects are thread-safe, and a context can be used in non-threaded as well as threaded environment. 
22238106Sdes	Resolution can be performed blocking and non-blocking (i.e. asynchronous).  
23238106Sdes	The asynchronous method returns from the call immediately, so that processing can go on, while the results become available later.
24238106Sdes
25238106Sdes**Features**
26238106Sdes	* customizable caching validation resolver for synchronous and asynchronous lookups
27238106Sdes	* easy to use object interface
28238106Sdes	* easy to integrate extension module
29238106Sdes	* designed for thread environment (i.e. thread-safe)
30238106Sdes	* allows define and customize of local zone and its RR's during the operation (i.e. without restart)
31238106Sdes	* includes encoding functions to simplify the results retrieval
32238106Sdes	* Internationalized domain name (`IDN`_) support
33238106Sdes
34238106Sdes	.. _IDN: http://en.wikipedia.org/wiki/Internationalized_domain_name
35238106Sdes
36238106Sdes**Application area**
37238106Sdes	* DNS-based applications performing DNS lookups; the caching resolver can reduce overhead
38238106Sdes	* Applications where the validation of DNS records is required
39238106Sdes	* Great solution for customizable and dynamic DNS-based white/blacklists (spam rejection, connection rejection, ...) using the dynamic local zone manipulation
40