Name Resolution (DNS)

gevent includes support for a pluggable hostname resolution system. Pluggable resolvers are (generally) intended to be cooperative. This pluggable resolution system is used automatically when the system is monkey patched, and may be used manually through the resolver attribute of the gevent.hub.Hub or the corresponding methods in the gevent.socket module.

A resolver implements the 5 standandard functions from the socket module for resolving hostnames and addresses:

Configuration

gevent includes four implementations of resolvers, and applications can provide their own implementation. By default, gevent uses a threadpool. This can be customized.

Please see the documentation for each resolver class to understand the relative performance and correctness tradeoffs.