Documentation
¶
Overview ¶
Package data compiles protobuf message descriptors into Invariant's language-neutral logical data schema.
Index ¶
- Constants
- func CompileDescriptorBytes(descriptor []byte, messageNames []string, previous *datav1.SchemaBundle) (*datav1.SchemaBundle, error)
- func CompileMessage(md protoreflect.MessageDescriptor, previous *datav1.DatasetSchema) (*datav1.DatasetSchema, error)
- func FindDataset(bundle *datav1.SchemaBundle, sourceMessage string) *datav1.DatasetSchema
- func MarshalSchemaBundle(bundle *datav1.SchemaBundle) ([]byte, error)
- func ParseSchemaBundle(encoded []byte) (*datav1.SchemaBundle, error)
- func ValidateSchemaBundle(bundle *datav1.SchemaBundle) error
Constants ¶
const ( // IRVersion is the current SchemaBundle protobuf model version. IRVersion uint32 = 3 // MappingVersion is the current protobuf-to-logical-type mapping version. MappingVersion uint32 = 2 )
Variables ¶
This section is empty.
Functions ¶
func CompileDescriptorBytes ¶
func CompileDescriptorBytes( descriptor []byte, messageNames []string, previous *datav1.SchemaBundle, ) (*datav1.SchemaBundle, error)
CompileDescriptorBytes compiles protobuf messages from a serialized FileDescriptorSet. Explicit message names take precedence; when none are supplied, messages marked with the dataset option are discovered. Ordinary RPC request and response messages are never implicitly storage datasets.
Pass the last committed bundle as previous when evolving a schema. Stable field identities are retained by protobuf number path, and removed identities are permanently retired.
func CompileMessage ¶
func CompileMessage( md protoreflect.MessageDescriptor, previous *datav1.DatasetSchema, ) (*datav1.DatasetSchema, error)
CompileMessage compiles one protobuf message descriptor into a logical dataset schema. The previous schema, when supplied, must be the prior state for the same fully-qualified protobuf message.
func FindDataset ¶
func FindDataset(bundle *datav1.SchemaBundle, sourceMessage string) *datav1.DatasetSchema
FindDataset returns the dataset compiled from sourceMessage, if present.
func MarshalSchemaBundle ¶
func MarshalSchemaBundle(bundle *datav1.SchemaBundle) ([]byte, error)
MarshalSchemaBundle validates and deterministically serializes a bundle.
func ParseSchemaBundle ¶
func ParseSchemaBundle(encoded []byte) (*datav1.SchemaBundle, error)
ParseSchemaBundle decodes a bundle and rejects IR or mapping rules this package cannot interpret.
func ValidateSchemaBundle ¶
func ValidateSchemaBundle(bundle *datav1.SchemaBundle) error
ValidateSchemaBundle rejects IR or mapping rules this package cannot interpret. It validates the artifact version, not every compiler invariant.
Types ¶
This section is empty.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package arrow projects Invariant's canonical protobuf data schema into an Apache Arrow schema.
|
Package arrow projects Invariant's canonical protobuf data schema into an Apache Arrow schema. |
|
Package iceberg projects Invariant's canonical protobuf data schema into an official Apache Iceberg schema.
|
Package iceberg projects Invariant's canonical protobuf data schema into an official Apache Iceberg schema. |
|
Package parquet projects Invariant's canonical protobuf data schema into an Apache Parquet schema through Arrow's official pqarrow bridge.
|
Package parquet projects Invariant's canonical protobuf data schema into an Apache Parquet schema through Arrow's official pqarrow bridge. |
|
Package postgres projects Invariant's canonical protobuf data schema into PostgreSQL DDL.
|
Package postgres projects Invariant's canonical protobuf data schema into PostgreSQL DDL. |