236 lines
No EOL
9.2 KiB
Markdown
236 lines
No EOL
9.2 KiB
Markdown
This project uses Break Versioning (https://www.taoensso.com/break-versioning)
|
|
|
|
[releases]: https://github.com/taoensso/nippy/releases
|
|
|
|
# `v3.3.0-RC1` (2023-08-02)
|
|
|
|
> 📦 [Available on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.3.3-RC1)
|
|
|
|
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 support `with-meta`
|
|
|
|
## New since `v3.2.0`
|
|
|
|
* 89f98b4 [new] [#153] PoC: transducer support on thaw
|
|
* 60bc4e9 [new] [Storage efficiency] PoC: unsigned counts for small core colls
|
|
* 0a9d670 [new] [Storage efficiency] PoC: separate signed long types
|
|
* 8778fa4 [new] Include `:bindings` in ex-data of thaw failures
|
|
* aba153e [new] [#159] Add native impln for `java.sql.Date` (@philomates)
|
|
* d8b1825 [new] [#158] Add `java.lang.ClassCastException` to default thaw allow list (@carlosgeos)
|
|
* 8b7186a [new] Update [benchmark results](https://github.com/taoensso/nippy#performance)
|
|
* 3ac06b6 [new] Refactor tools ns, embed dynamic `*freeze-opts*` in wrappers
|
|
* 129ce95 [new] [#151] [#140] Add experimental `public-types-spec`
|
|
|
|
|
|
# `v3.2.0` (2022-07-18)
|
|
|
|
> Identical to `v3.2.0-RC3` (2022 Jun 27)
|
|
|
|
```clojure
|
|
[com.taoensso/nippy "3.2.0"]
|
|
```
|
|
|
|
> This is a non-breaking maintenance release.
|
|
> See [here](https://github.com/ptaoussanis/encore#recommended-steps-after-any-significant-dependency-update) for recommended steps when updating any Clojure/Script dependencies.
|
|
|
|
## New since `v3.1.3`
|
|
|
|
* [#144] [New] Add `org.joda.time.DateTime` to `default-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/freeze` should 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: https://github.com/ptaoussanis/nippy/commit/8909a32bdd654a136da385e0e09c9cc44416f964
|
|
|
|
|
|
# `v3.2.0-RC3` (2022-06-27)
|
|
|
|
```clojure
|
|
[com.taoensso/nippy "3.2.0-RC3"]
|
|
```
|
|
|
|
> This is a non-breaking maintenance release.
|
|
> See [here](https://github.com/ptaoussanis/encore#recommended-steps-after-any-significant-dependency-update) for recommended steps when updating any Clojure/Script dependencies.
|
|
|
|
## New since `v3.1.3`
|
|
|
|
* [#144] [New] Add `org.joda.time.DateTime` to `default-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/freeze` should 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: https://github.com/ptaoussanis/nippy/commit/8909a32bdd654a136da385e0e09c9cc44416f964
|
|
|
|
|
|
# `v3.2.0-RC2` (2022-06-23)
|
|
|
|
```clojure
|
|
[com.taoensso/nippy "3.2.0-RC2"]
|
|
```
|
|
|
|
> This is a non-breaking maintenance release.
|
|
> See [here](https://github.com/ptaoussanis/encore#recommended-steps-after-any-significant-dependency-update) for recommended steps when updating any Clojure/Script dependencies.
|
|
|
|
## New since `v3.1.3`
|
|
|
|
* [#144] [New] Add `org.joda.time.DateTime` to `default-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/freeze` should 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: https://github.com/ptaoussanis/nippy/commit/8909a32bdd654a136da385e0e09c9cc44416f964
|
|
|
|
|
|
# `v3.1.3` (2022-06-23)
|
|
|
|
```clojure
|
|
[com.taoensso/nippy "3.1.3"]
|
|
```
|
|
|
|
> This is a non-breaking, bugfix release.
|
|
> See [here](https://github.com/ptaoussanis/encore#recommended-steps-after-any-significant-dependency-update) for recommended steps when updating any Clojure/Script dependencies.
|
|
|
|
## Fixes since `v3.1.1`
|
|
|
|
* [#148] [Fix] `tools/freeze` should 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: https://github.com/ptaoussanis/nippy/commit/8909a32bdd654a136da385e0e09c9cc44416f964
|
|
|
|
|
|
# `v3.1.1` (2020-11-18)
|
|
|
|
```clojure
|
|
[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.1` will need >=`v3.1.1` to 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)
|
|
|
|
```clojure
|
|
[com.taoensso/nippy "3.1.0"]
|
|
```
|
|
|
|
> This is a non-breaking, minor feature release.
|
|
|
|
## New since `v3.0.0`
|
|
|
|
* [#135 #128] Added native `freeze/thaw` support for `java.time` classes on JVM 8+: `Instant`, `Duration`, `Period`.
|
|
* [#137] Add `thaw-from-resource` convenience util.
|
|
* Add (DEPRECATED) `swap-serializable-whitelist!` for backwards compatibility.
|
|
|
|
## Changes since `v3.0.0`
|
|
|
|
* Add several standard `java.time` classes to default `*thaw-serializable-whitelist*`.
|
|
|
|
|
|
## `v3.1.0-RC1` (2020-10-24)
|
|
|
|
```clojure
|
|
[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/thaw` support for `java.time.Instant` on JVM 8+ (@cnuernber).
|
|
|
|
|
|
# `v3.0.0` (2020-09-20)
|
|
|
|
```clojure
|
|
[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](https://github.com/ptaoussanis/encore#recommended-steps-after-any-significant-dependency-update) 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.5` to `v1.7`.
|
|
- **[BREAKING]** `:nippy/unthawable` responses 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/unthawable` responses.
|
|
- [Deprecated] `*serializable-whitelist*` has been split into two separate vars: `*freeze-serializable-allowlist*`, `*thaw-serializable-allowlist`*. See [#130] for details.
|
|
- By default, `freeze` now **allows** the use of Java's Serializable for **any** class. `thaw` continues 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.
|
|
- `freeze` and `thaw` now support opts: `:serializable-allowlist`, `:incl-metadata?`.
|
|
- New `read-quarantined-serializable-object-unsafe!` util to read quarantined Serializable objects. See [API docs](http://ptaoussanis.github.io/nippy/taoensso.nippy.html#var-read-quarantined-serializable-object-unsafe.21) and/or [#130] for details.
|
|
- Add `allow-and-record-any-serializable-class-unsafe` util. See [API docs](http://ptaoussanis.github.io/nippy/taoensso.nippy.html#var-allow-and-record-any-serializable-class-unsafe) 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.5` to `v1.7`.
|
|
- **[BREAKING]** [#130] `thaw` will now quarantine Serializable objects whose class is not allowed by `*thaw-serializable-allowlist*`. See [#130] for details.
|
|
- **[BREAKING]** `:nippy/unthawable` responses 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/unthawable` responses.
|
|
- [#101] Switch default encryptor from `AES-CBC` to `AES-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 cover `nil`
|
|
|
|
|
|
# Earlier releases
|
|
|
|
See [here][releases] for earlier releases. |