resolver
zone
dnssec
+ trio
exceptions
utilities
--- /dev/null
+.. module:: dns.trio.query
+.. _trio-query:
+
+DNS Query Support
+=================
+
+The ``dns.trio.query`` module is for sending messages to DNS servers, and
+processing their responses. If you want "stub resolver" behavior, then
+you should use the higher level ``dns.trio.resolver`` module; see
+:ref:`trio_resolver`.
+
+There is currently no support for zone transfers or DNS-over-HTTPS
+using Trio, but we hope to offer this in the future.
+
+UDP
+---
+
+.. autofunction:: dns.trio.query.udp
+.. autofunction:: dns.trio.query.udp_with_fallback
+.. autofunction:: dns.trio.query.send_udp
+.. autofunction:: dns.trio.query.receive_udp
+
+Streams (TCP and TLS)
+---------------------
+
+.. autofunction:: dns.trio.query.stream
+.. autofunction:: dns.trio.query.send_stream
+.. autofunction:: dns.trio.query.receive_stream
--- /dev/null
+.. _trio-resolver-class:
+
+The dns.trio.resolver.Resolver Class
+------------------------------------
+
+The Trio resolver is a subclass of ``dns.resolver.Resolver`` and has the
+same attributes. The methods are similar, but I/O methods like ``resolve()``
+are asynchronous.
+
+.. autoclass:: dns.trio.resolver.Resolver
+ :members:
--- /dev/null
+.. _trio-resolver-functions:
+
+Trio Resolver Functions
+=======================
+
+.. autofunction:: dns.trio.resolver.resolve
+.. autofunction:: dns.trio.resolver.resolve_address
+.. autofunction:: dns.trio.resolver.zone_for_name
--- /dev/null
+.. module:: dns.trio.resolver
+.. _trio_resolver:
+
+Stub Resolver
+=============
+
+Dnspython's Trio resolver module implements an asynchronous "stub resolver".
+
+.. toctree::
+
+ trio-resolver-class
+ trio-resolver-functions
--- /dev/null
+.. module:: dns.trio
+.. _trio:
+
+Trio Asynchronous I/O Support
+=============================
+
+The ``dns.trio.query`` module offers very similar APIs to those of
+``dns.query``, only these versions are asynchronous and use Trio for
+I/O. There are no timeout parameters, as timeouts are expected to be
+done in the Trio style with a cancellation scope.
+
+The ``dns.trio.resolver`` module offers very similar APIs to those of
+``dns.query``, only these versions are asynchronous and use Trio for
+I/O. There are no timeout parameters, as timeouts are expected to be
+done in the Trio style with a cancellation scope.
+
+.. toctree::
+
+ trio-query
+ trio-resolver