intro.rst revision 303975
164562SgshapiroIntroduction
264562Sgshapiro===================================
3261194Sgshapiro
464562Sgshapiro**Unbound**
564562Sgshapiro
664562Sgshapiro	`Unbound`_  is  an implementation of a DNS resolver, that performs caching and DNSSEC validation.
764562Sgshapiro	Together with unbound, the libunbound library is provided.
864562Sgshapiro	This library can be used to convert hostnames to ip addresses, and back, as well as obtain other information. 
964562Sgshapiro	Since the resolver allows to specify the class and type of a query (A record, NS, MX, ...), this library offers powerful resolving tool. 
1064562Sgshapiro	The library also performs public-key validation of results with DNSSEC.
1164562Sgshapiro	
12132943Sgshapiro	.. _Unbound: http://www.unbound.net/documentation
1364562Sgshapiro
1464562Sgshapiro**pyUnbound**
15266527Sgshapiro
1690792Sgshapiro	The pyUnbound is an extension module for Python which provides an object-oriented interface to libunbound. 
17159609Sgshapiro	It is the first Python module which offers thread-safe caching resolver.
18159609Sgshapiro	
1990792Sgshapiro	The interface was designed with the emphasis on the simplicity of use.
2090792Sgshapiro	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.
2198121Sgshapiro	The objects are thread-safe, and a context can be used in non-threaded as well as threaded environment. 
2264562Sgshapiro	Resolution can be performed blocking and non-blocking (i.e. asynchronous).  
23159609Sgshapiro	The asynchronous method returns from the call immediately, so that processing can go on, while the results become available later.
2498121Sgshapiro
2590792Sgshapiro**Features**
2664562Sgshapiro	* customizable caching validation resolver for synchronous and asynchronous lookups
2764562Sgshapiro	* easy to use object interface
2864562Sgshapiro	* easy to integrate extension module
2990792Sgshapiro	* designed for thread environment (i.e. thread-safe)
3064562Sgshapiro	* allows define and customize of local zone and its RR's during the operation (i.e. without restart)
3190792Sgshapiro	* includes encoding functions to simplify the results retrieval
3290792Sgshapiro	* Internationalized domain name (`IDN`_) support
33157001Sgshapiro
34168515Sgshapiro	.. _IDN: http://en.wikipedia.org/wiki/Internationalized_domain_name
35168515Sgshapiro
36168515Sgshapiro**Application area**
37168515Sgshapiro	* DNS-based applications performing DNS lookups; the caching resolver can reduce overhead
38168515Sgshapiro	* Applications where the validation of DNS records is required
3964562Sgshapiro	* Great solution for customizable and dynamic DNS-based white/blacklists (spam rejection, connection rejection, ...) using the dynamic local zone manipulation
40