..
    Zephyr Project documentation master file

.. _zephyr-home:

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

.. only:: release

   Welcome to the Zephyr Project's documentation for version |version|.

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

.. only:: (development or daily)

   **Welcome to the Zephyr Project's documentation
   for the master tree under development** (version |version|).

Use the version selection menu on the left to view
documentation for a specific version of Zephyr.

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`.

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

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


.. raw:: html

   <ul class="grid">
       <li class="grid-item">
	   <a href="introduction/index.html">
	       <img alt="" src="_static/images/kite.png"/>
	       <h2>Introduction</h2>
	   </a>
	   <p>Introducing the Zephyr Project: overview, architecture, features, and licensing</p>
       </li>
       <li class="grid-item">
	   <a href="getting_started/index.html">
               <span class="grid-icon fa fa-map-signs"></span>
	       <h2>Getting Started Guide</h2>
	   </a>
	   <p>Follow this guide to set up a Zephyr development environment on your
	       system, and then build and run a sample application.</p>
       </li>
       <li class="grid-item">
	   <a href="contribute/index.html">
               <span class="grid-icon fa fa-github"></span>
	       <h2>Contribution Guidelines</h2>
	   </a>
	   <p>As an open-source project, we welcome and encourage the community
           to submit patches directly to the project.</p>
       </li>
       <li class="grid-item">
	   <a href="samples/index.html">
               <span class="grid-icon fa fa-cogs"></span>
	       <h2>Samples and Demos</h2>
	   </a>
	   <p>A list of samples and demos that can run on a variety of boards supported
	       by Zephyr</p>
       </li>
       <li class="grid-item">
	   <a href="reference/index.html">
               <span class="grid-icon fa fa-sign-in"></span>
	       <h2>API Reference</h2>
	   </a>
	   <p>API Documentation, Zephyr configuration, and subsystem Reference</p>
       </li>
       <li class="grid-item">
	   <a href="security/index.html">
               <span class="grid-icon fa fa-lock"></span>
	       <h2>Security</h2>
	   </a>
	   <p>Requirements, processes, and developer guidelines for ensuring security is addressed within the Zephyr project.</p>
       </li>
       <li class="grid-item">
	   <a href="boards/index.html">
               <span class="grid-icon fa fa-object-group"></span>
	       <h2>Supported Boards</h2>
	   </a>
	   <p>List of supported boards and platforms.</p>
       </li>
       <li class="grid-item">
	   <a href="guides/index.html">
               <span class="grid-icon fa fa-puzzle-piece"></span>
	       <h2>User and Developer Guides</h2>
	   </a>
	   <p>User and Developer Guides, including tools and tips</p>
       </li>
   </ul>

.. only:: html

   Sections
   ********

.. toctree::
   :maxdepth: 1

   Documentation Home <self>
   introduction/index.rst
   getting_started/index.rst
   contribute/index.rst
   development_process/index.rst
   application/index.rst
   reference/index.rst
   guides/index.rst
   security/index.rst
   samples/index.rst
   boards/index.rst
   releases/index.rst

.. only:: html

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

* :ref:`glossary`

* :ref:`genindex`
