---
layout: default
---
<!--
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
-->
<section id="whiskHeader" class="light-text bot-bar">
    <main>
        <div>
            <h1>Open Source Serverless Cloud Platform</h1>
            <h5>Executes functions in response to events at any scale</h5>
        </div>
    </main>
</section>

<section id="whiskNodes">
    <main>
        <a class="indexable" id="what-is-openwhisk"></a>
        <div class="content">
            <h4>What is Apache OpenWhisk?</h4>
            <p>
                Apache OpenWhisk is an open source, distributed
                <a href="https://en.wikipedia.org/wiki/Serverless_computing">Serverless</a>
                platform that executes functions
                (<span style="font-family:Times New Roman,Georgia,Serif">fx</span>)
                in response to events at any scale. OpenWhisk manages the
                infrastructure, servers and scaling using Docker containers
                so you can focus on building amazing and efficient
                applications.
            </p>
            <p>
                The OpenWhisk platform supports a programming model in which
                developers write functional logic (called
                <a href="https://github.com/apache/openwhisk/blob/master/docs/actions.md#openwhisk-actions">Actions</a>),
                in any supported programming language, that can be dynamically
                scheduled and run in response to associated events (via
                <a href="https://github.com/apache/openwhisk/blob/master/docs/triggers_rules.md#creating-triggers-and-rules">Triggers</a>) from external sources (<a href="https://github.com/apache/openwhisk/blob/master/docs/feeds.md#implementing-feeds">Feeds</a>)
                or from HTTP requests. The project includes a REST API-based
                Command Line Interface (CLI) along with other tooling to
                support packaging, catalog services and many popular container
                deployment options.
            </p>
            <a class="button" href="{{ site.github.url }}/documentation.html#openwhisk_deployment">Create Your Local Playground</a>
        </div>
        <div class="image-wrapper">
            <img src="{{ site.github.url }}/images/illustrations/OW-Abstract Architecture Diagram.png" alt="Events trigger the Apache OpenWhisk platform to run Actions or functions in various supported languages."/>
        </div>
    </main>

    <main>
        <a class="indexable" id="openwhisk-deployments"></a>
        <div class="image-wrapper">
            <img src="{{ site.github.url }}/images/illustrations/OW-Deployments.png" alt="Apache OpenWhisk can deploy on your favorite Cloud container framework."/>
        </div>
        <div class="content">
            <h4>Deploys anywhere</h4>
            <p>
                Since Apache OpenWhisk builds its components using containers
                it easily supports many deployment options both locally and
                within Cloud infrastructures. Options include many of today's
                popular Container frameworks such as
                <a href="https://github.com/apache/openwhisk-deploy-kube/blob/master/README.md">Kubernetes and OpenShift</a>, and
                <a href="https://github.com/apache/openwhisk-devtools/blob/master/docker-compose/README.md">Compose</a>.
                In general, the community endorses deployment on Kubernetes
                using
                <a href="https://helm.sh/Helm">Helm</a>
                charts since it provides many easy and convenient
                implementations for both Devlopers and Operators alike.
            </p>
        </div>
    </main>

    <main>
        <a class="indexable" id="openwhisk-languages"></a>
        <div class="content">
            <h4>Write functions in any language</h4>
            <!-- Possible text addition: "bundle larger or complex dependencies, and tailor the runtime environment to suite your needs."" -->
            <p>
                Work with what you know and love. OpenWhisk supports a
                growing list of your favorite languages such as
                <a href="https://github.com/apache/openwhisk-runtime-go">Go</a>,
                <a href="https://github.com/apache/openwhisk-runtime-java">Java</a>,
                <a href="https://github.com/apache/openwhisk-runtime-nodejs">NodeJS</a>,
                <a href="https://github.com/apache/openwhisk-runtime-dotnet">.NET</a>,
                <a href="https://github.com/apache/openwhisk-runtime-php">PHP</a>,
                <a href="https://github.com/apache/openwhisk-runtime-python">Python</a>,
                <a href="https://github.com/apache/openwhisk-runtime-ruby">Ruby</a>,
                <a href="https://github.com/apache/openwhisk-runtime-rust">Rust</a>,
                <a href="https://github.com/apache/openwhisk-runtime-java">Scala</a>,
                <a href="https://github.com/apache/openwhisk-runtime-swift">Swift</a> and even newer, cloud-native ones like
                <a href="https://github.com/apache/openwhisk-runtime-ballerina">Ballerina</a>.
                There is even an experimental runtime for <a href="https://github.com/apache/openwhisk-runtime-deno">Deno</a> in-development.
            </p>
            <p>
                If you need languages or libraries the current
                "out-of-the-box" runtimes do not support, you can create
                and customize your own executables as Zip Actions which
                run on the
                <a href="https://github.com/apache/openwhisk-runtime-docker/blob/master/README.md">Docker</a>
                runtime by using the
                <a href="https://github.com/apache/openwhisk-runtime-docker/blob/master/sdk/docker/README.md">Docker SDK</a>.
                Some examples of how to support other languages using
                Docker Actions include a tutorial for
                <a href="https://medium.com/openwhisk/openwhisk-and-rust-lang-24025734a834">Rust</a>
                and a completed project for
                <a href="https://github.com/rainbyte/openwhisk-wrapper">Haskell</a>.
            </p>
            <p>
                Once you have your function written, use the
                <a href="documentation.html#using-openwhisk">wsk CLI</a>, to
                target your Apache OpenWhisk instance, and run your first action in seconds.
            </p>
            <a class="button" href="{{ site.github.url }}/documentation.html#nodejs">Create Your First Action</a>
        </div>
        <div class="image-wrapper">
                <img src="{{ site.github.url }}/images/illustrations/OW-Runtimes.png" alt="Node Runtime"/>
        </div>
    </main>

    <main>
        <a class="indexable" id="openwhisk-packages"></a>
        <div class="image-wrapper">
            <img src="{{ site.github.url }}/images/illustrations/OW-Integrations.png" alt="OpenWhisk's out-of-box packages easily integrate with our own services"/>
        </div>
        <div class="content">
            <h4>Integrate easily with many popular services</h4>
            <p>
                OpenWhisk makes it simple for developers to integrate their
                Actions with many popular services using
                <a href="https://github.com/apache/openwhisk/blob/master/docs/packages.md">Packages</a>
                that are provided either as independently developed
                projects under the OpenWhisk family or as part of
                our default
                <a href="https://github.com/apache/openwhisk-catalog">Catalog</a>.
            </p>
            <p>
              Packages offer integrations with general services such as
                <a href="https://github.com/apache/openwhisk-package-kafka">Kafka</a>
                message queues,
                databases including <a href="https://github.com/apache/openwhisk-package-cloudant">Cloudant</a>,
                <a href="https://github.com/apache/openwhisk-package-pushnotifications">Push Notifications</a>
                from mobile applications,
                <a href="https://github.com/apache/openwhisk-catalog/tree/master/packages/slack">Slack</a>
                messaging,
                and <a href="https://github.com/apache/openwhisk-package-rss">RSS</a>
                feeds.
                Development pipelines can take advantage of integrations with
                <a href="https://github.com/apache/openwhisk-catalog/tree/master/packages/github">GitHub</a>,
                <a href="https://github.com/apache/openwhisk-package-jira">JIRA</a>,
                or easily connect with custom data services from the
                <a href="https://github.com/apache/openwhisk-catalog/tree/master/packages/weather">Weather</a>
                company.
            </p>
            <p>
                You can even use the <a href="https://github.com/apache/openwhisk-package-alarms">Alarms</a>
                package to schedule times or recurring intervals to run your Actions.
            </p>
        </div>
    </main>

    <main>
        <a class="indexable" id="openwhisk-compositions"></a>
        <div class="content">
            <h4>Combine your functions into rich compositions</h4>
            <p>
                Code in different languages like JavaScript/NodeJS, Swift, Python,
                Java or run custom logic by packaging code with Docker.
                Invoke your code synchronously, asynchronously, or on a schedule.
                Use higher-level programming constructs like sequences to declaratively
                chain together multiple actions.
                Use parameter binding to avoid hardcoding service credentials in your code.
                And also, debug your code in realtime using variety of
                <a href="documentation.html#development_tools">Development Tools</a>.
            </p>
        </div>
        <div class="image-wrapper">
            <img src="{{ site.github.url }}/images/illustrations/OW-Runtime-Compositions.png" alt="OpenWhiks allows you to create compositions from Actions in any supported language."/>
        </div>
    </main>

    <main>
        <a class="indexable" id="openwhisk-benefits"></a>
        <div class="image-wrapper">
            <img src="{{ site.github.url }}/images/illustrations/OW-Utilization-Scaling.png" alt="Apache OpenWhisk automatically scales and maximizes and server utilization as events trigger action functions.">
        </div>
        <div class="content">
              <h4>Scaling Per-Request &amp; Optimal Utilization</h4>
              <p>
                  Run your action ten thousand times in a fraction of a second, or once
                  a week. Action instances scale to meet demand as needed, then disappear.
                  Enjoy optimal utilization where you don't pay for idle resources.
              </p>
        </div>
    </main>

    <main>
        <a class="indexable" id="openwhisk-community"></a>
        <div class="content">
            <h4>Join a vibrant open source community</h4>
            <p>
                Play a critical part in building game-changing cloud technology.
                Share your actions and triggers with the community, add your
                Runtimes, Package integrations and plug-ins to the Apache
                OpenWhisk ecosystem, or join our community of developers to
                make Apache OpenWhisk the best open source Serverless platform.
            </p>
            <a class="button" href="{{ site.github.url }}/community.html">Join the OpenWhisk Community</a>
        </div>
        <div class="image-wrapper">
            <a href="http://www.apache.org/foundation/sponsorship.html">
              <img style="max-height=174px; max-width:174px;" src="{{ site.github.url }}/images/logo/SupportApache-small.png"
              alt="The Apache OpenWhisk project needs the support of contributors in all areas."/></a>
        </div>
    </main>
</section>
