module:: dns.asyncbackend .. _async-backend:

Asynchronous Backend Functions

Dnspython has a “backend” for Trio, Curio, and asyncio which implements the library-specific functionality needed by the generic asynchronous DNS code.

Dnspython attempts to determine which backend is in use by “sniffing” for it with the sniffio module if it is installed. If sniffio is not available, dnspython try to detect asyncio directly.


Get the default backend, initializing it if necessary.


Set the default backend.

It’s not normally necessary to call this method, as get_default_backend() will initialize the backend appropriately in many cases. If sniffio is not installed, or in testing situations, this function allows the backend to be set explicitly.


Attempt to determine the in-use asynchronous I/O library by using the sniffio module if it is available.

Returns the name of the library, or raises AsyncLibraryNotFoundError if the library cannot be determined.


Get the specified asychronous backend.

name, a str, the name of the backend. Currently the “trio”, “curio”, and “asyncio” backends are available.

Raises NotImplementError if an unknown backend name is specified.