All Projects → fsharplang-ru → Pulsar Client Dotnet

fsharplang-ru / Pulsar Client Dotnet

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

Programming Languages

fsharp
127 projects

Labels

pulsar-client-dotnet

Pulsar.Client

.NET Core Windows .NET Core Ubuntu

Contributions and stars ★ are most welcome!

Pulsar.Client 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 (from https://github.com/apache/pulsar/wiki/Client-Features-Matrix):

  • [X] Basic Producer/Consumer API
  • [X] Partitioned topics
  • [X] Batching
  • [X] Compression
  • [X] TLS
  • [X] Authentication (token, tls)
  • [X] Reader API
  • [X] Proxy Support
  • [X] Effectively-Once
  • [X] Schema
  • [X] Consumer seek
  • [X] Multi-topics consumer
  • [X] Topics regex consumer
  • [X] Compacted topics
  • [X] User defined properties producer/consumer
  • [X] Reader hasMessageAvailable
  • [X] Hostname verification
  • [X] Multi Hosts Service Url support
  • [X] Key_shared
  • [X] key based batcher
  • [X] Negative Acknowledge
  • [X] Delayed Delivery Messages
  • [X] Dead Letter Policy
  • [X] Interceptors

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].