{"id":15329311,"url":"https://github.com/robertindie/pulsar-dotpulsar","last_synced_at":"2026-01-14T04:45:43.198Z","repository":{"id":48786939,"uuid":"268736802","full_name":"RobertIndie/pulsar-dotpulsar","owner":"RobertIndie","description":".NET/C# client library for Apache Pulsar","archived":false,"fork":true,"pushed_at":"2025-03-19T14:43:57.000Z","size":2698,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-17T09:35:18.103Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pulsar.apache.org/","language":"C#","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"apache/pulsar-dotpulsar","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobertIndie.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-02T07:54:23.000Z","updated_at":"2025-03-19T14:41:47.000Z","dependencies_parsed_at":"2023-01-23T04:00:50.550Z","dependency_job_id":null,"html_url":"https://github.com/RobertIndie/pulsar-dotpulsar","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/RobertIndie/pulsar-dotpulsar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertIndie%2Fpulsar-dotpulsar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertIndie%2Fpulsar-dotpulsar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertIndie%2Fpulsar-dotpulsar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertIndie%2Fpulsar-dotpulsar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobertIndie","download_url":"https://codeload.github.com/RobertIndie/pulsar-dotpulsar/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertIndie%2Fpulsar-dotpulsar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28409851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-01T09:47:16.178Z","updated_at":"2026-01-14T04:45:43.181Z","avatar_url":"https://github.com/RobertIndie.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DotPulsar\n\n![CI - Unit](https://github.com/apache/pulsar-dotpulsar/workflows/CI%20-%20Unit/badge.svg)\n\nThe official .NET client library for [Apache Pulsar](https://pulsar.apache.org/).\n\nDotPulsar is written entirely in C# and implements Apache Pulsar's [binary protocol](https://pulsar.apache.org/docs/en/develop-binary-protocol/).\n\n## What's new?\n\nHave a look at the [changelog](CHANGELOG.md).\n\n## Getting Started\n\nLet's take a look at a \"Hello world\" example, where we first produce a message and then consume it. Note that the topic and subscription will be created if they don't exist.\n\nFirst, we need a Pulsar setup. See [Pulsar docs](https://pulsar.apache.org/docs/getting-started-home/) for how to set up a local standalone Pulsar instance.\n\nInstall the NuGet package [DotPulsar](https://www.nuget.org/packages/DotPulsar/) and run the follow code example:\n\n```csharp\nusing DotPulsar;\nusing DotPulsar.Extensions;\n\nconst string myTopic = \"persistent://public/default/mytopic\";\n\n// connecting to pulsar://localhost:6650\nawait using var client = PulsarClient.Builder().Build();\n\n// produce a message\nawait using var producer = client.NewProducer(Schema.String).Topic(myTopic).Create();\nawait producer.Send(\"Hello World\");\n\n// consume messages\nawait using var consumer = client.NewConsumer(Schema.String)\n    .SubscriptionName(\"MySubscription\")\n    .Topic(myTopic)\n    .InitialPosition(SubscriptionInitialPosition.Earliest)\n    .Create();\n\nawait foreach (var message in consumer.Messages())\n{\n    Console.WriteLine($\"Received: {message.Value()}\");\n    await consumer.Acknowledge(message);\n}\n```\n\nFor a more in-depth tour of the API, please visit the [Wiki](https://github.com/apache/pulsar-dotpulsar/wiki).\n\n## Supported features\n\n- [X] Service discovery\n- [X] Automatic reconnect\n- [X] TLS connections\n- [X] Pulsar Proxy\n- [X] Producer - send with custom metadata\n- [X] Producer - send with event time, sequence id, and delayed message delivery\n- [X] Producer - send with key and ordering key\n- [X] Producer - partitioned topics\n- [X] Consumer - subscription with initial position and priority level\n- [X] Consumer - subscription types exclusive, shared, failover, and key shared\n- [X] Consumer - multi-topic subscriptions\n- [X] Consumer - receive and single + cumulative acknowledge\n- [X] Consumer/Reader - seek on message-id and publish time\n- [X] Consumer - unsubscribe\n- [X] Consumer - compacted topics\n- [X] Consumer - partitioned topics\n- [X] Reader API\n- [X] Read/Consume/Acknowledge batched messages\n- [X] Telemetry\n    - [Tracing](https://github.com/apache/pulsar-dotpulsar/wiki/Tracing)\n    - [Metrics](https://github.com/apache/pulsar-dotpulsar/wiki/Metrics)\n- [X] Authentication\n    - TLS Authentication\n    - JSON Web Token Authentication\n    - Custom Authentication\n- [X] [Message compression](https://github.com/apache/pulsar-dotpulsar/wiki/Compression)\n    - LZ4\n    - ZLIB\n    - ZSTD\n    - SNAPPY\n- [X] Schemas\n    - Boolean\n    - Bytes (using byte[] and ReadOnlySequence\\\u003cbyte\\\u003e)\n    - String (UTF-8, UTF-16, and US-ASCII)\n    - INT8, INT16, INT32, and INT64\n    - Float and Double\n    - Time (using TimeSpan)\n    - Timestamp and Date (using DateTime)\n\nFor a horizontal comparison with more language-specific clients, see [Client Feature Matrix](https://pulsar.apache.org/client-feature-matrix/).\n\n## Roadmap\n\nHelp prioritizing the roadmap is most welcome, so please reach out and tell us what you want and need.\n\n## Join Our Community\n\nApache Pulsar has a [Slack instance](https://pulsar.apache.org/contact/), and there you'll find us in the #dev-dotpulsar channel.\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/apache/pulsar-dotpulsar/tags).\n\n## Authors\n\n* **Daniel Blankensteiner** - *Initial work* - [Danske Commodities](https://github.com/DanskeCommodities)\n\nContributions are welcomed and greatly appreciated. See also the list of [contributors](https://github.com/apache/pulsar-dotpulsar/contributors) who participated in this project. Read the [CONTRIBUTING](CONTRIBUTING.md) guide for how to participate.\n\nIf your contribution adds Pulsar features for C# clients, you need to update both the [Pulsar docs](https://pulsar.apache.org/docs/client-libraries/) and the [Client Feature Matrix](https://pulsar.apache.org/client-feature-matrix/). See [Contribution Guide](https://pulsar.apache.org/contribute/site-intro/#pages) for more details.\n\n## License\n\nThis project is licensed under [Apache License, Version 2.0](https://apache.org/licenses/LICENSE-2.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertindie%2Fpulsar-dotpulsar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertindie%2Fpulsar-dotpulsar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertindie%2Fpulsar-dotpulsar/lists"}