v0.6.0: Full round-trip + Generic streaming
What's new
DecodeGeneric
Parse any GCF text back to native Go values. Works with both generic profile and graph profile payloads. Full round-trip: EncodeGeneric -> GCF -> DecodeGeneric.
result, err := gcf.DecodeGeneric(gcfText)
// Returns map[string]any, []any, or primitivesGenericStreamEncoder
Zero-buffering streaming encoder for the generic profile. Write rows as data arrives with O(1) memory per row.
enc := gcf.NewGenericStreamEncoder(w)
enc.BeginArray("users", []string{"name", "email", "role"})
enc.WriteRow([]any{"alice", "alice@co.com", "admin"})
enc.WriteRow([]any{"bob", "bob@co.com", "user"})
enc.EndArray()
enc.Close() // emits ## _summary trailerAlso in this release
- Repositioned as drop-in JSON replacement for AI pipelines
- Multi-model eval: 12 runs across 6 models, GCF wins 11, ties 1
Full changelog: v0.5.0...v0.6.0