First release candidate for go-libddwaf v5, which tracks libddwaf v2.
⚠️ Release candidate — APIs may still change before the final v5.0.0. Not recommended for production use yet.
This is a major version with breaking API changes. See the "Upgrading from v4 to v5" section of the README for the full migration guide.
Highlights
- libddwaf v2 bindings —
WAFObject/WAFObjectKVare now value-type aliases over the 16-byteddwaf_objectunion (no need to importinternal/bindings). - Reworked encoding API —
MapBuilder/ArrayBuilder, typed slice/map fast paths, aTruncationsvalue type, and anEncoderhelper forEncodableimplementers. - Ephemeral evaluation via
Context.NewSubcontext()→*Subcontext;RunAddressDatanow has a singleDatafield (no morePersistent/Ephemeral). - Context-aware API —
Handle.NewContext,Context.Run, andContext.NewSubcontexttake acontext.Context;Builder.Build()returns(*Handle, error). NewBuilder()no longer takes obfuscator regexes (configure viaAddOrUpdateConfig(..., "obfuscator/config", ...)).- Concurrency — per-instance pinner-lifetime fix for concurrent
Run/Close; race-detector clean.
Merged in #215.