ansys / ansys/api-eigen-example
vector serialization does not take into account endianness
- Lenguaje dominante
- Python
- Estrellas
- 8
- Forks
- 0
- Merge medio
- 11 h 54 min
- PR fusionados (30 d)
- 10
Descripción
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.
Guía de contribución
Línea de trabajo
Comience con la definición referenciada de grpcdemo.proto y los puntos de serialización en src/ansys/eigen/cpp/grpc/client/src/GRPCClient.cpp y src/ansys/eigen/python/grpc/client.py. Compare la representación actual basada en bytes con los arrays de gRPC y determine el comportamiento entre diferentes endianness que debe conservarse. Se considera terminado cuando los clientes y servidores con diferente endianness nativo intercambian datos vectoriales sin corrupción silenciosa.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp, grpc, python
- Área
- api, backend
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100