---
layout: page
title: Apache Karaf - The Modulith Runtime
permalink: /
---

<main role="main">

  <div class="container-fluid product pt-5 pb-5 mx-auto">
    <div class="row pt-5 pb-5">
      <div class="col pt-5 pb-5 mx-auto text-center">
        <h1 class="display-4 text-uppercase">The Modulith Runtime</h1>
        <p class="lead">Karaf provides modulith runtime for the enterprise, running on premise or on cloud.<br>
        Focus on your business code and applications, Apache Karaf deals with the rest</p>
      </div>
    </div>
  </div>

  <div id="myCarousel" class="carousel slide" data-ride="carousel">
    <ol class="carousel-indicators">
      <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
      <li data-target="#myCarousel" data-slide-to="1"></li>
      <li data-target="#myCarousel" data-slide-to="2"></li>
      <li data-target="#myCarousel" data-slide-to="3"></li>
      <li data-target="#myCarousel" data-slide-to="4"></li>
      <li data-target="#myCarousel" data-slide-to="5"></li>
    </ol>
    <div class="carousel-inner">
      <div class="carousel-item active">
        <div class="container">
          <div class="carousel-caption">
            <p><strong>Karaf 4.3.2 has been released! (14/05/21)</strong> - This is a new release for Karaf 4.3.x series. It contains updates, new features and fixes. (<a href="/news.html">Details</a>)</p>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="container">
          <div class="carousel-caption">
            <p><strong>Karaf 4.3.1 has been released! (02/04/21)</strong> - This is a new release for Karaf 4.3.x series. It contains updates, new features and fixes. (<a href="/news.html">Details</a>)</p>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="container">
          <div class="carousel-caption">
            <p><strong>Karaf 4.2.11 has been released! (15/03/21)</strong> - This is a new release for Karaf 4.2.x series. It contains updates, new features and fixes. (<a href="/news.html">Details</a>)</p>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="container">
          <div class="carousel-caption">
            <p><strong>Karaf Decanter 2.7.0 has been released! (15/02/21)</strong> - This is a new major release for Karaf Decanter 2.x series. It contains bunch of updates, new features and fixes. (<a href="/news.html">Details</a>)</p>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="container">
          <div class="carousel-caption">
            <p><strong>Karaf runtime 4.3.0 has been released! (30/10/20)</strong> - This is a new major release for Karaf, 4.3.x is now the stable branch. It contains bunch of updates, new features and fixes. (<a href="/news.html">Details</a>)</p>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="container">
          <div class="carousel-caption">
            <p><strong>ApacheCon 2020 @Home! (29/9/20)</strong> - All sessions are now available on our YouTube channel! (<a href="/news.html">Details</a>)</p>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="container">
          <div class="carousel-caption">
            <p><strong>Karaf Cellar 4.2.1 has been released! (21/8/20)</strong> - This is a new major release for Apache Cellar 4.2.x, containing bug fixes and improvements. (<a href="/news.html">Details</a>)</p>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="container">
          <div class="carousel-caption">
            <p><strong>Karaf Cellar 4.2.0 has been released! (18/7/20)</strong> - This is a new major release for Apache Cellar 4.2.x, containing bug fixes and improvements. (<a href="/news.html">Details</a>)</p>
          </div>
        </div>
      </div>
    </div>
  </div>


  <!-- Marketing messaging and featurettes
  ================================================== -->
  <!-- Wrap the rest of the page in another container to center all the content. -->

  <div class="container marketing">

    <!-- Three columns of text below the carousel -->
    <div class="row">
      <div class="col-lg-4">
        <h1><i class="fas fa-cogs"></i></h1>
        <h3>Modulith Runtime</h3>
        <p>Karaf is the modulith runtime, supporting a wide range of frameworks and technologies.</p>
      </div><!-- /.col-lg-4 -->
      <div class="col-lg-4">
        <h1><i class="fas fa-cubes"></i></h1>
        <h3>Enterprise Ready</h3>
        <p>Karaf provides enterprise ready features: shell console, remote access, hot deployment, dynamic configuration and many more. Karaf projects provide additional features like clustering, complete monitoring and alerting, application repository.</p>
      </div><!-- /.col-lg-4 -->
      <div class="col-lg-4">
        <h1><i class="fas fa-cloud"></i></h1>
        <h3>On cloud or on premise</h3>
        <p>Run anywhere (on any machine with Java, cloud, docker images) running your applications with Karaf. </p>
      </div><!-- /.col-lg-4 -->
    </div><!-- /.row -->


    <!-- START THE FEATURETTES -->

    <hr class="featurette-divider">

    <div class="row featurette">
      <div class="col-md-7">
        <h2 class="featurette-heading">Power your applications with <span class="text-muted">Karaf Runtime</span></h2>
        <p class="lead">Karaf is a lightweight, powerful, and enterprise ready modulith runtime. It provides all the ecosystem and bootstrapping options you need for your applications. It runs on premise or on cloud.
        This modulith runtime supports several frameworks and different kind of applications: REST/API, Web, Spring Boot, and much more.</p>
        <p>Last version <strong>4.3.2</strong> - (14/05/21)</p>
        <p><a class="btn btn-primary" href="/projects.html" role="button">Learn more &raquo;</a></p>
      </div>
      <div class="col-md-5">
        <div class="bg-dark p-2 mb-2 mt-2 text-white text-center">
          Enterprise Features
        </div>
        <div class="bg-dark p-2 mb-2 mt-2 text-white text-center">
          HTTP Service
        </div>
        <div class="row p-2 mb-2 mt-2">
            <div class="col bg-secondary text-white p-2 ml-2 mr-2 text-center">
                Instance
            </div>
            <div class="col bg-secondary text-white p-2 ml-2 mr-2 text-center">
                JMX
            </div>
            <div class="col bg-secondary text-white p-2 ml-2 mr-2 text-center">
                Configuration
            </div>
            <div class="col bg-secondary text-white p-2 ml-2 mr-2 text-center">
                Security
            </div>
        </div>
        <div class="row pb-2 pl-2 pr-2 mb-2 mt-2 ">
            <div class="col bg-secondary text-white p-2 ml-2 mr-2 text-center">
                Shell / SSH
            </div>
            <div class="col bg-secondary text-white p-2 ml-2 mr-2 text-center">
                Logging
            </div>
            <div class="col bg-secondary text-white p-2 ml-2 mr-2 text-center">
                Deployers
            </div>
            <div class="col bg-secondary text-white p-2 ml-2 mr-2 text-center">
                Provisioning
            </div>
        </div>
        <div class="border p-2 mb-2 mt-2 text-center">
          Frameworks (JAXRS / Spring Boot / ...)
        </div>
        <div class="bg-primary p-2 mb-2 mt-2 text-white text-center">
          JVM
        </div>
      </div>
    </div>

    <hr class="featurette-divider">

    <div class="row featurette">
      <div class="col-md-7 order-md-2">
        <h2 class="featurette-heading">Manage bunch of clustered instances with <span class="text-muted">Karaf Cellar.</span></h2>
        <p class="lead">You have bunch of Karaf Runtime instances running ? You want to manage those instances as one, spreading the configuration, deployment, etc ? Karaf Cellar is for you. Karaf Cellar is a clustering solution for Karaf. It allows you to manage multiple instances, with synchronization between the instances.</p>
        <p>Last version <strong>4.2.0</strong> - (18/07/20)</p>
        <p><a class="btn btn-primary" href="/projects.html" role="button">Learn more &raquo;</a></p>
      </div>
      <div class="col-md-5 order-md-1">
        <div class="bg-dark p-4 mb-2 mt-2 text-white text-center">
          Discovery
        </div>
        <div class="bg-secondary p-4 mb-2 mt-2 text-white text-center">
          Cluster groups
        </div>
        <div class="bg-secondary p-4 mb-2 mt-2 text-white text-center">
          Sync and distribute resources
        </div>
        <div class="bg-primary p-4 mb-2 mt-2 text-white text-center">
          DOSGi
        </div>
      </div>
    </div>

    <hr class="featurette-divider">

    <div class="row featurette">
      <div class="col-md-7">
        <h2 class="featurette-heading">Manage your artifacts repositories with  <span class="text-muted">Karaf Cave.</span></h2>
        <p class="lead">Karaf Cave is an implementation of OSGi Repository specification. It can be used by the Karaf Features Resolver to provide resources, dealing with the requirements and capabilities of artifacts.</p>
        <p>Last version <strong>4.2.1</strong> - (29/11/19)</p>
        <p><a class="btn btn-primary" href="/projects.html" role="button">Learn more &raquo;</a></p>
      </div>
      <div class="col-md-5 order-md-1">
        <div class="bg-dark p-4 mb-2 mt-2 text-white text-center">
          Repository metadata
        </div>
        <div class="bg-secondary p-4 mb-2 mt-2 text-white text-center">
          Repository proxy and populate
        </div>
        <div class="bg-secondary p-4 mb-2 mt-2 text-white text-center">
          Maven support
        </div>
        <div class="bg-primary p-4 mb-2 mt-2 text-white text-center">
          Storage
        </div>
      </div>
    </div>

    <hr class="featurette-divider">

    <div class="row featurette">
      <div class="col-md-7 order-md-2">
        <h2 class="featurette-heading">Monitoring, alerting, and BAM with <span class="text-muted">Karaf Decanter.</span></h2>
        <p class="lead">You need a monitoring solution for Karaf and related ? You need a BAM (Business Activity Monitoring) platform for your application ? Karaf Decanter can be very convenient for you ! Decanter provides ready to use monitoring solution. It's also completely extensible and customizable.</p>
        <p>Last version <strong>2.7.0</strong> - (15/2/21)</p>
        <p><a class="btn btn-primary" href="/projects.html" role="button">Learn more &raquo;</a></p>
      </div>
      <div class="col-md-5 order-md-1">
        <div class="bg-dark p-4 mb-2 mt-2 text-white text-center">
          Collectors
        </div>
        <div class="bg-secondary p-4 mb-2 mt-2 text-white text-center">
          Dispatcher
        </div>
        <div class="bg-secondary p-4 mb-2 mt-2 text-white text-center">
          Alerting
        </div>
        <div class="bg-dark p-4 mb-2 mt-2 text-white text-center">
          Appenders
        </div>
      </div>
    </div>

    <hr class="featurette-divider">

    <div class="row featurette">
      <div class="col-md-5">
        <h2 class="featurette-heading"><span class="text-muted">Apache Karaf</span> enterprise modulith runtime.</h2>
        <p class="lead">DevOps, Cloud, On Premise, Monitoring, Clustering... Apache Karaf is the perfect project for the companies that need performance and flexibility.</p>
        <p class="lead">Download the latest ApacheCon slideshow to have an overview of the amazing possibilities that Apache Karaf offer to your business!</p>
        <p><a class="btn btn-primary" href="/resources/acna20-apache-karaf-modulith-runtime.pdf" role="button">Download &raquo;</a></p>
      </div>
      <div class="col-md-7 order-md-1">
        <img src="/images/acna20-apache-karaf-modulith-runtime.png" width="600px"/>
      </div>
    </div>

    <hr class="featurette-divider">

    <div class="row featurette">
      <div class="col-md-7">
        <h2 class="featurette-heading">Apache & <span class="text-muted">OpenSource.</span></h2>
        <p class="lead">
          Karaf is your project !
          Karaf is an <a href="https://www.apache.org">Apache Software Foundation</a> project, available under the Apache v2 license.<br/>
          It's a complete open community, always listening proposals and comments.<br/>
          <a href="/community.html">Sources</a>, <a href="/community.html">mailing lists</a>, <a href="/community.html">issue tracker</a>: it's fully open, you can access directly.<br/>
          We also love contributions : don't hesitate to <a href="/community.html">contribute</a>.
        </p>
        <p>
          <a href="/community.html">Be Involved In The Community</a> |
          <a href="/community.html">How To Contribute</a>
        </p>
      </div>
      <div class="col-md-5 align-items-center">
        <img class="featurette-image img-fluid mx-auto" src="/images/apache.png" alt="Apache"><br><br><br>
        <a href="https://www.apachecon.com/acah2020/" target="_blank">
          <img class="featurette-image img-fluid mx-auto" src="https://www.apache.org/events/current-event-234x60.png" alt="ApacheCon" />
        </a>
      </div>
    </div>

    <hr class="featurette-divider">

    <!-- /END THE FEATURETTES -->

  </div><!-- /.container -->
</main>
