You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pulsar.apache.org by xiaolong ran <ra...@gmail.com> on 2020/04/13 14:19:18 UTC

[Discuss] Replace cgo client in Pulsar repo with Native Go Client

Hello all:


Pulsar has provided [pulsar-client-go](https://github.com/apache/pulsar/tree/master/pulsar-client-go <https://github.com/apache/pulsar/tree/master/pulsar-client-go>)
based on the CPP. However, CGO has many problems, which causes performance to degrade 
easily, makes it difficult to debug, and makes Pulsar hard to support the Go community better. 
Consequently, we rewrite the [Go Client](https://github.com/apache/pulsar-client-go <https://github.com/apache/pulsar-client-go>) based on native 
Go to replace the CGO client and allow Pulsar to better support the applications and integrations
of the Go community.

Currently, pulsar-client-go 0.1.0 is released with multiple features (producer, consumer, reader, and so on).
 Except for schema, pulsar-client-go 0.1.0 can entirely replace CGO client, so may I suggest replacing 
CGO client with pulsar-client-go 0.1.0 in the next major Pulsar release.

If agree, we need to do the following tasks:
Update the Go client doc on the Pulsar website
Remove the related contents of CGo client and add the related contents of CPP client in release validation
Delete the  CGo client code from Pulsar repo
Celebrate after finishing this project

--
Thanks
Xiaolong Ran

Re: [Discuss] Replace cgo client in Pulsar repo with Native Go Client

Posted by xiaolong ran <ra...@gmail.com>.
It seems there are no objections to this proposal, I will update 
native go client docs to Apache Pulsar web site and remove 
the validate contents of CGo client.

--
Thanks
Xiaolong Ran

> 在 2020年4月13日,下午10:19,xiaolong ran <ra...@gmail.com> 写道:
> 
> Hello all:
> 
> 
> Pulsar has provided [pulsar-client-go](https://github.com/apache/pulsar/tree/master/pulsar-client-go <https://github.com/apache/pulsar/tree/master/pulsar-client-go>)
> based on the CPP. However, CGO has many problems, which causes performance to degrade 
> easily, makes it difficult to debug, and makes Pulsar hard to support the Go community better. 
> Consequently, we rewrite the [Go Client](https://github.com/apache/pulsar-client-go <https://github.com/apache/pulsar-client-go>) based on native 
> Go to replace the CGO client and allow Pulsar to better support the applications and integrations
> of the Go community.
> 
> Currently, pulsar-client-go 0.1.0 is released with multiple features (producer, consumer, reader, and so on).
>  Except for schema, pulsar-client-go 0.1.0 can entirely replace CGO client, so may I suggest replacing 
> CGO client with pulsar-client-go 0.1.0 in the next major Pulsar release.
> 
> If agree, we need to do the following tasks:
> Update the Go client doc on the Pulsar website
> Remove the related contents of CGo client and add the related contents of CPP client in release validation
> Delete the  CGo client code from Pulsar repo
> Celebrate after finishing this project
> 
> --
> Thanks
> Xiaolong Ran


Re: [Discuss] Replace cgo client in Pulsar repo with Native Go Client

Posted by Shivji Kumar Jha <sh...@gmail.com>.
+1 on replacing with native client
.
Agree with Matteo on retaining the CGO client code for sometime though.

Regards,
Shivji Kumar Jha
http://www.shivjijha.com/
+91 8884075512


On Mon, Apr 13, 2020 at 7:49 PM xiaolong ran <ra...@gmail.com>
wrote:

> Hello all:
>
>
> Pulsar has provided [pulsar-client-go](
> https://github.com/apache/pulsar/tree/master/pulsar-client-go <
> https://github.com/apache/pulsar/tree/master/pulsar-client-go>)
> based on the CPP. However, CGO has many problems, which causes performance
> to degrade
> easily, makes it difficult to debug, and makes Pulsar hard to support the
> Go community better.
> Consequently, we rewrite the [Go Client](
> https://github.com/apache/pulsar-client-go <
> https://github.com/apache/pulsar-client-go>) based on native
> Go to replace the CGO client and allow Pulsar to better support the
> applications and integrations
> of the Go community.
>
> Currently, pulsar-client-go 0.1.0 is released with multiple features
> (producer, consumer, reader, and so on).
>  Except for schema, pulsar-client-go 0.1.0 can entirely replace CGO
> client, so may I suggest replacing
> CGO client with pulsar-client-go 0.1.0 in the next major Pulsar release.
>
> If agree, we need to do the following tasks:
> Update the Go client doc on the Pulsar website
> Remove the related contents of CGo client and add the related contents of
> CPP client in release validation
> Delete the  CGo client code from Pulsar repo
> Celebrate after finishing this project
>
> --
> Thanks
> Xiaolong Ran

Re: [Discuss] Replace cgo client in Pulsar repo with Native Go Client

Posted by Jia Zhai <zh...@gmail.com>.
+1,

According to current status, Maybe 2.7.0 is a better time.

Best Regards.


Jia Zhai

Beijing, China

Mobile: +86 15810491983




On Tue, Apr 14, 2020 at 7:34 PM xiaolong ran <ra...@gmail.com>
wrote:

> > I'd rather wait a bit more for that, given that apps are fetching
> directly from github. Eg: change the Docs but leave the code there for
> one more release cycle.
>
> Cool, good idea, agree with you. We can remove this in next
> major Apache Pulsar release. Eg: Apache Pulsar 2.6.0 or 2.7.0.
>
> --
> Thanks
> Xiaolong Ran
>
>
> > 在 2020年4月14日,上午6:03,Matteo Merli <ma...@gmail.com> 写道:
> >
> >> Delete the  CGo client code from Pulsar repo
> >
> > I'd rather wait a bit more for that, given that apps are fetching
> > directly from github. Eg: change the Docs but leave the code there for
> > one more release cycle.
> >
> > --
> > Matteo Merli
> > <ma...@gmail.com>
> >
> > On Mon, Apr 13, 2020 at 2:37 PM Yuva raj <uv...@gmail.com> wrote:
> >>
> >> +1
> >>
> >> On Mon, Apr 13, 2020, 7:49 PM xiaolong ran <ra...@gmail.com>
> wrote:
> >>
> >>> Hello all:
> >>>
> >>>
> >>> Pulsar has provided [pulsar-client-go](
> >>> https://github.com/apache/pulsar/tree/master/pulsar-client-go <
> >>> https://github.com/apache/pulsar/tree/master/pulsar-client-go>)
> >>> based on the CPP. However, CGO has many problems, which causes
> performance
> >>> to degrade
> >>> easily, makes it difficult to debug, and makes Pulsar hard to support
> the
> >>> Go community better.
> >>> Consequently, we rewrite the [Go Client](
> >>> https://github.com/apache/pulsar-client-go <
> >>> https://github.com/apache/pulsar-client-go>) based on native
> >>> Go to replace the CGO client and allow Pulsar to better support the
> >>> applications and integrations
> >>> of the Go community.
> >>>
> >>> Currently, pulsar-client-go 0.1.0 is released with multiple features
> >>> (producer, consumer, reader, and so on).
> >>> Except for schema, pulsar-client-go 0.1.0 can entirely replace CGO
> >>> client, so may I suggest replacing
> >>> CGO client with pulsar-client-go 0.1.0 in the next major Pulsar
> release.
> >>>
> >>> If agree, we need to do the following tasks:
> >>> Update the Go client doc on the Pulsar website
> >>> Remove the related contents of CGo client and add the related contents
> of
> >>> CPP client in release validation
> >>> Delete the  CGo client code from Pulsar repo
> >>> Celebrate after finishing this project
> >>>
> >>> --
> >>> Thanks
> >>> Xiaolong Ran
>
>

Re: [Discuss] Replace cgo client in Pulsar repo with Native Go Client

Posted by xiaolong ran <ra...@gmail.com>.
> I'd rather wait a bit more for that, given that apps are fetching
directly from github. Eg: change the Docs but leave the code there for
one more release cycle.

Cool, good idea, agree with you. We can remove this in next 
major Apache Pulsar release. Eg: Apache Pulsar 2.6.0 or 2.7.0.

--
Thanks
Xiaolong Ran


> 在 2020年4月14日,上午6:03,Matteo Merli <ma...@gmail.com> 写道:
> 
>> Delete the  CGo client code from Pulsar repo
> 
> I'd rather wait a bit more for that, given that apps are fetching
> directly from github. Eg: change the Docs but leave the code there for
> one more release cycle.
> 
> --
> Matteo Merli
> <ma...@gmail.com>
> 
> On Mon, Apr 13, 2020 at 2:37 PM Yuva raj <uv...@gmail.com> wrote:
>> 
>> +1
>> 
>> On Mon, Apr 13, 2020, 7:49 PM xiaolong ran <ra...@gmail.com> wrote:
>> 
>>> Hello all:
>>> 
>>> 
>>> Pulsar has provided [pulsar-client-go](
>>> https://github.com/apache/pulsar/tree/master/pulsar-client-go <
>>> https://github.com/apache/pulsar/tree/master/pulsar-client-go>)
>>> based on the CPP. However, CGO has many problems, which causes performance
>>> to degrade
>>> easily, makes it difficult to debug, and makes Pulsar hard to support the
>>> Go community better.
>>> Consequently, we rewrite the [Go Client](
>>> https://github.com/apache/pulsar-client-go <
>>> https://github.com/apache/pulsar-client-go>) based on native
>>> Go to replace the CGO client and allow Pulsar to better support the
>>> applications and integrations
>>> of the Go community.
>>> 
>>> Currently, pulsar-client-go 0.1.0 is released with multiple features
>>> (producer, consumer, reader, and so on).
>>> Except for schema, pulsar-client-go 0.1.0 can entirely replace CGO
>>> client, so may I suggest replacing
>>> CGO client with pulsar-client-go 0.1.0 in the next major Pulsar release.
>>> 
>>> If agree, we need to do the following tasks:
>>> Update the Go client doc on the Pulsar website
>>> Remove the related contents of CGo client and add the related contents of
>>> CPP client in release validation
>>> Delete the  CGo client code from Pulsar repo
>>> Celebrate after finishing this project
>>> 
>>> --
>>> Thanks
>>> Xiaolong Ran


Re: [Discuss] Replace cgo client in Pulsar repo with Native Go Client

Posted by Matteo Merli <ma...@gmail.com>.
> Delete the  CGo client code from Pulsar repo

I'd rather wait a bit more for that, given that apps are fetching
directly from github. Eg: change the Docs but leave the code there for
one more release cycle.

--
Matteo Merli
<ma...@gmail.com>

On Mon, Apr 13, 2020 at 2:37 PM Yuva raj <uv...@gmail.com> wrote:
>
> +1
>
> On Mon, Apr 13, 2020, 7:49 PM xiaolong ran <ra...@gmail.com> wrote:
>
> > Hello all:
> >
> >
> > Pulsar has provided [pulsar-client-go](
> > https://github.com/apache/pulsar/tree/master/pulsar-client-go <
> > https://github.com/apache/pulsar/tree/master/pulsar-client-go>)
> > based on the CPP. However, CGO has many problems, which causes performance
> > to degrade
> > easily, makes it difficult to debug, and makes Pulsar hard to support the
> > Go community better.
> > Consequently, we rewrite the [Go Client](
> > https://github.com/apache/pulsar-client-go <
> > https://github.com/apache/pulsar-client-go>) based on native
> > Go to replace the CGO client and allow Pulsar to better support the
> > applications and integrations
> > of the Go community.
> >
> > Currently, pulsar-client-go 0.1.0 is released with multiple features
> > (producer, consumer, reader, and so on).
> >  Except for schema, pulsar-client-go 0.1.0 can entirely replace CGO
> > client, so may I suggest replacing
> > CGO client with pulsar-client-go 0.1.0 in the next major Pulsar release.
> >
> > If agree, we need to do the following tasks:
> > Update the Go client doc on the Pulsar website
> > Remove the related contents of CGo client and add the related contents of
> > CPP client in release validation
> > Delete the  CGo client code from Pulsar repo
> > Celebrate after finishing this project
> >
> > --
> > Thanks
> > Xiaolong Ran

Re: [Discuss] Replace cgo client in Pulsar repo with Native Go Client

Posted by Yuva raj <uv...@gmail.com>.
+1

On Mon, Apr 13, 2020, 7:49 PM xiaolong ran <ra...@gmail.com> wrote:

> Hello all:
>
>
> Pulsar has provided [pulsar-client-go](
> https://github.com/apache/pulsar/tree/master/pulsar-client-go <
> https://github.com/apache/pulsar/tree/master/pulsar-client-go>)
> based on the CPP. However, CGO has many problems, which causes performance
> to degrade
> easily, makes it difficult to debug, and makes Pulsar hard to support the
> Go community better.
> Consequently, we rewrite the [Go Client](
> https://github.com/apache/pulsar-client-go <
> https://github.com/apache/pulsar-client-go>) based on native
> Go to replace the CGO client and allow Pulsar to better support the
> applications and integrations
> of the Go community.
>
> Currently, pulsar-client-go 0.1.0 is released with multiple features
> (producer, consumer, reader, and so on).
>  Except for schema, pulsar-client-go 0.1.0 can entirely replace CGO
> client, so may I suggest replacing
> CGO client with pulsar-client-go 0.1.0 in the next major Pulsar release.
>
> If agree, we need to do the following tasks:
> Update the Go client doc on the Pulsar website
> Remove the related contents of CGo client and add the related contents of
> CPP client in release validation
> Delete the  CGo client code from Pulsar repo
> Celebrate after finishing this project
>
> --
> Thanks
> Xiaolong Ran