Phase 3: Implement Avro decoder and SMQ RecordValue mapper

- Add goavro dependency for Avro schema parsing and decoding
- Implement AvroDecoder with binary data decoding to Go maps
- Add MapToRecordValue() to convert Go values to schema_pb.RecordValue
- Support complex types: records, arrays, unions, primitives
- Add type inference from decoded maps to generate RecordType schemas
- Handle Avro union types and null values correctly
- Comprehensive test coverage including integration tests

This enables conversion of Avro messages to SeaweedMQ format.
This commit is contained in:
chrislu committed 2025-09-11 11:29:16 -07:00
1 parent c688bd1806
commit 2c021652d3
4 files changed
+874

No files matched your search

+1
View File
@@ -196,6 +196,7 @@ require (
github.com/jaegertracing/jaeger v1.47.0 // indirect
github.com/kr/pretty v0.3.1 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/linkedin/goavro/v2 v2.14.0 // indirect
github.com/lithammer/shortuuid/v3 v3.0.7 // indirect
github.com/openzipkin/zipkin-go v0.4.3 // indirect
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect