{"id":13811476,"url":"https://github.com/fsprojects/pulsar-client-dotnet","last_synced_at":"2025-05-14T13:07:15.084Z","repository":{"id":37400626,"uuid":"190146320","full_name":"fsprojects/pulsar-client-dotnet","owner":"fsprojects","description":"Apache Pulsar native client for .NET (C#/F#/VB)","archived":false,"fork":false,"pushed_at":"2025-04-03T15:22:21.000Z","size":2229,"stargazers_count":312,"open_issues_count":25,"forks_count":50,"subscribers_count":14,"default_branch":"develop","last_synced_at":"2025-04-13T21:33:49.630Z","etag":null,"topics":["dotnet","fsharp","pulsar","pulsar-client"],"latest_commit_sha":null,"homepage":"","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fsprojects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["lanayx"]}},"created_at":"2019-06-04T06:53:51.000Z","updated_at":"2025-04-03T05:26:58.000Z","dependencies_parsed_at":"2023-02-16T00:31:16.473Z","dependency_job_id":"deaab19c-6298-4009-a39d-345eea665bae","html_url":"https://github.com/fsprojects/pulsar-client-dotnet","commit_stats":{"total_commits":705,"total_committers":36,"mean_commits":"19.583333333333332","dds":0.2836879432624113,"last_synced_commit":"333a600dcb32cbbfda5a8e1f65ead25bc3c2e374"},"previous_names":["fsharplang-ru/pulsar-client-dotnet"],"tags_count":135,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2Fpulsar-client-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2Fpulsar-client-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2Fpulsar-client-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2Fpulsar-client-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fsprojects","download_url":"https://codeload.github.com/fsprojects/pulsar-client-dotnet/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149957,"owners_count":22022851,"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":["dotnet","fsharp","pulsar","pulsar-client"],"created_at":"2024-08-04T04:00:21.891Z","updated_at":"2025-05-14T13:07:10.061Z","avatar_url":"https://github.com/fsprojects.png","language":"F#","readme":"# pulsar-client-dotnet\n![Pulsar.Client](https://github.com/fsprojects/pulsar-client-dotnet/raw/develop/images/pulsar-client-dotnet.png)\n\n[![.NET Core Windows](https://github.com/fsprojects/pulsar-client-dotnet/workflows/.NET%20Core%20Windows/badge.svg)](https://github.com/fsprojects/pulsar-client-dotnet/actions?query=workflow%3A%22.NET+Core+Windows%22)\n[![.NET Core Ubuntu](https://github.com/fsprojects/pulsar-client-dotnet/workflows/.NET%20Core%20Ubuntu/badge.svg)](https://github.com/fsprojects/pulsar-client-dotnet/actions?query=workflow%3A%22.NET+Core+Ubuntu%22)\n\n### Contributions and stars ★ are most welcome!\n\n[Pulsar.Client nuget](https://www.nuget.org/packages/Pulsar.Client) |\n[Pulsar.Client.Otel nuget](https://www.nuget.org/packages/Pulsar.Client.Otel/)\n\nSupported pulsar cluster versions: **2.4+**\n\nFind examples of usage in [/examples](https://github.com/fsharplang-ru/pulsar-client-dotnet/tree/develop/examples) folder. We are trying to keep api similar to the Java client, so please take a look at [it's documentation](https://pulsar.apache.org/docs/client-libraries-java/) to understand possible options available. You can also join telegram chat https://t.me/pro_pulsar for further discussions.\n\nFeatures list (based on [Client Feature Matrix](https://github.com/apache/pulsar/wiki/PIP-108%3A-Pulsar-Feature-Matrix-%28Client-and-Function%29)):\n\n- [X] Basic Producer/Consumer API\n- [X] Partitioned topics\n- [X] Batching\n- [X] Chunking\n- [X] Compression\n- [X] TLS\n- [X] Authentication (token, tls, oauth2)\n- [X] Reader API\n- [X] Proxy Support\n- [X] Effectively-Once\n- [X] Schema (All types, Multi-version)\n- [X] Consumer seek\n- [X] Multi-topics consumer\n- [X] Topics regex consumer\n- [X] Compacted topics\n- [X] User defined properties\n- [X] Reader hasMessageAvailable\n- [X] Hostname verification\n- [X] Multi Hosts Service Url\n- [X] Key_shared subscription\n- [X] Key based batcher\n- [X] Negative Acknowledge\n- [X] Delayed/scheduled messages\t\n- [X] Dead Letter Policy\n- [X] Interceptors\n- [X] Transactions\n- [X] Statistics\n- [X] End-to-end Encryption\n- [X] SubscriptionInitialPosition\n- [X] Cumulative Ack\n- [X] Batch-Index Ack\n- [ ] SNI Routing\n- [X] Table view\n\n## Quick contributing guide\n\n#### Common steps before building\n\n - Fork and clone locally\n - Install dotnet tools: `dotnet tool restore`\n - Restore packages: `dotnet restore`\n \n#### MacOS steps before building:\n\n - Install Snappy: `brew install snappy`\n - Install Libzstd: `brew install zstd`\n \n#### Ubuntu steps before building:\n \n - Install Snappy: `sudo apt-get install -y libsnappy-dev`\n - Install Libzstd: `sudo apt-get install -y libzstd-dev`\n \n#### Building and Testing\n\n - Build the solution: `dotnet build` (dotnet core sdk required) This will install required tools and then you can use any IDE to build solution\n - Make your modifications\n - Run unit tests: `cd tests/UnitTests` \u0026\u0026 `dotnet test` \n - (Optional) If changes are made in Client logic, run Integration tests. Before running do the following\n    1. Install pulsar cluster:\n        * MacOS guide:\n        * `brew tap streamlio/homebrew-formulae`\n        * `brew install streamlio/homebrew-formulae/pulsar`\n        * `brew install streamlio/homebrew-formulae/bookkeeper`\n        * `brew services start pulsar`\n        * `brew services start bookkeeper`\n    1. Run commands in `/tests/IntegrationTests/commands.txt`\n    1. Change `pulsarAddress` in Common.fs to point your pulsar cluster\n    1. Ensure `advertisedAddress` in broker.conf to point your pulsar cluster\n    1. Ensure `public/default` namespace with default settings\n    1. Ensure `public/retention` namespace with time or storage size retention configured\n - Send a Pull Request\n\n#### Maintaners and support\n\n  * You can suppport me (@Lanayx) using [Github sponsors](https://github.com/sponsors/Lanayx) so I continue maintaining this project well.\n  * If you want me to **implement new (missing) features**, this can be arranged on a paid basis using [Github sponsors](https://github.com/sponsors/Lanayx) as well, please PM [in Telegram](https://t.me/Lanayx)\n","funding_links":["https://github.com/sponsors/lanayx","https://github.com/sponsors/Lanayx"],"categories":["Clients"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsprojects%2Fpulsar-client-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffsprojects%2Fpulsar-client-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsprojects%2Fpulsar-client-dotnet/lists"}