13 KiB
This project uses Break Versioning.
v3.4.0-RC1 (2024-02-06)
📦 Available on Clojars, this project uses Break Versioning.
This is a non-breaking feature and maintenance pre-release.
Please test carefully and report any unexpected problems, thank you! 🙏
Changes since v3.3.0
578c585[mod] Removenippy/snappy-compressor
New since v3.3.0
fb6f75e[new] Smarter, faster, protocol-basedfreezable?util6ad5aeb[new] Add:zstdcompressor, new compressor backend9db09e1[new] [#163] Track serialized output in testsdcc6b08[new] [#164] Update benchmarksf3ff7ae[new] Add nativeMapEntryfreezer- Misc internal improvements
v3.3.0 (2023-10-11)
📦 Available on Clojars, this project uses Break Versioning.
Identical to v3.3.0-RC2.
This is a non-breaking feature and maintenance release.
Please test carefully and report any unexpected problems, thank you! 🙏
Changes since v3.2.0
- [mod] Due to micro-optimizations of some elementary types, Nippy v3.3 may produce different serialized output to earlier versions of Nippy. Most users won't care about this, but you could be affected if you depend on specific serialized byte values (for example by comparing serialized output between different versions of Nippy).
Fixes since v3.2.0
fa1cc66[fix] [#143] Don't freeze meta info for types that don't supportwith-meta
New since v3.2.0
89f98b4[new] [#153] PoC: transducer support on thaw60bc4e9[new] [Storage efficiency] PoC: unsigned counts for small core colls0a9d670[new] [Storage efficiency] PoC: separate signed long types8778fa4[new] Include:bindingsin ex-data of thaw failuresaba153e[new] [#159] Add native impln forjava.sql.Date(@philomates)d8b1825[new] [#158] Addjava.lang.ClassCastExceptionto default thaw allow list (@carlosgeos)8b7186a[new] Update benchmark results3ac06b6[new] Refactor tools ns, embed dynamic*freeze-opts*in wrappers129ce95[new] [#151] [#140] Add experimentalpublic-types-spec
Other improvements since v3.2.0
- Improved some docstrings
- Improved generative unit tests
- Updated internal dependencies
v3.4.0-beta1 (2023-09-26)
This is a non-breaking feature pre-release.
Please test carefully and report any unexpected problems, thank you! 🙏
New since v3.3.0-RC2
6ad5aeb[new] Add:zstdcompressor, new (faster) compressor backend, better docstringsfb6f75e[new] Smarter, faster, protocol-basedfreezable?utilf3ff7ae[new] Add nativeMapEntryfreezerfef079d[new] Add subvec to stress data- Misc internal improvements
Other improvements since v3.3.0-RC2
e0cd003[nop] Update docs99970d5[nop] Update benchmark resultsbcf7673[nop] Move benchmarks ns under tests dir
v3.3.0-RC2 (2023-09-25)
Identical to v3.3.0-RC1 except:
- Improves some docstrings
- Improves generative unit tests
- Updates internal dependencies
If no unexpected problems come up, v3.3.0 final is planned for release by the end of September.
v3.3.0-RC1 (2023-08-02)
This is a non-breaking feature and maintenance pre-release.
Please test carefully and report any unexpected problems, thank you! 🙏
Fixes since v3.2.0
fa1cc66[fix] [#143] Don't freeze meta info for types that don't supportwith-meta
New since v3.2.0
89f98b4[new] [#153] PoC: transducer support on thaw60bc4e9[new] [Storage efficiency] PoC: unsigned counts for small core colls0a9d670[new] [Storage efficiency] PoC: separate signed long types8778fa4[new] Include:bindingsin ex-data of thaw failuresaba153e[new] [#159] Add native impln forjava.sql.Date(@philomates)d8b1825[new] [#158] Addjava.lang.ClassCastExceptionto default thaw allow list (@carlosgeos)8b7186a[new] Update benchmark results3ac06b6[new] Refactor tools ns, embed dynamic*freeze-opts*in wrappers129ce95[new] [#151] [#140] Add experimentalpublic-types-spec
v3.2.0 (2022-07-18)
Identical to
v3.2.0-RC3(2022 Jun 27)
[com.taoensso/nippy "3.2.0"]
This is a non-breaking maintenance release.
See here for recommended steps when updating any Clojure/Script dependencies.
New since v3.1.3
- [#144] [New] Add
org.joda.time.DateTimetodefault-thaw-serializable-allowlist(@slipset) - [#146] [New] Add Graal native configurations (@FieryCod)
Changes since v3.1.3
- Bump dependencies, incl. minimum Encore version
Fixes since v3.1.1
- [#89 #150] [Fix] Boxed Booleans incorrectly freezing to primitive
true(@RolT) - [#148] [Fix]
tools/freezeshould use*freeze-opts*even for unwrapped vals - [#145] [Fix] Freezing custom types with munged field names
The boxed Boolean bug has been around since the first version of Nippy and is mostly
relevant to users doing Java interop. For more info see: 8909a32bdd
v3.2.0-RC3 (2022-06-27)
[com.taoensso/nippy "3.2.0-RC3"]
This is a non-breaking maintenance release.
See here for recommended steps when updating any Clojure/Script dependencies.
New since v3.1.3
- [#144] [New] Add
org.joda.time.DateTimetodefault-thaw-serializable-allowlist(@slipset) - [#146] [New] Add Graal native configurations (@FieryCod)
Changes since v3.1.3
- Bump dependencies, incl. minimum Encore version
Fixes since v3.1.1
- [#89 #150] [Fix] Boxed Booleans incorrectly freezing to primitive
true(@RolT) - [#148] [Fix]
tools/freezeshould use*freeze-opts*even for unwrapped vals - [#145] [Fix] Freezing custom types with munged field names
The boxed Boolean bug has been around since the first version of Nippy and is mostly
relevant to users doing Java interop. For more info see: 8909a32bdd
v3.2.0-RC2 (2022-06-23)
[com.taoensso/nippy "3.2.0-RC2"]
This is a non-breaking maintenance release.
See here for recommended steps when updating any Clojure/Script dependencies.
New since v3.1.3
- [#144] [New] Add
org.joda.time.DateTimetodefault-thaw-serializable-allowlist(@slipset) - [#146] [New] Add Graal native configurations (@FieryCod)
Changes since v3.1.3
- Bump dependencies, incl. minimum Encore version
Fixes since v3.1.1
- [#148] [Fix]
tools/freezeshould use*freeze-opts*even for unwrapped vals - [#89 #150] [Fix] Boxed Booleans incorrectly freezing to primitive
true(@RolT)
The boxed Boolean bug has been around since the first version of Nippy and is mostly
relevant to users doing Java interop. For more info see: 8909a32bdd
v3.1.3 (2022-06-23)
[com.taoensso/nippy "3.1.3"]
This is a non-breaking, bugfix release.
See here for recommended steps when updating any Clojure/Script dependencies.
Fixes since v3.1.1
- [#148] [Fix]
tools/freezeshould use*freeze-opts*even for unwrapped vals - [#89 #150] [Fix] Boxed Booleans incorrectly freezing to primitive
true(@RolT)
The boxed Boolean bug has been around since the first version of Nippy and is mostly
relevant to users doing Java interop. For more info see: 8909a32bdd
v3.1.1 (2020-11-18)
[com.taoensso/nippy "3.1.1"]
This is a non-breaking, bugfix release. But please note that large keywords or symbols (with >127 characters) frozen with >=
v3.1.1will need >=v3.1.1to thaw.
Fixes since v3.1.0
- Large keywords and symbols (with >127 characters) can now thaw without throwing (@danmason).
[1] Keywords or symbols with >127 characters in their name
v3.1.0 (2020-11-06)
[com.taoensso/nippy "3.1.0"]
This is a non-breaking, minor feature release.
New since v3.0.0
- [#135 #128] Added native
freeze/thawsupport forjava.timeclasses on JVM 8+:Instant,Duration,Period. - [#137] Add
thaw-from-resourceconvenience util. - Add (DEPRECATED)
swap-serializable-whitelist!for backwards compatibility.
Changes since v3.0.0
- Add several standard
java.timeclasses to default*thaw-serializable-whitelist*.
v3.1.0-RC1 (2020-10-24)
[com.taoensso/nippy "3.1.0-RC1"]
This is a non-breaking, minor feature release.
New since v3.0.0
- [#135 #128] Added native
freeze/thawsupport forjava.time.Instanton JVM 8+ (@cnuernber).
v3.0.0 (2020-09-20)
[com.taoensso/nippy "3.0.0"]
This release is focused on smoothing out rough edges left by
CVE-2020-24164[#130], and to ease transition from versions of Nippy <v2.15.0 final.
See here for recommended steps when updating any Clojure/Script dependencies.
Note that there's separate details below for upgrading from v2.15 vs v2.14:
Upgrading from v2.15 (usually non-breaking)
Usually a non-breaking drop-in replacement, but there's some changes you might like to take advantage of. See [#130] for detailed upgrade instructions.
Changes
- [BREAKING] Bumped minimum Clojure version from
v1.5tov1.7. - [BREAKING]
:nippy/unthawableresponses now have a standardized form:{:nippy/unthawable {:type _ :cause _ ...}. Most folks won't care about this change unless they have code specifically to deal with:nippy/unthawableresponses. - [Deprecated]
*serializable-whitelist*has been split into two separate vars:*freeze-serializable-allowlist*,*thaw-serializable-allowlist*. See [#130] for details. - By default,
freezenow allows the use of Java's Serializable for any class.thawcontinues to be restrictive by default, and will quarantine any objects not on the class allowlist. See [#130] for details.
New
- [#122] Option to disable freezing and/or thawing of metadata.
freezeandthawnow support opts::serializable-allowlist,:incl-metadata?.- New
read-quarantined-serializable-object-unsafe!util to read quarantined Serializable objects. See API docs and/or [#130] for details. - Add
allow-and-record-any-serializable-class-unsafeutil. See API docs and/or [#130] for details.
Upgrading from v2.14 (may be BREAKING)
Likely breaking. Please see [#130] for detailed upgrade instructions.
Changes
- [BREAKING] Bumped minimum Clojure version from
v1.5tov1.7. - [BREAKING] [#130]
thawwill now quarantine Serializable objects whose class is not allowed by*thaw-serializable-allowlist*. See [#130] for details. - [BREAKING]
:nippy/unthawableresponses now have a standardized form:{:nippy/unthawable {:type _ :cause _ ...}. Most folks won't care about this change unless you have code specifically to deal with:nippy/unthawableresponses. - [#101] Switch default encryptor from
AES-CBCtoAES-GCM(faster, includes integrity check)
New
- [#127] Add utils:
freeze-to-string,thaw-from-string(@piotr-yuxuan) - [#113 #114] Add support for object arrays (@isaksky)
- [#83 #112] Add support for deftype (@isaksky)
- [#83 #113] Add support for URIs (@isaksky)
- [#126]
extend-freeze: include id collision odds in docstring
Fixes
- [#120] Update
freezable?to covernil
Earlier releases
See here for earlier releases.