..
    Zephyr Project documentation master file

Zephyr Project Documentation
############################

.. only:: release

   Welcome to the Zephyr Project's documentation version |version|!

   Documentation for the development branch of Zephyr can be found at
   https://docs.zephyrproject.org/

.. only:: (development or daily)

   Welcome to the Zephyr Project's documentation. This is the documentation of the
   master tree under development (version |version|).

   Documentation for tagged released versions of Zephyr can be found at
   ``https://docs.zephyrproject.org/<version>``. The following documentation
   versions are available:

   `Zephyr 1.9.2`_ | `Zephyr 1.10.0`_ | `Zephyr 1.11.0`_ |
   `Zephyr 1.12.0`_ | `Zephyr 1.13.0`_

For information about the changes and additions for releases, please
consult the published :ref:`zephyr_release_notes` documentation.

The Zephyr OS is provided under the `Apache 2.0 license`_ (as found in
the LICENSE file in the project's `GitHub repo`_).  The Zephyr OS also
imports or reuses packages, scripts, and other files that use other
licensing, as described in :ref:`Zephyr_Licensing`.

Source code for the Zephyr Project is maintained in the Zephyr Project's
`GitHub repo`_.

.. _Apache 2.0 license:
   https://github.com/zephyrproject-rtos/zephyr/blob/master/LICENSE

.. _GitHub repo: https://github.com/zephyrproject-rtos/zephyr


.. only:: html

   Sections
   ********

.. toctree::
   :maxdepth: 1

   introduction/introducing_zephyr.rst
   getting_started/getting_started.rst
   contribute/contribute.rst
   kernel/kernel.rst
   security/security.rst
   application/index.rst
   boards/boards.rst
   devices/index.rst
   subsystems/subsystems.rst

.. only:: html

   Indices and Tables
   ******************

* :ref:`glossary`

* :ref:`genindex`

.. _Zephyr 1.13.0: https://docs.zephyrproject.org/1.13.0/
.. _Zephyr 1.12.0: https://docs.zephyrproject.org/1.12.0/
.. _Zephyr 1.11.0: https://docs.zephyrproject.org/1.11.0/
.. _Zephyr 1.10.0: https://docs.zephyrproject.org/1.10.0/
.. _Zephyr 1.9.2: https://docs.zephyrproject.org/1.9.0/
