<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar Functions command line tool · Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The following tables list Pulsar Functions command-line tools. You can learn Pulsar Functions modes, commands, and parameters."/><meta name="docsearch:version" content="2.6.2"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Pulsar Functions command line tool · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.apache.org/"/><meta property="og:description" content="The following tables list Pulsar Functions command-line tools. You can learn Pulsar Functions modes, commands, and parameters."/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.apache.org/blog/atom.xml" title="Apache Pulsar Blog ATOM Feed"/><link rel="alternate" type="application/rss+xml" href="https://pulsar.apache.org/blog/feed.xml" title="Apache Pulsar Blog RSS Feed"/><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/en"><img class="logo" src="/img/pulsar.svg" alt="Apache Pulsar"/></a><a href="/en/versions"><h3>2.6.2</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive"><a href="/docs/en/2.6.2/getting-started-standalone" target="_self">Docs</a></li><li class=""><a href="/en/download" target="_self">Download</a></li><li class="siteNavGroupActive"><a href="/docs/en/2.6.2/client-libraries" target="_self">Clients</a></li><li class=""><a href="#restapis" target="_self">REST APIs</a></li><li class=""><a href="#cli" target="_self">Cli</a></li><li class=""><a href="/blog/" target="_self">Blog</a></li><li class=""><a href="#community" target="_self">Community</a></li><li class=""><a href="#apache" target="_self">Apache</a></li><li class=""><a href="https://pulsar-next.staged.apache.org/" target="_self">New Website (Beta)</a></li><span><li><a id="languages-menu" href="#"><img class="languages-icon" src="/img/language.svg" alt="Languages icon"/>English</a><div id="languages-dropdown" class="hide"><ul id="languages-dropdown-items"><li><a href="/docs/ja/2.6.2/functions-cli">日本語</a></li><li><a href="/docs/fr/2.6.2/functions-cli">Français</a></li><li><a href="/docs/ko/2.6.2/functions-cli">한국어</a></li><li><a href="/docs/zh-CN/2.6.2/functions-cli">中文</a></li><li><a href="/docs/zh-TW/2.6.2/functions-cli">繁體中文</a></li><li><a href="https://crowdin.com/project/apache-pulsar" target="_blank" rel="noreferrer noopener">Help Translate</a></li></ul></div></li><script>
        const languagesMenuItem = document.getElementById("languages-menu");
        const languagesDropDown = document.getElementById("languages-dropdown");
        languagesMenuItem.addEventListener("click", function(event) {
          event.preventDefault();

          if (languagesDropDown.className == "hide") {
            languagesDropDown.className = "visible";
          } else {
            languagesDropDown.className = "hide";
          }
        });
      </script></span></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i>›</i><span>Pulsar Functions</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Get Started</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/pulsar-2.0">Pulsar 2.0</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/getting-started-standalone">Run Pulsar locally</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/getting-started-docker">Run Pulsar in Docker</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/getting-started-helm">Run Pulsar in Kubernetes</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/client-libraries">Use Pulsar with client libraries</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Concepts and Architecture</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-overview">Overview</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-messaging">Messaging</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-architecture-overview">Architecture</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-clients">Clients</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-replication">Geo Replication</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-multi-tenancy">Multi Tenancy</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-authentication">Authentication and Authorization</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-topic-compaction">Topic Compaction</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-tiered-storage">Tiered Storage</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-proxy-sni-routing">Proxy support with SNI routing</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/concepts-multiple-advertised-listeners">Multiple advertised listeners</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Pulsar Schema</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/schema-get-started">Get started</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/schema-understand">Understand schema</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/schema-evolution-compatibility">Schema evolution and compatibility</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/schema-manage">Manage schema</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Pulsar Functions</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/functions-overview">Overview</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/functions-worker">Setup: Pulsar Functions Worker</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/functions-runtime">Setup: Configure Functions runtime</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/functions-develop">How-to: Develop</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/functions-debug">How-to: Debug</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/functions-deploy">How-to: Deploy</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/docs/en/2.6.2/functions-cli">Reference: CLI</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/window-functions-context">Window Functions: Context</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Pulsar IO</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/io-overview">Overview</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/io-quickstart">Get started</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/io-use">Use</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/io-debug">Debug</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/io-connectors">Built-in connector</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/io-cdc">CDC connector</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/io-develop">Develop</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/io-cli">CLI</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Pulsar SQL</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/sql-overview">Overview</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/sql-getting-started">Query data</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/sql-deployment-configurations">Configuration and deployment</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/sql-rest-api">REST APIs</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Kubernetes (Helm)</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/helm-overview">Overview</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/helm-prepare">Prepare</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/helm-install">Install</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/helm-deploy">Deployment</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/helm-upgrade">Upgrade</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/helm-tools">Required Tools</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Deployment</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/deploy-aws">Amazon Web Services</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/deploy-kubernetes">Kubernetes</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/deploy-bare-metal">Bare metal</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/deploy-bare-metal-multi-cluster">Bare metal multi-cluster</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/deploy-monitoring">Monitoring</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Administration</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/administration-zk-bk">ZooKeeper and BookKeeper</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/administration-geo">Geo-replication</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/administration-pulsar-manager">Pulsar Manager</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/administration-stats">Pulsar statistics</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/administration-load-balance">Load balance</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/administration-proxy">Pulsar proxy</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/administration-upgrade">Upgrade</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Security</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-overview">Overview</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-tls-transport">Transport Encryption using TLS</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-tls-authentication">Authentication using TLS</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-tls-keystore">Using TLS with KeyStore configure</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-jwt">Authentication using JWT</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-athenz">Authentication using Athenz</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-kerberos">Authentication using Kerberos</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-oauth2">Authentication using OAuth 2.0 access tokens</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-authorization">Authorization and ACLs</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-encryption">End-to-End Encryption</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-extending">Extending</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/security-bouncy-castle">Bouncy Castle Providers</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Performance</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/performance-pulsar-perf">Pulsar Perf</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Client Libraries</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/client-libraries-java">Java</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/client-libraries-go">Go</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/client-libraries-python">Python</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/client-libraries-cpp">C++</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/client-libraries-node">Node.js</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/client-libraries-websocket">WebSocket</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/client-libraries-dotnet">C#</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Admin API</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-overview">Overview</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-clusters">Clusters</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-tenants">Tenants</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-brokers">Brokers</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-namespaces">Namespaces</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-permissions">Permissions</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-persistent-topics">Persistent topics</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-non-persistent-topics">Non-Persistent topics</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-partitioned-topics">Partitioned topics</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-non-partitioned-topics">Non-Partitioned topics</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/admin-api-functions">Functions</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Adaptors</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/adaptors-kafka">Kafka client wrapper</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/adaptors-spark">Apache Spark</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/adaptors-storm">Apache Storm</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Cookbooks</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/cookbooks-tiered-storage">Tiered Storage</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/cookbooks-compaction">Topic compaction</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/cookbooks-deduplication">Message deduplication</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/cookbooks-non-persistent">Non-persistent messaging</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/cookbooks-partitioned">Partitioned Topics</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/cookbooks-retention-expiry">Message retention and expiry</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/cookbooks-encryption">Encryption</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/cookbooks-message-queue">Message queue</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/cookbooks-bookkeepermetadata">BookKeeper Ledger Metadata</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Development</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/develop-tools">Simulation tools</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/developing-binary-protocol">Binary protocol</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/develop-schema">Custom schema storage</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/develop-load-manager">Modular load manager</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/develop-cpp">Building Pulsar C++ client</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Reference</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/reference-terminology">Terminology</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/reference-cli-tools">Pulsar CLI tools</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/reference-configuration">Pulsar configuration</a></li><li class="navListItem"><a class="navItem" href="/docs/en/2.6.2/reference-metrics">Pulsar Metrics</a></li></ul></div></div></section></div><script>
            var coll = document.getElementsByClassName('collapsible');
            var checkActiveCategory = true;
            for (var i = 0; i < coll.length; i++) {
              var links = coll[i].nextElementSibling.getElementsByTagName('*');
              if (checkActiveCategory){
                for (var j = 0; j < links.length; j++) {
                  if (links[j].classList.contains('navListItemActive')){
                    coll[i].nextElementSibling.classList.toggle('hide');
                    coll[i].childNodes[1].classList.toggle('rotate');
                    checkActiveCategory = false;
                    break;
                  }
                }
              }

              coll[i].addEventListener('click', function() {
                var arrow = this.childNodes[1];
                arrow.classList.toggle('rotate');
                var content = this.nextElementSibling;
                content.classList.toggle('hide');
              });
            }

            document.addEventListener('DOMContentLoaded', function() {
              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
              createToggler('#tocToggler', 'body', 'tocActive');

              var headings = document.querySelector('.toc-headings');
              headings && headings.addEventListener('click', function(event) {
                var el = event.target;
                while(el !== headings){
                  if (el.tagName === 'A') {
                    document.body.classList.remove('tocActive');
                    break;
                  } else{
                    el = el.parentNode;
                  }
                }
              }, false);

              function createToggler(togglerSelector, targetSelector, className) {
                var toggler = document.querySelector(togglerSelector);
                var target = document.querySelector(targetSelector);

                if (!toggler) {
                  return;
                }

                toggler.onclick = function(event) {
                  event.preventDefault();

                  target.classList.toggle(className);
                };
              }
            });
        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/pulsar/edit/master/site2/docs/functions-cli.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Pulsar Functions command line tool</h1></header><article><div><span><p>The following tables list Pulsar Functions command-line tools. You can learn Pulsar Functions modes, commands, and parameters.</p>
<h2><a class="anchor" aria-hidden="true" id="localrun"></a><a href="#localrun" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>localrun</h2>
<p>Run Pulsar Functions locally, rather than deploying it to the Pulsar cluster.</p>
<table>
<thead>
<tr><th>Name</th><th>Description</th><th>Default</th></tr>
</thead>
<tbody>
<tr><td>auto-ack</td><td>Whether or not the framework acknowledges messages automatically.</td><td>true</td></tr>
<tr><td>broker-service-url</td><td>The URL for the Pulsar broker.</td><td></td></tr>
<tr><td>classname</td><td>The class name of a Pulsar Function.</td><td></td></tr>
<tr><td>client-auth-params</td><td>Client authentication parameter.</td><td></td></tr>
<tr><td>client-auth-plugin</td><td>Client authentication plugin using which function-process can connect to broker.</td><td></td></tr>
<tr><td>CPU</td><td>The CPU in cores that need to be allocated per function instance (applicable only to docker runtime).</td><td></td></tr>
<tr><td>custom-schema-inputs</td><td>The map of input topics to Schema class names (as a JSON string).</td><td></td></tr>
<tr><td>custom-serde-inputs</td><td>The map of input topics to SerDe class names (as a JSON string).</td><td></td></tr>
<tr><td>dead-letter-topic</td><td>The topic where all messages that were not processed successfully are sent. This parameter is not supported in Python Functions.</td><td></td></tr>
<tr><td>disk</td><td>The disk in bytes that need to be allocated per function instance (applicable only to docker runtime).</td><td></td></tr>
<tr><td>fqfn</td><td>The Fully Qualified Function Name (FQFN) for the function.</td><td></td></tr>
<tr><td>function-config-file</td><td>The path to a YAML config file specifying the configuration of a Pulsar Function.</td><td></td></tr>
<tr><td>go</td><td>Path to the main Go executable binary for the function (if the function is written in Go).</td><td></td></tr>
<tr><td>hostname-verification-enabled</td><td>Enable hostname verification.</td><td>false</td></tr>
<tr><td>inputs</td><td>The input topic or topics of a Pulsar Function (multiple topics can be specified as a comma-separated list).</td><td></td></tr>
<tr><td>jar</td><td>Path to the jar file for the function (if the function is written in Java). It also supports URL-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
<tr><td>instance-id-offset</td><td>Start the instanceIds from this offset.</td><td>0</td></tr>
<tr><td>log-topic</td><td>The topic to which the logs  a Pulsar Function are produced.</td><td></td></tr>
<tr><td>max-message-retries</td><td>How many times should we try to process a message before giving up.</td><td></td></tr>
<tr><td>name</td><td>The name of a Pulsar Function.</td><td></td></tr>
<tr><td>namespace</td><td>The namespace of a Pulsar Function.</td><td></td></tr>
<tr><td>output</td><td>The output topic of a Pulsar Function (If none is specified, no output is written).</td><td></td></tr>
<tr><td>output-serde-classname</td><td>The SerDe class to be used for messages output by the function.</td><td></td></tr>
<tr><td>parallelism</td><td>The parallelism factor of  a Pulsar Function (i.e. the number of function instances to run).</td><td></td></tr>
<tr><td>processing-guarantees</td><td>The processing guarantees (delivery semantics) applied to the function. Available values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE].</td><td>ATLEAST_ONCE</td></tr>
<tr><td>py</td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python).</td><td></td></tr>
<tr><td>ram</td><td>The ram in bytes that need to be allocated per function instance (applicable only to process/docker runtime).</td><td></td></tr>
<tr><td>retain-ordering</td><td>Function consumes and processes messages in order.</td><td></td></tr>
<tr><td>schema-type</td><td>The builtin schema type or custom schema class name to be used for messages output by the function.</td><td><empty string></td></tr>
<tr><td>sliding-interval-count</td><td>The number of messages after which the window slides.</td><td></td></tr>
<tr><td>sliding-interval-duration-ms</td><td>The time duration after which the window slides.</td><td></td></tr>
<tr><td>subs-name</td><td>Pulsar source subscription name if user wants a specific subscription-name for the input-topic consumer.</td><td></td></tr>
<tr><td>tenant</td><td>The tenant of a Pulsar Function.</td><td></td></tr>
<tr><td>timeout-ms</td><td>The message timeout in milliseconds.</td><td></td></tr>
<tr><td>tls-allow-insecure</td><td>Allow insecure tls connection.</td><td>false</td></tr>
<tr><td>tls-trust-cert-path</td><td>tls trust cert file path.</td><td></td></tr>
<tr><td>topics-pattern</td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (only supported in Java Function).</td><td></td></tr>
<tr><td>use-tls</td><td>Use tls connection.</td><td>false</td></tr>
<tr><td>user-config</td><td>User-defined config key/values.</td><td></td></tr>
<tr><td>window-length-count</td><td>The number of messages per window.</td><td></td></tr>
<tr><td>window-length-duration-ms</td><td>The time duration of the window in milliseconds.</td><td></td></tr>
</tbody>
</table>
<h2><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>create</h2>
<p>Create and deploy a Pulsar Function in cluster mode.</p>
<table>
<thead>
<tr><th>Name</th><th>Description</th><th>Default</th></tr>
</thead>
<tbody>
<tr><td>auto-ack</td><td>Whether or not the framework acknowledges messages automatically.</td><td>true</td></tr>
<tr><td>classname</td><td>The class name of a Pulsar Function.</td><td></td></tr>
<tr><td>CPU</td><td>The CPU in cores that need to be allocated per function instance (applicable only to docker runtime).</td><td></td></tr>
<tr><td>custom-runtime-options</td><td>A string that encodes options to customize the runtime, see docs for configured runtime for details</td><td></td></tr>
<tr><td>custom-schema-inputs</td><td>The map of input topics to Schema class names (as a JSON string).</td><td></td></tr>
<tr><td>custom-serde-inputs</td><td>The map of input topics to SerDe class names (as a JSON string).</td><td></td></tr>
<tr><td>dead-letter-topic</td><td>The topic where all messages that were not processed successfully are sent. This parameter is not supported in Python Functions.</td><td></td></tr>
<tr><td>disk</td><td>The disk in bytes that need to be allocated per function instance (applicable only to docker runtime).</td><td></td></tr>
<tr><td>fqfn</td><td>The Fully Qualified Function Name (FQFN) for the function.</td><td></td></tr>
<tr><td>function-config-file</td><td>The path to a YAML config file specifying the configuration of a Pulsar Function.</td><td></td></tr>
<tr><td>go</td><td>Path to the main Go executable binary for the function (if the function is written in Go).</td><td></td></tr>
<tr><td>inputs</td><td>The input topic or topics of a Pulsar Function (multiple topics can be specified as a comma-separated list).</td><td></td></tr>
<tr><td>jar</td><td>Path to the jar file for the function (if the function is written in Java). It also supports URL-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
<tr><td>log-topic</td><td>The topic to which the logs of a Pulsar Function are produced.</td><td></td></tr>
<tr><td>max-message-retries</td><td>How many times should we try to process a message before giving up.</td><td></td></tr>
<tr><td>name</td><td>The name of a Pulsar Function.</td><td></td></tr>
<tr><td>namespace</td><td>The namespace of a Pulsar Function.</td><td></td></tr>
<tr><td>output</td><td>The output topic of a Pulsar Function (If none is specified, no output is written).</td><td></td></tr>
<tr><td>output-serde-classname</td><td>The SerDe class to be used for messages output by the function.</td><td></td></tr>
<tr><td>parallelism</td><td>The parallelism factor of a Pulsar Function (i.e. the number of function instances to run).</td><td></td></tr>
<tr><td>processing-guarantees</td><td>The processing guarantees (delivery semantics) applied to the function. Available values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE].</td><td>ATLEAST_ONCE</td></tr>
<tr><td>py</td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python).</td><td></td></tr>
<tr><td>ram</td><td>The ram in bytes that need to be allocated per function instance (applicable only to process/docker runtime).</td><td></td></tr>
<tr><td>retain-ordering</td><td>Function consumes and processes messages in order.</td><td></td></tr>
<tr><td>schema-type</td><td>The builtin schema type or custom schema class name to be used for messages output by the function.</td><td><empty string></td></tr>
<tr><td>sliding-interval-count</td><td>The number of messages after which the window slides.</td><td></td></tr>
<tr><td>sliding-interval-duration-ms</td><td>The time duration after which the window slides.</td><td></td></tr>
<tr><td>subs-name</td><td>Pulsar source subscription name if user wants a specific subscription-name for the input-topic consumer.</td><td></td></tr>
<tr><td>tenant</td><td>The tenant of a Pulsar Function.</td><td></td></tr>
<tr><td>timeout-ms</td><td>The message timeout in milliseconds.</td><td></td></tr>
<tr><td>topics-pattern</td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (only supported in Java Function).</td><td></td></tr>
<tr><td>user-config</td><td>User-defined config key/values.</td><td></td></tr>
<tr><td>window-length-count</td><td>The number of messages per window.</td><td></td></tr>
<tr><td>window-length-duration-ms</td><td>The time duration of the window in milliseconds.</td><td></td></tr>
</tbody>
</table>
<h2><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>delete</h2>
<p>Delete a Pulsar Function that is running on a Pulsar cluster.</p>
<table>
<thead>
<tr><th>Name</th><th>Description</th><th>Default</th></tr>
</thead>
<tbody>
<tr><td>fqfn</td><td>The Fully Qualified Function Name (FQFN) for the function.</td><td></td></tr>
<tr><td>name</td><td>The name of a Pulsar Function.</td><td></td></tr>
<tr><td>namespace</td><td>The namespace of a Pulsar Function.</td><td></td></tr>
<tr><td>tenant</td><td>The tenant of a Pulsar Function.</td><td></td></tr>
</tbody>
</table>
<h2><a class="anchor" aria-hidden="true" id="update"></a><a href="#update" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>update</h2>
<p>Update a Pulsar Function that has been deployed to a Pulsar cluster.</p>
<table>
<thead>
<tr><th>Name</th><th>Description</th><th>Default</th></tr>
</thead>
<tbody>
<tr><td>auto-ack</td><td>Whether or not the framework acknowledges messages automatically.</td><td>true</td></tr>
<tr><td>classname</td><td>The class name of a Pulsar Function.</td><td></td></tr>
<tr><td>CPU</td><td>The CPU in cores that need to be allocated per function instance (applicable only to docker runtime).</td><td></td></tr>
<tr><td>custom-runtime-options</td><td>A string that encodes options to customize the runtime, see docs for configured runtime for details</td><td></td></tr>
<tr><td>custom-schema-inputs</td><td>The map of input topics to Schema class names (as a JSON string).</td><td></td></tr>
<tr><td>custom-serde-inputs</td><td>The map of input topics to SerDe class names (as a JSON string).</td><td></td></tr>
<tr><td>dead-letter-topic</td><td>The topic where all messages that were not processed successfully are sent. This parameter is not supported in Python Functions.</td><td></td></tr>
<tr><td>disk</td><td>The disk in bytes that need to be allocated per function instance (applicable only to docker runtime).</td><td></td></tr>
<tr><td>fqfn</td><td>The Fully Qualified Function Name (FQFN) for the function.</td><td></td></tr>
<tr><td>function-config-file</td><td>The path to a YAML config file specifying the configuration of a Pulsar Function.</td><td></td></tr>
<tr><td>go</td><td>Path to the main Go executable binary for the function (if the function is written in Go).</td><td></td></tr>
<tr><td>inputs</td><td>The input topic or topics of a Pulsar Function (multiple topics can be specified as a comma-separated list).</td><td></td></tr>
<tr><td>jar</td><td>Path to the jar file for the function (if the function is written in Java). It also supports URL-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.</td><td></td></tr>
<tr><td>log-topic</td><td>The topic to which the logs of a Pulsar Function are produced.</td><td></td></tr>
<tr><td>max-message-retries</td><td>How many times should we try to process a message before giving up.</td><td></td></tr>
<tr><td>name</td><td>The name of a Pulsar Function.</td><td></td></tr>
<tr><td>namespace</td><td>The namespace of a Pulsar Function.</td><td></td></tr>
<tr><td>output</td><td>The output topic of a Pulsar Function (If none is specified, no output is written).</td><td></td></tr>
<tr><td>output-serde-classname</td><td>The SerDe class to be used for messages output by the function.</td><td></td></tr>
<tr><td>parallelism</td><td>The parallelism factor of a Pulsar Function (i.e. the number of function instances to run).</td><td></td></tr>
<tr><td>processing-guarantees</td><td>The processing guarantees (delivery semantics) applied to the function. Available values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE].</td><td>ATLEAST_ONCE</td></tr>
<tr><td>py</td><td>Path to the main Python file/Python Wheel file for the function (if the function is written in Python).</td><td></td></tr>
<tr><td>ram</td><td>The ram in bytes that need to be allocated per function instance (applicable only to process/docker runtime).</td><td></td></tr>
<tr><td>retain-ordering</td><td>Function consumes and processes messages in order.</td><td></td></tr>
<tr><td>schema-type</td><td>The builtin schema type or custom schema class name to be used for messages output by the function.</td><td><empty string></td></tr>
<tr><td>sliding-interval-count</td><td>The number of messages after which the window slides.</td><td></td></tr>
<tr><td>sliding-interval-duration-ms</td><td>The time duration after which the window slides.</td><td></td></tr>
<tr><td>subs-name</td><td>Pulsar source subscription name if user wants a specific subscription-name for the input-topic consumer.</td><td></td></tr>
<tr><td>tenant</td><td>The tenant of a Pulsar Function.</td><td></td></tr>
<tr><td>timeout-ms</td><td>The message timeout in milliseconds.</td><td></td></tr>
<tr><td>topics-pattern</td><td>The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (only supported in Java Function).</td><td></td></tr>
<tr><td>update-auth-data</td><td>Whether or not to update the auth data.</td><td>false</td></tr>
<tr><td>user-config</td><td>User-defined config key/values.</td><td></td></tr>
<tr><td>window-length-count</td><td>The number of messages per window.</td><td></td></tr>
<tr><td>window-length-duration-ms</td><td>The time duration of the window in milliseconds.</td><td></td></tr>
</tbody>
</table>
<h2><a class="anchor" aria-hidden="true" id="get"></a><a href="#get" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>get</h2>
<p>Fetch information about a Pulsar Function.</p>
<table>
<thead>
<tr><th>Name</th><th>Description</th><th>Default</th></tr>
</thead>
<tbody>
<tr><td>fqfn</td><td>The Fully Qualified Function Name (FQFN) for the function.</td><td></td></tr>
<tr><td>name</td><td>The name of a Pulsar Function.</td><td></td></tr>
<tr><td>namespace</td><td>The namespace of a Pulsar Function.</td><td></td></tr>
<tr><td>tenant</td><td>The tenant of a Pulsar Function.</td><td></td></tr>
</tbody>
</table>
<h2><a class="anchor" aria-hidden="true" id="restart"></a><a href="#restart" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>restart</h2>
<p>Restart function instance.</p>
<table>
<thead>
<tr><th>Name</th><th>Description</th><th>Default</th></tr>
</thead>
<tbody>
<tr><td>fqfn</td><td>The Fully Qualified Function Name (FQFN) for the function.</td><td></td></tr>
<tr><td>instance-id</td><td>The function instanceId (restart all instances if instance-id is not provided.</td><td></td></tr>
<tr><td>name</td><td>The name of a Pulsar Function.</td><td></td></tr>
<tr><td>namespace</td><td>The namespace of a Pulsar Function.</td><td></td></tr>
<tr><td>tenant</td><td>The tenant of a Pulsar Function.</td><td></td></tr>
</tbody>
</table>
<h2><a class="anchor" aria-hidden="true" id="stop"></a><a href="#stop" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>stop</h2>
<p>Stops function instance.</p>
<table>
<thead>
<tr><th>Name</th><th>Description</th><th>Default</th></tr>
</thead>
<tbody>
<tr><td>fqfn</td><td>The Fully Qualified Function Name (FQFN) for the function.</td><td></td></tr>
<tr><td>instance-id</td><td>The function instanceId (restart all instances if instance-id is not provided.</td><td></td></tr>
<tr><td>name</td><td>The name of a Pulsar Function.</td><td></td></tr>
<tr><td>namespace</td><td>The namespace of a Pulsar Function.</td><td></td></tr>
<tr><td>tenant</td><td>The tenant of a Pulsar Function.</td><td></td></tr>
</tbody>
</table>
<h2><a class="anchor" aria-hidden="true" id="start"></a><a href="#start" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>start</h2>
<p>Starts a stopped function instance.</p>
<table>
<thead>
<tr><th>Name</th><th>Description</th><th>Default</th></tr>
</thead>
<tbody>
<tr><td>fqfn</td><td>The Fully Qualified Function Name (FQFN) for the function.</td><td></td></tr>
<tr><td>instance-id</td><td>The function instanceId (restart all instances if instance-id is not provided.</td><td></td></tr>
<tr><td>name</td><td>The name of a Pulsar Function.</td><td></td></tr>
<tr><td>namespace</td><td>The namespace of a Pulsar Function.</td><td></td></tr>
<tr><td>tenant</td><td>The tenant of a Pulsar Function.</td><td></td></tr>
</tbody>
</table>
</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/2.6.2/functions-deploy"><span class="arrow-prev">← </span><span>How-to: Deploy</span></a><a class="docs-next button" href="/docs/en/2.6.2/window-functions-context"><span>Window Functions: Context</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#localrun">localrun</a></li><li><a href="#create">create</a></li><li><a href="#delete">delete</a></li><li><a href="#update">update</a></li><li><a href="#get">get</a></li><li><a href="#restart">restart</a></li><li><a href="#stop">stop</a></li><li><a href="#start">start</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2022 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
      const community = document.querySelector("a[href='#community']").parentNode;
      const communityMenu =
        '<li>' +
        '<a id="community-menu" href="#">Community <span style="font-size: 0.75em">&nbsp;▼</span></a>' +
        '<div id="community-dropdown" class="hide">' +
          '<ul id="community-dropdown-items">' +
            '<li><a href="/en/contact">Contact</a></li>' +
            '<li><a href="/en/contributing">Contributing</a></li>' +
            '<li><a href="/en/coding-guide">Coding guide</a></li>' +
            '<li><a href="/en/events">Events</a></li>' +
            '<li><a href="https://twitter.com/Apache_Pulsar" target="_blank">Twitter &#x2750</a></li>' +
            '<li><a href="https://github.com/apache/pulsar/wiki" target="_blank">Wiki &#x2750</a></li>' +
            '<li><a href="https://github.com/apache/pulsar/issues" target="_blank">Issue tracking &#x2750</a></li>' +
            '<li><a href="https://pulsar-summit.org/" target="_blank">Pulsar Summit &#x2750</a></li>' +
            '<li>&nbsp;</li>' +
            '<li><a href="/en/resources">Resources</a></li>' +
            '<li><a href="/en/team">Team</a></li>' +
            '<li><a href="/en/powered-by">Powered By</a></li>' +
          '</ul>' +
        '</div>' +
        '</li>';

      community.innerHTML = communityMenu;

      const communityMenuItem = document.getElementById("community-menu");
      const communityDropDown = document.getElementById("community-dropdown");
      communityMenuItem.addEventListener("click", function(event) {
        event.preventDefault();

        if (communityDropDown.className == 'hide') {
          communityDropDown.className = 'visible';
        } else {
          communityDropDown.className = 'hide';
        }
      });
    </script></span></footer></div><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter-wjs'));</script></body></html>