intro.rst revision 249140
1Introduction 2=================================== 3 4**Unbound** 5 6 `Unbound`_ is an implementation of a DNS resolver, that performs caching and DNSSEC validation. 7 Together with unbound, the libunbound library is provided. 8 This library can be used to convert hostnames to ip addresses, and back, as well as obtain other information. 9 Since the resolver allows to specify the class and type of a query (A record, NS, MX, ...), this library offers powerful resolving tool. 10 The library also performs public-key validation of results with DNSSEC. 11 12 .. _Unbound: http://www.unbound.net/documentation 13 14**pyUnbound** 15 16 The pyUnbound is an extension module for Python which provides an object-oriented interface to libunbound. 17 It is the first Python module which offers thread-safe caching resolver. 18 19 The interface was designed with the emphasis on the simplicity of use. 20 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. 21 The objects are thread-safe, and a context can be used in non-threaded as well as threaded environment. 22 Resolution can be performed blocking and non-blocking (i.e. asynchronous). 23 The asynchronous method returns from the call immediately, so that processing can go on, while the results become available later. 24 25**Features** 26 * customizable caching validation resolver for synchronous and asynchronous lookups 27 * easy to use object interface 28 * easy to integrate extension module 29 * designed for thread environment (i.e. thread-safe) 30 * allows define and customize of local zone and its RR's during the operation (i.e. without restart) 31 * includes encoding functions to simplify the results retrieval 32 * Internationalized domain name (`IDN`_) support 33 34 .. _IDN: http://en.wikipedia.org/wiki/Internationalized_domain_name 35 36**Application area** 37 * DNS-based applications performing DNS lookups; the caching resolver can reduce overhead 38 * Applications where the validation of DNS records is required 39 * Great solution for customizable and dynamic DNS-based white/blacklists (spam rejection, connection rejection, ...) using the dynamic local zone manipulation 40