danielgtaylor / danielgtaylor/python-betterproto

Support for coded streams

Ouverte
#482 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
enhancement medium
Langage dominant
Python
Étoiles
1.8k
Forks
234
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

C++ and Java implementations of protocol buffers have support for [writing and reading multiple messages](https://protobuf.dev/programming-guides/techniques/#streaming) via `CodedOutputStream` and `CodedInputStream` . This is also space-efficient because the size of each message can be represented as a `varint`.

I think having something similar to `CodedOutputStream` and `CodedInputStream` in `betterproto` would be useful. One use case would be when a Python tool uses `betterproto` to emit a binary stream of messages using this and then a C++/Java tool can use `CodedInputStream` to read the stream.

Related Java documentation:
* [CodedInputStream](https://protobuf.dev/reference/java/api-docs/com/google/protobuf/CodedInputStream.html)
* [CodedOutputStream](https://protobuf.dev/reference/java/api-docs/com/google/protobuf/CodedOutputStream)

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner les indications liées sur le streaming protobuf ainsi que la documentation Java de CodedInputStream et CodedOutputStream, puis inspectez la manière dont betterproto représente et sérialise actuellement les messages. Définissez une API pour lire et écrire des messages délimités par leur longueur et encadrés par un varint, puis vérifiez que les streams produits par Python peuvent être consommés par les implémentations C++ et Java documentées.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
backend-api-design
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

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