.. pySerial documentation master file
.. _welcome:

Welcome to pySerial's documentation
===================================


This module encapsulates the access for the serial port. It provides backends
for Python_ running on Windows, OSX, Linux, BSD (possibly any POSIX compliant
system) and IronPython. The module named "serial" automatically selects the
appropriate backend.

Other pages (online)

- `project page on GitHub`_
- `Download Page`_ with releases
- This page, when viewed online is at https://pyserial.readthedocs.io/en/latest/ or
  http://pythonhosted.org/pyserial/ .

.. _Python: http://python.org/
.. _`project page on GitHub`: https://github.com/pyserial/
.. _`Download Page`: http://pypi.python.org/pypi/pyserial


Contents:

.. toctree::
    :maxdepth: 2

    pyserial
    shortintro
    pyserial_api
    tools
    url_handlers
    examples
    appendix

Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

