2014-01-22 10:02:34 +00:00
|
|
|
## v2.6.0-alpha1 / 2014-Jan-22
|
|
|
|
|
|
|
|
|
|
**WARNING**: This is an **EXPERIMENTAL early testing release** and **unsuitable for use in production**. Welcoming feedback on any issues, etc.!
|
|
|
|
|
|
|
|
|
|
### Features
|
|
|
|
|
* Low-level fns added: `freeze-to-out!`, `thaw-from-in!` for operating directly on DataOutputs/DataInputs.
|
|
|
|
|
* Data size optimizations for some small, common data types (small strings+keywords, small integers).
|
|
|
|
|
* New test suite added to ensure a 1-to-1 value->binary representation mapping for all core data types. This will be a guarantee kept going forward.
|
|
|
|
|
* New `:skip-headers?` `freeze` option to freeze data without standard Nippy headers (can be useful in very performance sensitive environments).
|
|
|
|
|
* New benchmarks added, notably a Fressian comparison.
|
|
|
|
|
|
|
|
|
|
### Changes
|
|
|
|
|
* **BREAKING**: the experimental `Compressable-LZMA2` type has changed (less overhead).
|
|
|
|
|
* **DEPRECATED**: `freeze-to-stream!`, `thaw-from-stream!` are deprecated in favor of the more general `freeze-to-out!`, `thaw-from-in!`.
|
|
|
|
|
* **DEPRECATED**: `:legacy-mode` options. This was being used mainly for headerless freezing, so a new headerless mode is taking its place.
|
|
|
|
|
|
|
|
|
|
### Fixes
|
|
|
|
|
* None.
|
|
|
|
|
|
|
|
|
|
|
2013-12-06 11:40:13 +00:00
|
|
|
## v2.5.2 / 2013-12-07
|
|
|
|
|
* Test Serializable objects at freeze time for better reliability.
|
|
|
|
|
* Don't cache `serializable?`/`readable?` for types with gensym-style names (e.g. as used for anonymous fns, etc.).
|
|
|
|
|
* Failed serialized/reader thaws will try return what they can (e.g. unreadable string) instead of just throwing.
|
|
|
|
|
* Thaw error messages now include failing type-id.
|
2013-12-03 07:36:33 +00:00
|
|
|
|
|
|
|
|
|
2013-12-06 11:40:13 +00:00
|
|
|
## v2.5.1 / 2013-12-03
|
2013-12-03 07:36:33 +00:00
|
|
|
* Added experimental `inspect-ba` fn for examining data possibly frozen by Nippy.
|
2013-12-03 08:50:24 +00:00
|
|
|
* Now throw exception at freeze (rather than thaw) time when trying to serialize an unreadable object using the Clojure reader.
|
2013-12-03 07:36:33 +00:00
|
|
|
|
|
|
|
|
|
2013-11-18 07:09:03 +00:00
|
|
|
## v2.4.1 → v2.5.0
|
2013-10-24 07:01:35 +00:00
|
|
|
* Refactored standard Freezable protocol implementations to de-emphasise interfaces as a matter of hygiene, Ref. http://goo.gl/IFXzvh.
|
2013-10-24 11:53:02 +00:00
|
|
|
* BETA STATUS: Added an additional (pre-Reader) Serializable fallback. This should greatly extend the number of out-the-box-serializable types.
|
2013-10-31 06:33:21 +00:00
|
|
|
* ISeq is now used as a fallback for non-concrete seq types, giving better type matching pre/post freeze for things like LazySeqs, etc.
|
2013-11-06 06:12:41 +00:00
|
|
|
* Experimental: add `Compressable-LZMA2` type & (replaceable) de/serializer.
|
2013-10-24 07:01:35 +00:00
|
|
|
|
|
|
|
|
|
2013-10-19 11:18:31 +00:00
|
|
|
## v2.3.0 → v2.4.1
|
2013-10-19 08:37:10 +00:00
|
|
|
* Added (alpha) LZMA2 (high-ratio) compressor.
|
|
|
|
|
* Bump tools.reader dependency to 0.7.9.
|
|
|
|
|
|
|
|
|
|
|
2013-10-17 10:51:06 +00:00
|
|
|
## v2.2.0 → v2.3.0
|
|
|
|
|
* Huge (~30%) improvement to freeze time courtesy of Zach Tellman (ztellman).
|
|
|
|
|
|
|
|
|
|
|
2013-10-03 14:21:59 +00:00
|
|
|
## v2.1.0 → v2.2.0
|
2013-08-07 10:59:52 +00:00
|
|
|
* Dropped `:read-eval?`, `:print-dup?` options.
|
|
|
|
|
|
|
|
|
|
Thanks to James Reeves (weavejester) for these changes!:
|
|
|
|
|
* Switched to `tools.reader.edn` for safer reader fallback.
|
|
|
|
|
* Added fast binary serialization for Date and UUID types.
|
|
|
|
|
* Added fast binary serialization for record types.
|
|
|
|
|
|
|
|
|
|
|
2013-07-29 08:59:24 +00:00
|
|
|
## v2.0.0 → v2.1.0
|
|
|
|
|
* Exposed low-level fns: `freeze-to-stream!`, `thaw-from-stream!`.
|
|
|
|
|
* Added `extend-freeze` and `extend-thaw` for extending to custom types:
|
2013-08-05 06:36:52 +00:00
|
|
|
|
2013-07-29 08:59:24 +00:00
|
|
|
* Added support for easily extending Nippy de/serialization to custom types:
|
2013-08-05 06:36:52 +00:00
|
|
|
```clojure
|
|
|
|
|
(defrecord MyType [data])
|
|
|
|
|
(nippy/extend-freeze MyType 1 [x steam] (.writeUTF stream (:data x)))
|
|
|
|
|
(nippy/extend-thaw 1 [stream] (->MyType (.readUTF stream)))
|
|
|
|
|
(nippy/thaw (nippy/freeze (->MyType "Joe"))) => #taoensso.nippy.MyType{:data "Joe"}
|
|
|
|
|
```
|
|
|
|
|
|
2013-07-29 08:59:24 +00:00
|
|
|
|
2013-07-22 16:44:37 +00:00
|
|
|
## v1.2.1 → v2.0.0
|
2013-07-23 16:21:48 +00:00
|
|
|
* **MIGRATION NOTE**: Please be sure to use `lein clean` to clear old (v1) build artifacts!
|
2013-06-27 12:01:01 +00:00
|
|
|
* Refactored for huge performance improvements (~40% roundtrip time).
|
|
|
|
|
* New header format for better error messages.
|
|
|
|
|
* New `taoensso.nippy.tools` ns for easier integration with 3rd-party tools.
|
|
|
|
|
|
|
|
|
|
* **DEPRECATED**: `freeze-to-bytes` -> `freeze`, `thaw-from-bytes` -> `thaw`.
|
|
|
|
|
See the new fn docstrings for updated opts, etc.
|
|
|
|
|
|
|
|
|
|
* Added pluggable compression support:
|
|
|
|
|
```clojure
|
|
|
|
|
(freeze "Hello") ; defaults to:
|
|
|
|
|
(freeze "Hello" {:compressor taoensso.nippy.compression/snappy-compressor})
|
|
|
|
|
|
|
|
|
|
;; The :compressor value above can be replaced with nil (no compressor) or
|
|
|
|
|
;; an alternative Compressor implementing the appropriate protocol
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* Added pluggable crypto support:
|
|
|
|
|
```clojure
|
|
|
|
|
(freeze "Hello") ; defaults to:
|
|
|
|
|
(freeze "Hello" {:encryptor taoensso.nippy.encryption/aes128-encryptor}
|
|
|
|
|
|
|
|
|
|
;; The :encryptor value above can be replaced with nil (no encryptor) or
|
|
|
|
|
;; an alternative Encryptor implementing the appropriate protocol
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
See the [README](https://github.com/ptaoussanis/nippy#encryption-currently-in-alpha) for an example using encryption.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## For older versions please see the [commit history][]
|
|
|
|
|
|
|
|
|
|
[commit history]: https://github.com/ptaoussanis/nippy/commits/master
|
|
|
|
|
[API docs]: http://ptaoussanis.github.io/nippy
|
|
|
|
|
[Taoensso libs]: https://www.taoensso.com/clojure-libraries
|
|
|
|
|
[Nippy GitHub]: https://github.com/ptaoussanis/nippy
|
|
|
|
|
[Nippy CHANGELOG]: https://github.com/ptaoussanis/carmine/blob/master/CHANGELOG.md
|
2013-07-22 16:44:37 +00:00
|
|
|
[Nippy API docs]: http://ptaoussanis.github.io/nippy
|