Repository navigation
0.2.0
Breaking changes
-
Spring Boot auto-configuration moved out of the backend modules into the new
codec-autoconfiguremodule. Spring Boot applications should now depend on
codec-spring-boot-starterplus a backend module; the backend modules
themselves are Spring-free and no longer register anything on their own.Migration: add
codec-spring-boot-starteralongside your existing backend
dependency. Non-Spring users are unaffected. -
Backend codec implementation classes (
JacksonCodec,GsonCodec,
ProtobufCodec) are now package-private. Interact with codecs through the
Codec<T>interface returned by the factories. -
Removed the empty
*CodecPropertiesconfiguration records (codec.jackson,
codec.gson,codec.protobufprefixes had no properties).
Added
- Codec composition:
Codec.andThen(Codec<byte[]>)layers byte-level
transforms (compression, encryption, ...) onto any codec, unwinding them
automatically in reverse order on decode CompressionStreamCodecbase class for stream-based compression transforms,
with built-in protection against decompression bombs (64 MiB default cap,
tunable per instance)GzipCodec(gzip/RFC 1952 framing) andDeflateCodec(zlib/RFC 1950
framing with configurable compression level) built-in transforms- Jackson 2.x backend (
codec-jackson2) for projects still on
com.fasterxml.jackson codec-autoconfiguremodule with deterministic backend precedence when
multiple backends are present (Jackson 3 → Jackson 2 → Gson → Protobuf);
a user-definedCodecFactorybean always winscodec-spring-boot-starterbundlingcodec-coreandcodec-autoconfigureAutomatic-Module-Namemanifest entries (org.jwcarman.codec.*) in all jars
Changed
- The parent pom no longer inherits
spring-boot-starter-parent; Spring Boot
versions are managed via aspring-boot-dependenciesBOM import and build
plugin versions are pinned explicitly
Documentation
- New documentation site: https://jwcarman.github.io/codec/
- Javadoc across the public API