Protocol Buffer Rules
This specification defines rules enforced by Buffrs to prevent package colisions, and provide uniformity and transparency for package consumers.
Rules with the 00XX
code define the package and filesystem layout, where as
rules with a 01XX
code enforce certain protocol buffer definition rules.
0000
– Package Name Prefix / Symmetry
Enforces that the Buffrs Package ID is used as the prefix for all protocol buffer package declarations.
So given a Buffrs Package with the ID physics
this enforces that the package
only contains protocol buffer package declarations matching
physics|physics.*
;
A violation would cause type colisions and ambiguity when trying to resolve a type.
0010
– Sub-Package Declaration
Enforces that subpackages are declared through a sensible folder
structure. Given a Buffrs Package with the ID physics
the protocol buffer
file that declares package physics.units;
has to be called
proto/units.proto
.
Nested subpackages are represented / grouped through folders. So if one wants
to declare package physics.units.temperature;
the respective file must be
located at proto/units/temperature.proto
.
0020
– Root Package Declaration
Enforces that only one file at a time declares the root package.
Namely: If a Buffrs Package with the ID physics
is defined, the
proto/physics.proto
must declare the the same package in the protocol buffer
syntax through package physics;
.