..
    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://www.zephyrproject.org/doc/

.. 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 released versions of Zephyr can be found at
   ``https://www.zephyrproject.org/doc/<version>``. The following documentation
   versions are available:

   `Zephyr 1.5.0`_ | `Zephyr 1.6.0`_ | `Zephyr 1.7.0`_ | `Zephyr 1.8.0`_ |
   `Zephyr 1.9.0`_

For more information about previous releases, please consult the published
:ref:`zephyr_release_notes`.

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


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

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

* :ref:`glossary`

* :ref:`genindex`

.. _Zephyr 1.9.0: https://www.zephyrproject.org/doc/1.9.0/
.. _Zephyr 1.8.0: https://www.zephyrproject.org/doc/1.8.0/
.. _Zephyr 1.7.0: https://www.zephyrproject.org/doc/1.7.0/
.. _Zephyr 1.6.0: https://www.zephyrproject.org/doc/1.6.0/
.. _Zephyr 1.5.0: https://www.zephyrproject.org/doc/1.5.0/
