pulsar-client-dotnet
pulsar-client-dotnet copied to clipboard
Apache Pulsar native client for .NET (C#/F#/VB)
pulsar-client-dotnet

Contributions and stars ★ are most welcome!
Pulsar.Client nuget | Pulsar.Client.Otel nuget
Supported pulsar cluster versions: 2.4+
Find examples of usage in /examples folder. We are trying to keep api similar to the Java client, so please take a look at it's documentation to understand possible options available. You can also join telegram chat https://t.me/pro_pulsar for further discussions.
Features list (based on Client Feature Matrix):
- [X] Basic Producer/Consumer API
- [X] Partitioned topics
- [X] Batching
- [X] Chunking
- [X] Compression
- [X] TLS
- [X] Authentication (token, tls, oauth2)
- [X] Reader API
- [X] Proxy Support
- [X] Effectively-Once
- [X] Schema (All types, Multi-version)
- [X] Consumer seek
- [X] Multi-topics consumer
- [X] Topics regex consumer
- [X] Compacted topics
- [X] User defined properties
- [X] Reader hasMessageAvailable
- [X] Hostname verification
- [X] Multi Hosts Service Url
- [X] Key_shared subscription
- [X] Key based batcher
- [X] Negative Acknowledge
- [X] Delayed/scheduled messages
- [X] Dead Letter Policy
- [X] Interceptors
- [X] Transactions
- [X] Statistics
- [X] End-to-end Encryption
- [X] SubscriptionInitialPosition
- [X] Cumulative Ack
- [X] Batch-Index Ack
- [ ] SNI Routing
- [X] Table view
Quick contributing guide
Common steps before building
- Fork and clone locally
- Install dotnet tools:
dotnet tool restore - Restore packages:
dotnet restore
MacOS steps before building:
- Install Snappy:
brew install snappy - Install Libzstd:
brew install zstd
Ubuntu steps before building:
- Install Snappy:
sudo apt-get install -y libsnappy-dev - Install Libzstd:
sudo apt-get install -y libzstd-dev
Building and Testing
- Build the solution:
dotnet build(dotnet core sdk required) This will install required tools and then you can use any IDE to build solution - Make your modifications
- Run unit tests:
cd tests/UnitTests&&dotnet test - (Optional) If changes are made in Client logic, run Integration tests. Before running do the following
- Install pulsar cluster:
- MacOS guide:
brew tap streamlio/homebrew-formulaebrew install streamlio/homebrew-formulae/pulsarbrew install streamlio/homebrew-formulae/bookkeeperbrew services start pulsarbrew services start bookkeeper
- Run commands in
/tests/IntegrationTests/commands.txt - Change
pulsarAddressin Common.fs to point your pulsar cluster - Ensure
public/defaultnamespace with default settings - Ensure
public/retentionnamespace with time or storage size retention configured
- Install pulsar cluster:
- Send a Pull Request
Maintaners
- @Lanayx