You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pulsar.apache.org by Daniel Blankensteiner <db...@danskecommodities.com> on 2019/12/20 11:28:07 UTC

[DISCUSS] Contribute DotPulsar to Apache Pulsar

Hi all

At [Danske Commodities A/S](https://github.com/danske-commodities/dotpulsar/wiki#who-we-are) we have developed a Pulsar client library for .NET - DotPulsar. 
The repository is here: https://github.com/danske-commodities/dotpulsar 
and the NuGet package is here: https://www.nuget.org/packages/DotPulsar/
We would like to contribute the project back to the Pulsar community.

---

# Motivation

Currently, there are no official client libraries for .NET. Therefore we have written one entirely in C# (implementing the binary protocol), using the latest constructs like IAsyncDisposable, IAsyncEnumerable, ValueTask, nullable, pipelines and ReadOnlyMemory/ReadOnlySequence, for optimal developer experience and performance.

# Features

DotPulsar is by no means feature complete, but the basic use cases (for Danske Commodities A/S) are supported.

- Service discovery (LOOKUP)
- Automatic reconnect/retry
- [TLS connections](https://github.com/danske-commodities/dotpulsar/wiki/Client#tls-connection)
- [TLS Authentication](https://github.com/danske-commodities/dotpulsar/wiki/Client#tls-authentication)
- [JSON Web Token Authentication](https://github.com/danske-commodities/dotpulsar/wiki/Client#json-web-token-authentication)
- [Producing message with/without metadata](https://github.com/danske-commodities/dotpulsar/wiki/Producer)
- [Consuming messages using all subscription types and seeking](https://github.com/danske-commodities/dotpulsar/wiki/Consumer)
- [Reading messages](https://github.com/danske-commodities/dotpulsar/wiki/Reader)
- Read/Consume/Acknowledge batched messages (but currently not producing batched messages)

# Licenses

DotPulsar is under the Apache License Version 2.0 and only has two dependencies for the .NET Standard 2.1 version and four dependencies for the .NET Standard 2.0 version (which can be used from .NET Framework clients).

## System.IO.Pipelines, Microsoft.Bcl.AsyncInterfaces and Microsoft.Bcl.HashCode

Developed by Microsoft and under the MIT license.

## Protobuf-net

Developed by Marc Gravell and under the Apache License Version 2.0.

We are looking forward to any feedback.

Best regards,
DANIEL BLANKENSTEINER
 
Software Architect
IT
 
M: +45 2777 6217
dba@danskecommodities.com
www.danskecommodities.com

Re: [DISCUSS] Contribute DotPulsar to Apache Pulsar

Posted by Sijie Guo <gu...@gmail.com>.
Daniel,

Thank you for bringing this to the community! I have created a PIP for your
proposal:
https://github.com/apache/pulsar/wiki/PIP-53:-Contribute-DotPulsar-to-Apache-Pulsar

I am really excited to see Danske Commodities is interested in contributing
its .NET pulsar client back to the community.

I took a brief look at your codebase. It seems to me the dependencies are
pretty clear and compatible with ASF policy. +1 from my side. I'd happy to
help you through the donation process.

Thanks,
Sijie

On Fri, Dec 20, 2019 at 7:32 PM Daniel Blankensteiner <
dba@danskecommodities.com> wrote:

> Ah, gotta love trendmicro... sorry about that, but looks like the links
> still work.
>
> Best regards,
> DANIEL BLANKENSTEINER
>
> Software Architect
> IT
>
> M: +45 2777 6217
> dba@danskecommodities.com
> www.danskecommodities.com
>
>
> -----Original Message-----
> From: Daniel Blankensteiner <db...@danskecommodities.com>
> Sent: 20. december 2019 12:28
> To: 'dev@pulsar.apache.org' <de...@pulsar.apache.org>
> Subject: [DISCUSS] Contribute DotPulsar to Apache Pulsar
>
> Hi all
>
> At [Danske Commodities A/S](
> https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%23who%2dwe%2dare&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-a22b6704f951f749bae0dcf0230d1d5de3eeb74d)
> we have developed a Pulsar client library for .NET - DotPulsar.
> The repository is here:
> https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-b4f9427764de557cdddb57fad5b141685757132d
> and the NuGet package is here: https://www.nuget.org/packages/DotPulsar/
> We would like to contribute the project back to the Pulsar community.
>
> ---
>
> # Motivation
>
> Currently, there are no official client libraries for .NET. Therefore we
> have written one entirely in C# (implementing the binary protocol), using
> the latest constructs like IAsyncDisposable, IAsyncEnumerable, ValueTask,
> nullable, pipelines and ReadOnlyMemory/ReadOnlySequence, for optimal
> developer experience and performance.
>
> # Features
>
> DotPulsar is by no means feature complete, but the basic use cases (for
> Danske Commodities A/S) are supported.
>
> - Service discovery (LOOKUP)
> - Automatic reconnect/retry
> - [TLS connections](
> https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fClient%23tls%2dconnection&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-3cd5126c6a7870c5ce8d57b3abd1df0fb7b98c5e
> )
> - [TLS Authentication](
> https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fClient%23tls%2dauthentication&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-41c2742f48c96e1458ae2b905389fc3ad995711f
> )
> - [JSON Web Token Authentication](
> https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fClient%23json%2dweb%2dtoken%2dauthentication&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-980a1c8c2cd03abe5b3df708019fdc2cb0adb93c
> )
> - [Producing message with/without metadata](
> https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fProducer&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-22a97cd36863f31df9ce329ebe6cc06849489647
> )
> - [Consuming messages using all subscription types and seeking](
> https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fConsumer&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-ca4a3649a45a22dc3bb56a84f7b37edea9282010
> )
> - [Reading messages](
> https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fReader&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-96ff421d363c9ffcba59da76bb708b9ab27eb75c
> )
> - Read/Consume/Acknowledge batched messages (but currently not producing
> batched messages)
>
> # Licenses
>
> DotPulsar is under the Apache License Version 2.0 and only has two
> dependencies for the .NET Standard 2.1 version and four dependencies for
> the .NET Standard 2.0 version (which can be used from .NET Framework
> clients).
>
> ## System.IO.Pipelines, Microsoft.Bcl.AsyncInterfaces and
> Microsoft.Bcl.HashCode
>
> Developed by Microsoft and under the MIT license.
>
> ## Protobuf-net
>
> Developed by Marc Gravell and under the Apache License Version 2.0.
>
> We are looking forward to any feedback.
>
> Best regards,
> DANIEL BLANKENSTEINER
>
> Software Architect
> IT
>
> M: +45 2777 6217
> dba@danskecommodities.com
> www.danskecommodities.com
>
>

RE: [DISCUSS] Contribute DotPulsar to Apache Pulsar

Posted by Daniel Blankensteiner <db...@danskecommodities.com>.
Ah, gotta love trendmicro... sorry about that, but looks like the links still work.

Best regards,
DANIEL BLANKENSTEINER
 
Software Architect
IT
 
M: +45 2777 6217
dba@danskecommodities.com
www.danskecommodities.com


-----Original Message-----
From: Daniel Blankensteiner <db...@danskecommodities.com> 
Sent: 20. december 2019 12:28
To: 'dev@pulsar.apache.org' <de...@pulsar.apache.org>
Subject: [DISCUSS] Contribute DotPulsar to Apache Pulsar

Hi all

At [Danske Commodities A/S](https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%23who%2dwe%2dare&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-a22b6704f951f749bae0dcf0230d1d5de3eeb74d) we have developed a Pulsar client library for .NET - DotPulsar. 
The repository is here: https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-b4f9427764de557cdddb57fad5b141685757132d 
and the NuGet package is here: https://www.nuget.org/packages/DotPulsar/
We would like to contribute the project back to the Pulsar community.

---

# Motivation

Currently, there are no official client libraries for .NET. Therefore we have written one entirely in C# (implementing the binary protocol), using the latest constructs like IAsyncDisposable, IAsyncEnumerable, ValueTask, nullable, pipelines and ReadOnlyMemory/ReadOnlySequence, for optimal developer experience and performance.

# Features

DotPulsar is by no means feature complete, but the basic use cases (for Danske Commodities A/S) are supported.

- Service discovery (LOOKUP)
- Automatic reconnect/retry
- [TLS connections](https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fClient%23tls%2dconnection&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-3cd5126c6a7870c5ce8d57b3abd1df0fb7b98c5e)
- [TLS Authentication](https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fClient%23tls%2dauthentication&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-41c2742f48c96e1458ae2b905389fc3ad995711f)
- [JSON Web Token Authentication](https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fClient%23json%2dweb%2dtoken%2dauthentication&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-980a1c8c2cd03abe5b3df708019fdc2cb0adb93c)
- [Producing message with/without metadata](https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fProducer&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-22a97cd36863f31df9ce329ebe6cc06849489647)
- [Consuming messages using all subscription types and seeking](https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fConsumer&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-ca4a3649a45a22dc3bb56a84f7b37edea9282010)
- [Reading messages](https://hes32-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2fgithub.com%2fdanske%2dcommodities%2fdotpulsar%2fwiki%2fReader&umid=466cd11a-9cae-4ccd-a103-c3f31a23fd5c&auth=c95a9f4c5451d3482f6dd990ffa1a166dbd36014-96ff421d363c9ffcba59da76bb708b9ab27eb75c)
- Read/Consume/Acknowledge batched messages (but currently not producing batched messages)

# Licenses

DotPulsar is under the Apache License Version 2.0 and only has two dependencies for the .NET Standard 2.1 version and four dependencies for the .NET Standard 2.0 version (which can be used from .NET Framework clients).

## System.IO.Pipelines, Microsoft.Bcl.AsyncInterfaces and Microsoft.Bcl.HashCode

Developed by Microsoft and under the MIT license.

## Protobuf-net

Developed by Marc Gravell and under the Apache License Version 2.0.

We are looking forward to any feedback.

Best regards,
DANIEL BLANKENSTEINER
 
Software Architect
IT
 
M: +45 2777 6217
dba@danskecommodities.com
www.danskecommodities.com


Re: [DISCUSS] Contribute DotPulsar to Apache Pulsar

Posted by Sijie Guo <gu...@gmail.com>.
It seems that there is no objections to accepting this repo. I will start
an official vote in a separate email thread.

On Tue, Dec 24, 2019 at 1:09 PM xiaolong ran <ra...@gmail.com>
wrote:

> Daniel:
>
> Thank you for everything you’ve done. very nice work.
>
> The change LGTM +1
>
> --
> Thanks
> Xiaolong Ran
>
> > 在 2019年12月20日,下午7:28,Daniel Blankensteiner <db...@danskecommodities.com>
> 写道:
> >
> > Hi all
> >
> > At [Danske Commodities A/S](
> https://github.com/danske-commodities/dotpulsar/wiki#who-we-are) we have
> developed a Pulsar client library for .NET - DotPulsar.
> > The repository is here: https://github.com/danske-commodities/dotpulsar
> > and the NuGet package is here: https://www.nuget.org/packages/DotPulsar/
> > We would like to contribute the project back to the Pulsar community.
> >
> > ---
> >
> > # Motivation
> >
> > Currently, there are no official client libraries for .NET. Therefore we
> have written one entirely in C# (implementing the binary protocol), using
> the latest constructs like IAsyncDisposable, IAsyncEnumerable, ValueTask,
> nullable, pipelines and ReadOnlyMemory/ReadOnlySequence, for optimal
> developer experience and performance.
> >
> > # Features
> >
> > DotPulsar is by no means feature complete, but the basic use cases (for
> Danske Commodities A/S) are supported.
> >
> > - Service discovery (LOOKUP)
> > - Automatic reconnect/retry
> > - [TLS connections](
> https://github.com/danske-commodities/dotpulsar/wiki/Client#tls-connection
> )
> > - [TLS Authentication](
> https://github.com/danske-commodities/dotpulsar/wiki/Client#tls-authentication
> )
> > - [JSON Web Token Authentication](
> https://github.com/danske-commodities/dotpulsar/wiki/Client#json-web-token-authentication
> )
> > - [Producing message with/without metadata](
> https://github.com/danske-commodities/dotpulsar/wiki/Producer)
> > - [Consuming messages using all subscription types and seeking](
> https://github.com/danske-commodities/dotpulsar/wiki/Consumer)
> > - [Reading messages](
> https://github.com/danske-commodities/dotpulsar/wiki/Reader)
> > - Read/Consume/Acknowledge batched messages (but currently not producing
> batched messages)
> >
> > # Licenses
> >
> > DotPulsar is under the Apache License Version 2.0 and only has two
> dependencies for the .NET Standard 2.1 version and four dependencies for
> the .NET Standard 2.0 version (which can be used from .NET Framework
> clients).
> >
> > ## System.IO.Pipelines, Microsoft.Bcl.AsyncInterfaces and
> Microsoft.Bcl.HashCode
> >
> > Developed by Microsoft and under the MIT license.
> >
> > ## Protobuf-net
> >
> > Developed by Marc Gravell and under the Apache License Version 2.0.
> >
> > We are looking forward to any feedback.
> >
> > Best regards,
> > DANIEL BLANKENSTEINER
> >
> > Software Architect
> > IT
> >
> > M: +45 2777 6217
> > dba@danskecommodities.com
> > www.danskecommodities.com
>
>

Re: [DISCUSS] Contribute DotPulsar to Apache Pulsar

Posted by xiaolong ran <ra...@gmail.com>.
Daniel:

Thank you for everything you’ve done. very nice work. 

The change LGTM +1

--
Thanks
Xiaolong Ran

> 在 2019年12月20日,下午7:28,Daniel Blankensteiner <db...@danskecommodities.com> 写道:
> 
> Hi all
> 
> At [Danske Commodities A/S](https://github.com/danske-commodities/dotpulsar/wiki#who-we-are) we have developed a Pulsar client library for .NET - DotPulsar. 
> The repository is here: https://github.com/danske-commodities/dotpulsar 
> and the NuGet package is here: https://www.nuget.org/packages/DotPulsar/
> We would like to contribute the project back to the Pulsar community.
> 
> ---
> 
> # Motivation
> 
> Currently, there are no official client libraries for .NET. Therefore we have written one entirely in C# (implementing the binary protocol), using the latest constructs like IAsyncDisposable, IAsyncEnumerable, ValueTask, nullable, pipelines and ReadOnlyMemory/ReadOnlySequence, for optimal developer experience and performance.
> 
> # Features
> 
> DotPulsar is by no means feature complete, but the basic use cases (for Danske Commodities A/S) are supported.
> 
> - Service discovery (LOOKUP)
> - Automatic reconnect/retry
> - [TLS connections](https://github.com/danske-commodities/dotpulsar/wiki/Client#tls-connection)
> - [TLS Authentication](https://github.com/danske-commodities/dotpulsar/wiki/Client#tls-authentication)
> - [JSON Web Token Authentication](https://github.com/danske-commodities/dotpulsar/wiki/Client#json-web-token-authentication)
> - [Producing message with/without metadata](https://github.com/danske-commodities/dotpulsar/wiki/Producer)
> - [Consuming messages using all subscription types and seeking](https://github.com/danske-commodities/dotpulsar/wiki/Consumer)
> - [Reading messages](https://github.com/danske-commodities/dotpulsar/wiki/Reader)
> - Read/Consume/Acknowledge batched messages (but currently not producing batched messages)
> 
> # Licenses
> 
> DotPulsar is under the Apache License Version 2.0 and only has two dependencies for the .NET Standard 2.1 version and four dependencies for the .NET Standard 2.0 version (which can be used from .NET Framework clients).
> 
> ## System.IO.Pipelines, Microsoft.Bcl.AsyncInterfaces and Microsoft.Bcl.HashCode
> 
> Developed by Microsoft and under the MIT license.
> 
> ## Protobuf-net
> 
> Developed by Marc Gravell and under the Apache License Version 2.0.
> 
> We are looking forward to any feedback.
> 
> Best regards,
> DANIEL BLANKENSTEINER
> 
> Software Architect
> IT
> 
> M: +45 2777 6217
> dba@danskecommodities.com
> www.danskecommodities.com