{"id":22096829,"url":"https://github.com/streamnative/pulsar-hub","last_synced_at":"2025-06-13T17:06:24.850Z","repository":{"id":38272472,"uuid":"226792068","full_name":"streamnative/pulsar-hub","owner":"streamnative","description":"The canonical source of StreamNative Hub.","archived":false,"fork":false,"pushed_at":"2025-06-01T17:35:17.000Z","size":15186,"stargazers_count":17,"open_issues_count":9,"forks_count":11,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-06-02T03:24:35.254Z","etag":null,"topics":["apache-pulsar","connector","data-processing","event-streaming","flink","messaging","offloader","opentracing","prestosql","pubsub","pulsar-functions","pulsar-io","spark","tracing"],"latest_commit_sha":null,"homepage":"https://hub.streamnative.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/streamnative.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-09T05:31:05.000Z","updated_at":"2025-05-14T15:19:10.000Z","dependencies_parsed_at":"2024-08-27T14:12:23.636Z","dependency_job_id":"f774db86-e023-4b90-9bf4-7c6931ca2f1d","html_url":"https://github.com/streamnative/pulsar-hub","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/streamnative/pulsar-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamnative%2Fpulsar-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamnative%2Fpulsar-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamnative%2Fpulsar-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamnative%2Fpulsar-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/streamnative","download_url":"https://codeload.github.com/streamnative/pulsar-hub/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamnative%2Fpulsar-hub/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259686012,"owners_count":22896047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache-pulsar","connector","data-processing","event-streaming","flink","messaging","offloader","opentracing","prestosql","pubsub","pulsar-functions","pulsar-io","spark","tracing"],"created_at":"2024-12-01T04:12:45.956Z","updated_at":"2025-06-13T17:06:24.806Z","avatar_url":"https://github.com/streamnative.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StreamNative Hub\n\nStreamNative Hub is an online service for finding, reviewing, and downloading extensions for the Apache Pulsar ecosystem.\nIt highlights features, richer component descriptions, links to external resources for the components, and installation\nand support information.\n\nThe StreamNative Hub currently hosts the following extensions for Pulsar ecosystem.\n\n- Connectors (source \u0026 sink)\n- Offloaders\n- Protocol handlers\n- Authentication plugins\n- Integrations with data processing engines\n- Interceptors\n- ... and more\n\n\n## How to add your plugins\n\nIf a new plugin is introduced, you should upload the plugin to the target category. Currently, the StreamNative supports the following categories for the plugin.\n\n- Authentication\n- Connector\n- Data processing\n- Deployment\n- Handler\n- Logging\n- Monitoring\n- Offloader\n\nIf a new category is required, you can create it. For details about how to create a new category, see [create new category](#create-new-category).\n\n### Prepare for uploading plugin\n\nThis section describes operations to be performed before creating a PR (Pull Request) for a plugin.\n\n- Clone the [pulsar-hub](https://github.com/streamnative/pulsar-hub) repository to the local.\n- Create a sub-folder under the cloned [pulsar-hub](https://github.com/streamnative/pulsar-hub) repository and put the document in this sub-folder. The sub-folder name is set to the version of the plugin to be submitted, such as `2.5.1`.\n- Put the plugin image in the `image` folder under the cloned [pulsar-hub](https://github.com/streamnative/pulsar-hub) repository.\n\n### Create new category\n\nTo create a new category, follow these steps:\n\n1. Create a branch based on the latest [pulsar-hub](https://github.com/streamnative/pulsar-hub) master repository.\n2. Create a sub-folder under the `pulsar-hub` folder in the local. Set the name of the sub-folder to the category name with lower cases. If the category name consists of multiple words, use the hyphen (-) between these words, such as `data-processing`.\n\n### Create plugin document\n\nTo create a document for a new plugin, follow these steps:\n\n1. Create a branch based on the latest [pulsar-hub](https://github.com/streamnative/pulsar-hub) master repository.\n2. Create a document in the target folder for the plugin. For the document template about the plugin, see [plugin document template](#plugin-document-template).\n3. Commit your updates, create a PR, and then publish the PR to the [pulsar-hub](https://github.com/streamnative/pulsar-hub) master repository.\n4. Update comments, if any.\n5. If no more comment, ask reviewers to approve the PR and merge the PR to the master.\n\n## Plugin document template\n\nThis section describes a plugin document structure, including the following two parts:\n- Metadata\n- Body text\n\n### Metadata\n\nThe metadata of a plugin consists of the following fields:\n\n```yaml\ndescription:\nauthor: \ncontributors: \nlanguage: \ndocument:\nsource: \nlicense: \ntags: \nalias: \nfeatures:\nlicense_link: \nicon: \ndownload: \nsupport:\nsupport_link:\nsupport_image:\ndockerfile:\nowner_name:\nowner_img:\nid: \n```\n\nThe following table describes tags covered in the metadata of a plugin.\n\n| Item | Description |\n|----|----|\n| description | It is a short description about the plugin.|\n| author | Set the name of the author for the plugin. \u003cli\u003e Use square brackets ([]) and double quotation marks (\"\") to wrap the author name, such as [\"ASF\"]. \u003cli\u003e If there are multiple authors, use a comma to separate them, such as [\"StreamNative\", \"Huanli Meng\"].\n| contributors | Set the name of the contributor for the plugin. \u003cli\u003e Use square brackets ([]) and double quotation marks (\"\") to wrap the contributor name, such as [\"ASF\"]. \u003cli\u003e If there are multiple contributors, use a comma to separate them, such as [\"StreamNative\", \"Huanli Meng\"]. |\n| language | Set the language used by the plugin.|\n| document | At present, leave this blank.|\n| source | Set the source link address for the plugin. It is the root directory of the source code of the plugin. Use double quotation marks (\"\") to wrap the link address of the source, such as \"https://github.com/apache/pulsar/tree/v2.3.2/pulsar-io/hdfs3\". |\n| license | By default, it is set to Apache License 2.0.\n| tags | Set keywords for this document. \u003cli\u003e Use square brackets ([]) and double quotation marks (\"\") to wrap the keywords. \u003cli\u003e If there are multiple keywords, use a comma to separate them, such as  [\"OpenTracing\", \"Jaeger\", \"Monitoring\"]. |\n| alias | It is the name displayed on the StreamNative website. The alias is case sensitive. |\n| features | Describe what the plugin is used to do. Use double quotation marks (\"\") to wrap the download link of the NAR package of the plugin.|\n| license_link | Set the license link of the plugin. Use double quotation marks (\"\") to wrap the license link of the plugin. |\n| icon | Set the image link for the plugin. If there is no image available, leave this blank. |\n| download | Set the download link for a NAR package of the plugin. Use double quotation marks (\"\") to wrap the download link of the NAR package of the plugin. |\n| support | Set the support organization of the plugin. |\n| support_link | Set the link of the support organization. |\n| support_image | Set the image logo of support organization. |\n| dockerfile | At present, leave this blank. |\n| owner_name | Set the owner of the component. This is optional. By default, it is set to `Apache Software Foundation`. |\n| owner_img | Set the picture of the component owner, this is optional, default `/images/apache-powered-by.svg` |\n| id | By default, it is set to the file name of the plugin (without extension). \u003cli\u003e Use lower cases. Use double quotation marks (\"\") to wrap the ID. \u003cli\u003e Use hyphens (-) between words if the ID consists of multiple words, such as \"open-tracing-client\". |\n\n### Body text\n\nIn general, the body text of a plugin document includes the following sections:\n\n- Overview\n- Installation\n  - Prerequisites\n  - Procedures\n- Configuration\n  - XXX configuration (XXX refers to the plugin name.)\n  - Configure XXX (XXX refers to the plugin name.)\n- Usage\n- Monitoring (Optional)\n- Security (Optional)\n- Metrics (Optional)\n- How it works (Optional)\n- Reference (Optional)\n- Troubleshooting (Optional)\n- Tutorial (Optional)\n\n```markdown\n### Overview\n\n\u003e Describe what the plugin is used for.\n\n### Installation\n\n\u003e Describe how to install or load the plugin.\n\n#### Prerequisites\n\n\u003e List prerequisite used for installing the plugin, if any.\n\n#### Procedures\n\n\u003e Lists how to instal the plugin.\n\n### Configuration\n\n\u003e List some configuration examples to describe what the plugin can be used to do.\n\n#### XXX configuration\n\n\u003e List configuration items available for the plugin. XXX refers to the plugin name.\n\n#### Configure XXX\n\n\u003e How to configure the plugin through Json or Yaml file. XXX refers to the plugin name.\n\n### Usage\n\n\u003e Provide an example to describe what the connector can be used to do.\n\n### Monitoring (Optional)\n\n\u003e Describe how to monitor the plugin.\n\n### Security (Optional)\n\n\u003e List security configurations required to be configured and how to configure it.\n\n### Metrics (Optional)\n\n\u003e List metrics available for the plugin.\n\n### How it works (Optional)\n\n\u003e List basic principles for the plugin to work.\n\n### Reference (Optional)\n\n\u003e List additional external references, if any.\n\n### Troubleshooting (Optional)\n\n\u003e List FAQs and how to troubleshoot the bugs, if any.\n\n### Tutorial (Optional)\n\n\u003e List a step-by-step for the whole process.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamnative%2Fpulsar-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstreamnative%2Fpulsar-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamnative%2Fpulsar-hub/lists"}