===========================
In the PowerDNS Recursor, it is possible to modify resolving behaviour using simple scripts written in the `Lua <http://www.lua.org>`_ programming language.
-These scripts can be used to quickly override dangerous domains, fix things that are wrong, for load balancing or for legal or commercial purposes.
-The scripts can also protect you or your users from malicious traffic.
+Lua scripts can be used for load balancing, legal reasons, commercial purposes, to quickly block dangerous domains or override problematic responses.
-Lua is extremely fast and lightweight, easily supporting hundreds of thousands of queries per second.
+Because Lua is extremely fast and lightweight, it easily supports hundreds of thousands of queries per second.
The Lua language is explained very well in the excellent book `Programming in Lua <http://www.amazon.com/exec/obidos/ASIN/859037985X/lua-pilindex-20>`_.
If you already have programming experience, `Learn Lua in 15 Minutes <http://tylerneylon.com/a/learn-lua/>`_ is a great primer.
.. note::
PowerDNS Recursor is capable of handling many queries simultaneously using cooperative user space multi-threading.
- Blocking functions called from Lua are not cooperative, they will monopolize a worker thread while being blocked.
+ Blocking functions called from Lua are not cooperative and will monopolize a worker thread while blocked.
Avoid blocking calls.
.. toctree::