<!DOCTYPE html>
<html class="no-js" lang="en">
    <head>
        <title>Apache NiFi MiNiFi</title>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="shortcut icon" href="/assets/images/nifi16.ico"/>
        <link rel="stylesheet" href="/stylesheets/app.min.27f785d2dfa83c24896261ad5106f3c19ee004c4d04b8a1c4b22e03a3a9fcb2a.css">
        <link rel="stylesheet" href="/assets/stylesheets/font-awesome.min.css">
        <script src="/assets/js/modernizr.js"></script>
        <script src="/assets/js/webfontloader.js"></script>
        <script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var baseUri = "//matomo.privacy.apache.org/";
    _paq.push(['setTrackerUrl', baseUri + 'matomo.php']);
    _paq.push(['setSiteId', '28']);
    var trackerElement = document.createElement('script');
    var firstScriptElement = document.getElementsByTagName('script')[0];
    trackerElement.async = true;
    trackerElement.src = baseUri + 'matomo.js';
    var firstScriptElement = document.getElementsByTagName('script')[0];
    if (window.location.host === 'nifi.apache.org') {
      firstScriptElement.parentNode.insertBefore(trackerElement, firstScriptElement);
    }
  })();
</script>
</head>
    <body><div class="sticky contain-to-grid">
    <nav class="top-bar" data-topbar role="navigation">
        <ul class="title-area">
            <li class="name">
                <h1>
                    <a href="index.html">
                        <img id="logo-top-bar" src="/assets/images/minifi-drop-white.svg" alt="MiNiFi"/>
                    </a>
                </h1>
            </li>
            
            <li class="toggle-topbar menu-icon"><a href="#"><span></span></a></li>
        </ul>

        <section class="top-bar-section">
            
            <ul class="right">
                <li class="has-dropdown">
                    <a href="#">MiNiFi Java</a>
                    <ul class="dropdown">
                        <li><a href="java-quick-start.html"><i class="fa"></i>Quick Start</a></li>
                        <li><a href="java-toolkit.html"><i class="fa"></i>Converter Toolkit</a></li>
                        <li><a href="java-system-admin-guide.html"><i class="fa"></i>Administrator's Guide</a></li>
                        <li><a href="java-download.html"><i class="fa fa-download external-link"></i>Download</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">MiNiFi C++</a>
                    <ul class="dropdown">
                        <li><a href="https://github.com/apache/nifi-minifi-cpp?tab=readme-ov-file#installing-as-a-service"><i class="fa fa-external-link external-link"></i>Installation</a></li>
                        <li><a href="https://github.com/apache/nifi-minifi-cpp/blob/main/CONFIGURE.md"><i class="fa fa-external-link external-link"></i>Configuration</a></li>
                        <li><a href="https://github.com/apache/nifi-minifi-cpp/blob/main/PROCESSORS.md"><i class="fa fa-external-link external-link"></i>Processors</a></li>
                        <li><a href="https://github.com/apache/nifi-minifi-cpp/blob/main/examples/README.md"><i class="fa fa-external-link external-link"></i>Examples</a></li>
                        <li><a href="cpp-download.html"><i class="fa fa-download external-link"></i>Download</a></li>
                    </ul>
                </li>

                <li class="has-dropdown">
                    <a href="#">Community</a>
                    <ul class="dropdown">
                        <li><a href="https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide"><i class="fa fa-external-link external-link"></i>Contributor Guide</a></li>
                        <li><a href="../mailing_lists.html">Mailing Lists &amp; Chat</a></li>
                        <li><a href="../people.html">People</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/MiNiFi"><i class="fa fa-external-link external-link"></i>Wiki</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Development</a>
                    <ul class="dropdown">
                        <li><a href="../release-guide.html">Release Guide</a></li>
                        <li><a href="../licensing-guide.html">Licensing Guide</a></li>
                        <li><a href="https://gitbox.apache.org/repos/asf?p=nifi.git"><i class="fa fa-external-link external-link"></i>Source - Java Agent</a></li>
                        <li><a href="https://github.com/apache/nifi"><i class="fa fa-github external-link"></i>Source - GitHub - Java Agent</a></li>
                        <li><a href="https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git"><i class="fa fa-external-link external-link"></i>Source - C++ Agent</a></li>
                        <li><a href="https://github.com/apache/nifi-minifi-cpp"><i class="fa fa-github external-link"></i>Source - GitHub - C++ Agent</a></li>
                        <li><a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20NIFI%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20%22MiNiFi%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC"><i class="fa fa-external-link external-link"></i>MiNiFi Java Issues</a></li>
                        <li><a href="https://issues.apache.org/jira/browse/MINIFICPP"><i class="fa fa-external-link external-link"></i>MiNiFi C++ Issues</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">ASF Links</a>
                    <ul class="dropdown">
                        <li><a href="https://www.apache.org"><i class="fa fa-external-link external-link"></i>Apache Software Foundation</a></li>
                        <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html"><i class="fa fa-external-link external-link"></i>Privacy Policy</a></li>
                        <li><a href="https://www.apache.org/foundation/sponsorship.html"><i class="fa fa-external-link external-link"></i>Sponsorship</a></li>
                        <li><a href="https://www.apache.org/security/"><i class="fa fa-external-link external-link"></i>Security</a></li>
                        <li><a href="https://www.apache.org/foundation/thanks.html"><i class="fa fa-external-link external-link"></i>Thanks</a></li>
                    </ul>
                </li>
                <li>
                    <a href="../index.html">Apache NiFi</a>
                </li>
            </ul>
        </section>
    </nav>
</div>
          <div class="row">
            <div class="large-12 columns">
              <div class="large-space"></div>
	<div class="large-6">
  <img id="minifi-logo" src="/assets/images/minifi/minifi-logo.svg" alt="MiNiFi logo">
</div>
<p class="description">A subproject of Apache NiFi to collect data from the point of origin.</p>
<h2 id="overview">Overview</h2>
<p>Apache NiFi MiNiFi is an Apache NiFi project, designed to collect data at its source. MiNiFi was developed with the following objectives in mind:</p>
<ul>
<li>Small and lightweight footprint</li>
<li>Central agent management</li>
<li>Data provenance generation</li>
<li>NiFi integration for follow-on dataflow management and chain of custody information</li>
</ul>
<h3 id="minifi-java">MiNiFi Java</h3>
<p>The Java agent is built from the same codebase as NiFi, enabling it to run most of <a href="http://nifi.apache.org/docs.html">NiFi&rsquo;s processors</a>.
However, it results in a larger binary distribution, consumes greater system resources, and requires JRE, compared to MiNiFi C++.
If you require maximum flexibility to make routing and processing decisions at your data&rsquo;s point of origin, the Java agent is a good fit.</p>
<h3 id="minifi-c">MiNiFi C++</h3>
<p>The C++ agent is a native reimplementation of MiNiFi Java.
Due to the absence of a JVM, it consumes fewer system resources but has a <a href="https://github.com/apache/nifi-minifi-cpp/blob/main/PROCESSORS.md">limited subset of processors</a>, and their properties might slightly differ from NiFi.
If your primary concern is gathering and pushing data to downstream consumers while minimizing system impact, the C++ agent is a good fit.</p>

</div>
          </div>
        <div class="row">
    <div class="large-12 columns footer">
        <a href="https://www.apache.org">
            <img id="asf-logo" alt="Apache Software Foundation" src="/assets/images/asf_logo.png" width="200" style="margin:0px 10px" />
        </a>
        <a  href="https://www.apache.org/events/current-event.html">
            <img src="https://www.apache.org/events/current-event-234x60.png" style="margin:0px 10px" />
        </a>
        <div id="copyright">
            <p>Copyright &#169; 2023 The Apache Software Foundation, Licensed under the <a
                    href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/>Apache, the
                Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software
                Foundation.</p>
        </div>
    </div>
</div>
        <script src="/assets/js/jquery.min.js"></script>
        <script src="/assets/js/foundation.js"></script>
        <script src="/assets/js/app.js"></script>
    </body>
</html>