Skip to content

Protobuf Schemas#

RTA models size/performance-sensitive data in Google Protocol Buffers.

Why not X?

Some alternative frameworks are starting to gain traction, including:

These achieve even better performance than Protobuf by using zero-copy data structures instead of techniques like variable-length integer compression. The principle is that the data serialization is larger, but still amenable to fast compression (e.g. with LZ4).

Protobuf was chosen because it has a great mix of features, maturity, usability, RPC support, language support, and adoption — combined with good performance. Microsoft's investment in making gRPC a first-class citizen in Visual Studio and ASP.NET Core has been a major deciding factor.

Memory allocation is still a noticeable factor on a profiler — but typically only when all other sources of allocation and inefficiency have been eliminated.

These schemas are pre-compiled in the MAT.OCS.RTA.Model library, which is available via the McLaren NuGet Packages.

If you need to compile them yourself for your preferred language, create this directory structure:

Refer to the protobuf documentation for protoc instructions.