Need help with pulsar-client-dotnet?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

fsharplang-ru
247 Stars 32 Forks MIT License 614 Commits 15 Opened issues

Description

Apache Pulsar native client for .NET (C#/F#/VB)

Services available

!
?

Need anything else?

Contributors list

pulsar-client-dotnet

Pulsar.Client

.NET Core Windows .NET Core Ubuntu

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 https://github.com/apache/pulsar/wiki/Client-Features-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

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
    1. Install pulsar cluster:
      • MacOS guide:
      • brew tap streamlio/homebrew-formulae
      • brew install streamlio/homebrew-formulae/pulsar
      • brew install streamlio/homebrew-formulae/bookkeeper
      • brew services start pulsar
      • brew services start bookkeeper
    2. Run commands in
      /tests/IntegrationTests/commands.txt
    3. Change
      pulsarAddress
      in Common.fs to point your pulsar cluster
    4. Ensure
      public/default
      namespace with default settings
    5. Ensure
      public/retention
      namespace with time or storage size retention configured
  • Send a Pull Request

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.