# asyncio

New in version 2.0.

Scrapy has partial support for `asyncio`. After you install the asyncio reactor, you may use `asyncio` and `asyncio`-powered libraries in any coroutine.

Warning

`asyncio` support in Scrapy is experimental, and not yet recommended for production environments. Future Scrapy versions may introduce related changes without a deprecation period or warning.

## Installing the asyncio reactor

To enable `asyncio` support, set the `TWISTED_REACTOR` setting to `'twisted.internet.asyncioreactor.AsyncioSelectorReactor'`.

If you are using `CrawlerRunner`, you also need to install the `AsyncioSelectorReactor` reactor manually. You can do that using `install_reactor()`:

    install_reactor('twisted.internet.asyncioreactor.AsyncioSelectorReactor')

## Using custom asyncio loops

You can also use custom asyncio event loops with the asyncio reactor. Set the `ASYNCIO_EVENT_LOOP` setting to the import path of the desired event loop class to use it instead of the default asyncio event loop.