# Reactor Basics

The reactor is the core of the event loop within Twisted and provides a basic interface to a number of services, including network communications, threading, and event dispatching.

There are multiple implementations of the reactor, each modified to provide better support for specialized features over the default implementation. More information about these and how to use a particular implementation is available via Choosing a Reactor.

You can get to the reactor object using the following code:

    from twisted.internet import reactor

The reactor usually implements a set of interfaces, but depending on the chosen reactor and the platform, some of the interfaces may not be implemented:

- `twisted.internet.interfaces.IReactorCore`: Core (required) functionality.
- `twisted.internet.interfaces.IReactorFDSet`: Use FileDescriptor objects.
- `twisted.internet.interfaces.IReactorProcess`: Process management. Read the Using Processes document for more information.
- `twisted.internet.interfaces.IReactorSSL`: SSL networking support.
- `twisted.internet.interfaces.IReactorTCP`: TCP networking support. More information can be found in the Writing Servers and Writing Clients documents.
- `twisted.internet.interfaces.IReactorThreads`: Threading use and management. More information can be found within Threading In Twisted.
- `twisted.internet.interfaces.IReactorTime`: Scheduling interface. More information can be found within Scheduling Tasks.
- `twisted.internet.interfaces.IReactorUDP`: UDP networking support. More information can be found within UDP Networking.
- `twisted.internet.interfaces.IReactorUNIX`: UNIX socket support.

Index