This is a DSL which simplifies the writing of ProtoBuf contracts for Zebus.
Zebus.MessageDslprovides the DSL parser, C# and proto generatorsZebus.MessageDsl.Buildprovides a MSBuild code generator which will translate.msgfiles in your projectZebus.MessageDsl.Generatorprovides a Roslyn source generator which will translate.msgfiles in your projectZebus.MessageDsl.Toolprovides a CLI tool for processing.msgfiles
- DSL Syntax
- CLI Tool
- Build-Time Code Generator (
.msgfiles)
Input file:
SomeMessage(int foo, string[] bar)Generated code:
[ProtoContract]
public sealed partial class SomeMessage : IEvent
{
[ProtoMember(1, IsRequired = true)]
public int Foo { get; private set; }
[ProtoMember(2, IsRequired = false)]
public string[] Bar { get; private set; }
private SomeMessage()
{
Bar = Array.Empty<string>();
}
public SomeMessage(int foo, string[] bar)
{
Foo = foo;
Bar = bar;
}
}