apache / apache/pulsar-client-python

Use Protobuf as schema registry for python client

Ouverte
#49 3 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
75
Forks
53
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

**Is your enhancement request related to a problem? Please describe.**
I was wondering if there was a possibility to use protobuf in order to auto-generate code for my pulsar client services (both producer and consumer). By reading documentation and searching on the internet I was able to find some references related to other languages (like Java or C).

**Describe the solution you'd like**
I've tried to do something like that, obviously without success.
```
import _pulsar
from pulsar import Client
from pulsar.schema import Schema

from generated_schema.test_pb2 import TodoList

class ProtobufSchema(Schema):
def __init__(self, record_cls):
super(ProtobufSchema,
self).__init__(record_cls, _pulsar.SchemaType.PROTOBUF, ,
'PROTOBUF')

def encode(self, obj):
self._validate_object_type(obj)
return obj.SerializeToString()

def decode(self, data):
return self._record_cls.FromString(data)

def test():
client = Client('pulsar://localhost:6650')
producer = client.create_producer(topic='persistent://cloudacademy/accounts/sso-configuration-updated.v1',
schema=ProtobufSchema(TodoList))

producer.send(TodoList(owner_id=1, owner_name='test'))
```

**Additional context**
For a reference, I'm expecting something like the integration with Avro, but instead with Protobuf (with autogenerated classes)

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.