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
>

Reply via email to