ansys / ansys/api-eigen-example
vector serialization does not take into account endianness
- Langage dominant
- Python
- Étoiles
- 8
- Forks
- 0
- Merge moyen
- 11 h 54 min
- PR mergées (30 j)
- 10
Description
The [gRPC protocol is defined](https://github.com/ansys/api-eigen-example/blob/108085fcaa860a9d1e27abbdc561c160a98e09e3/src/ansys/eigen/protos/grpcdemo.proto#L21) as sending over the bytes of arrays directly, but does not take into account endianness. This means the protocol will fail spectacularly (type 3 error, bad data with no error) if the client and server machines have different native endianness.
https://github.com/ansys/api-eigen-example/blob/108085fcaa860a9d1e27abbdc561c160a98e09e3/src/ansys/eigen/cpp/grpc/client/src/GRPCClient.cpp#L499
https://github.com/ansys/api-eigen-example/blob/108085fcaa860a9d1e27abbdc561c160a98e09e3/src/ansys/eigen/python/grpc/client.py#L280
Unless there is another reason, I recommend using gRPC arrays instead of bytes. gRPC can handle this for us.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par la définition référencée de grpcdemo.proto et les points de sérialisation dans src/ansys/eigen/cpp/grpc/client/src/GRPCClient.cpp et src/ansys/eigen/python/grpc/client.py. Comparez la représentation actuelle basée sur des octets avec les tableaux gRPC et déterminez le comportement entre différents ordres des octets qui doit être préservé. Le travail est terminé lorsque des clients et des serveurs ayant un ordre des octets natif différent échangent des données vectorielles sans corruption silencieuse.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp, grpc, python
- Domaine
- api, backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100