..
      Copyright 2010-2016 OpenStack Foundation
      All Rights Reserved.

      Licensed under the Apache License, Version 2.0 (the "License"); you may
      not use this file except in compliance with the License. You may obtain
      a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
      License for the specific language governing permissions and limitations
      under the License.

Welcome to storlets' documentation!
===================================

Storlets extend Swift with the ability to run user defined computations
- called storlets - near the data in a secure and isolated manner.
A storlet is a compiled and packaged code (e.g. a .jar file) that can be
uploaded to Swift as any other object.
Once uploaded the storlet can be invoked over data objects in Swift.

This documentation is generated by the Sphinx toolkit and lives in the source
tree.

TL;DR
~~~~~
.. toctree::
    :maxdepth: 1

    getting_started
    s2aio

Storlets Use Cases
~~~~~~~~~~~~~~~~~~
.. toctree::
    :maxdepth: 1

    usecases/usecase_secondary_storage
    usecases/usecase_security
    usecases/usecase_chip_bakers

Overview and Concepts
~~~~~~~~~~~~~~~~~~~~~
.. toctree::
   :maxdepth: 1

   storlets_terminology
   storlet_engine_overview
   api/overview_api
   installation

Related Projects
~~~~~~~~~~~~~~~~

`Crystal <https://github.com/Crystal-SDS>`_ is an SDS framework for OpenStack Swift. Amongst other things, the framework leverages storlets to do seamless pushdown of user defined code from Spark to Swift.

Storlet Engine Developers
~~~~~~~~~~~~~~~~~~~~~~~~~
.. toctree::
   :maxdepth: 1

   engine_dev_installation
   engine_dev_tests

Storlets Developers
~~~~~~~~~~~~~~~~~~~
.. toctree::
   :maxdepth: 1

   contributing
   writing_and_deploying_storlets
   writing_and_deploying_java_storlets
   writing_and_deploying_python_storlets

Indices and tables
~~~~~~~~~~~~~~~~~~

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

