I checked with Sijie today. StreamNative can contribute the pulsarctl project to Apache Foundation.
Regards, Penghui On Fri, Feb 17, 2023 at 4:02 PM Enrico Olivelli <eolive...@gmail.com> wrote: > I agree to add an admin API to the go client, this would be very helpful. > > Il giorno ven 17 feb 2023 alle ore 08:44 Zixuan Liu > <node...@gmail.com> ha scritto: > > > > Hi Zhangjian, > > > > This is a good idea to write the admin client by golang, but I don't > > suggest add the admin features to pulsar-go-client, it's better to use a > > new repository to do that to separate dependencies. > > > > BTW, StreamNative has a pulsarctl [0] tool, which includes the admin api. > > > > > > It's better to reuse existing code rather than reinventing the wheel. > > > > I aggred this point. If possible, we can integrate the pulsarctl to this > > new project. > > We are talking about adding a client that calls a > well defined and maintained REST API. > It is better to have our implementation and not rely on third parties > when it is possible. > If there is a security issue in pulsarctl, how would we handle that ? > Also the Pulsar community maintains the Pulsar API and this is the > place where it is easier to keep the client up-to-date with the new > APIs that we will develop, > we can't wait for a third party project to implement our own APIs and > wait for an upgrade (even if it is OSS, we cannot cut releases or have > control over the release cycle) > > > Enrico > > > > > > > [0] - https://github.com/streamnative/pulsarctl > > > > Thanks, > > Zixuan > > > > > > ZhangJian He <shoot...@gmail.com> 于2023年2月17日周五 13:47写道: > > > > > Separating dependencies is better. For example, I think > Pulsar-admin-go can > > > only have golang standard tls and http dependencies. > > > But it seems impossible to have two go modules when publishing packages > > > using github. > > > > > > > Has anyone tried generating an admin client from our generated open > > > api spec? > > > > > > I have attempted it, but it requires us to modify our Swagger file. Our > > > existing Swagger file can't generate HTTP clients directly. Perhaps we > can > > > rewrite a unified and standardized Swagger file, and then generate all > > > code, including brokers, from there gradually. > > > > > > Thanks > > > ZhangJian He > > > > > > > > > On Fri, 17 Feb 2023 at 12:37, Yunze Xu <y...@streamnative.io.invalid> > > > wrote: > > > > > > > > I notice that the Java Client and the Java Admin Client are > separate > > > > dependencies. Is this boundary important to maintain for other > > > > language admin clients? > > > > > > > > IMO, separating them is better to maintain. I had an idea to > implement > > > > a pure C implementation of the Pulsar admin API. Only libcurl and > > > > openssl dependencies are required. Compared with the C++ library, the > > > > pure C library has smaller size, better ABI compatibility, and much > > > > quicker compilation speed than the C++ library, which has some more > > > > heavy dependencies like Boost and Protobuf. > > > > > > > > Thanks, > > > > Yunze > > > > > > > > On Fri, Feb 17, 2023 at 11:58 AM Michael Marshall < > mmarsh...@apache.org> > > > > wrote: > > > > > > > > > > I think it would be valuable to have admin clients in many > languages. > > > > > Has anyone tried generating an admin client from our generated open > > > > > api spec? > > > > > > > > > > I notice that the Java Client and the Java Admin Client are > separate > > > > > dependencies. Is this boundary important to maintain for other > > > > > language admin clients? > > > > > > > > > > Thanks, > > > > > Michael > > > > > > > > > > On Thu, Feb 16, 2023 at 7:47 PM ZhangJian He <shoot...@gmail.com> > > > wrote: > > > > > > > > > > > > I would like to express that the current Pulsar client for Go > > > > > > (pulsar-client-go) is missing the pulsar Admin API. As such, I > would > > > > like > > > > > > to propose that we work towards adding this feature to > > > > pulsar-client-go. > > > > > > > > > > > > I believe that this new feature would be a valuable addition to > > > > > > pulsar-client-go, and I am excited to work to make it happen. > > > > > > > > > > > > I have submitted a PR: > > > > https://github.com/apache/pulsar-client-go/pull/959 > > > > > > The full api is not currently available, but we are adding. > > > > > > > > > > > > Below is a simple example about how to use > > > > > > > > > > > > ## usage > > > > > > > > > > > > ```go > > > > > > package main > > > > > > > > > > > > import ( > > > > > > "fmt" > > > > > > "github.com/apache/pulsar-client-go/padmin" > > > > > > ) > > > > > > > > > > > > func main() { > > > > > > admin, err := padmin.NewDefaultPulsarAdmin() > > > > > > if err != nil { > > > > > > panic(err) > > > > > > } > > > > > > // get namespace topic list > > > > > > topics, err := > admin.PersistentTopics.ListNamespaceTopics("tenant", > > > > > > "namespace") > > > > > > if err != nil { > > > > > > panic(err) > > > > > > } > > > > > > fmt.Println(topics) > > > > > > } > > > > > > ``` > > > > > > > > > > > > Thanks > > > > > > ZhangJian He > > > > > > > >