Currently, slicec-cs is written in Rust, which is impractical for C# developers updating / improving code in icerpc-csharp: you need to be familiar with Rust to update the code generator, even though the focus of icerpc-csharp is naturally C#.
Protobuf provides an elegant solution to this issue: the protoc compiler launches plugins (in particular code-generator plugins) that can be written in any language.
We want to do the same for Slice:
slicec (the compiler executable) remains in Rust but doesn't generate any code. Its focus is parsing.
slicec communicates with plugins via stdint/stdout; in particular it serializes the AST using Slice2
the slicec code generators for C# (base code generator and IceRPC code generator) are (re)written in C#
Currently, slicec-cs is written in Rust, which is impractical for C# developers updating / improving code in icerpc-csharp: you need to be familiar with Rust to update the code generator, even though the focus of icerpc-csharp is naturally C#.
Protobuf provides an elegant solution to this issue: the protoc compiler launches plugins (in particular code-generator plugins) that can be written in any language.
We want to do the same for Slice: