Is your feature request related to a problem? Please describe.
ProtoBuf is used commonly. For ProtoBuf, users define the message in IDL:
syntax = "proto3";
message SearchRequest {
string query = 1;
int32 page_number = 2;
int32 results_per_page = 3;
}
then use the protoc to compile the schema IDL into generated data holder and serializer class.
If users want to migrate from ProtoBuf to Fury for better performance or future reference/polymorphism
support, they must define struct in every language manually. This may take some cost if there are many struct to write.
Describe the solution you'd like
Fury can implement a static schema compiler furyc, which support parsing ProtoBuf IDL, then generate fury serializer code plain data holder struct.
The furyc can be implemented by python, and use antllr4-python to parse ProtoBuf IDL grammer.
Additional context
#1017
Is your feature request related to a problem? Please describe.
ProtoBuf is used commonly. For ProtoBuf, users define the message in IDL:
then use the
protocto compile the schema IDL into generated data holder and serializer class.If users want to migrate from ProtoBuf to Fury for better performance or future reference/polymorphism
support, they must define struct in every language manually. This may take some cost if there are many struct to write.
Describe the solution you'd like
Fury can implement a static schema compiler
furyc, which support parsing ProtoBuf IDL, then generate fury serializer code plain data holder struct.The
furyccan be implemented by python, and useantllr4-pythonto parseProtoBuf IDLgrammer.Additional context
#1017