Releases: RuedigerMoeller/fast-serialization
more android/compatibility fixes
- fixed a JDK-serialization compatibility issue occuring when object is written by default impl and read using stream.getFields machinery.
- fixed a JDK-serialization compatibility issue occuring when stream.putField puts a field name which is not part of instance names on reader side (renaming of fields across JDK implementations).
- kson test failed on 1.7
Note: Emulating JDK-serialization behaviour is expensive. Consider registering custom serializers based on profiling data for optimal performance. fast-serialization speeds up the default case (no readObject/writeObject or Externalizable).
removed accidental jdk 8 API usage
fix of #52 contained a call to a jdk 8 API method. replaced that by a jdk 7 implementation
fixed #52 + minor enhancements
- fix for #52
- minor enhancements for offheapmap, mibin java <=> js serialization
perf degradation fix
- changes done from 1.x to 2.x introduced an unnecessary perf degradation when reading from byte[]. Affects small objects most. fixed.
Some Major Changes
- Changed license to Apache 2.0
- Wavesonics contributed an android port (only plain serialization tested). Merged this to keep a single branch. For android a different object instantiation strategy is used. Adds a dependency to objenesis-2.1
- fixed 2.x structs (for fast-cast 3.0). Had some issues because of low test coverage. Writing unit tests for structs still open.
MInor:
- kson supports thousand separator in numbers '_'
- fixed stackoverflow on some android devices with smallish stack sizes
- fixed a buffer overflow reading externalizables when using fastBinaryConfiguration
fix for #42
fixed #42
- adding objects with writeReplace method overloaded to ArrayList caused exception (jdk1,7), crash (jdk1.8). Side effect of recent optimization work
fix for #39
#39
JDK Serialization emulation:
A class calls putFields() from writeObject(), has no readObject() method (Vector.java). JDK expects hashtable-style putField() output to be binary compatible with vanilla default reading (awful from a performance perspective). Fix only degrades performance for like 5 classes of JDK. Vector has custom serializer anyway by default.
Found another bug by accident (missing rethrow of exception) in some places. fixed as well.
fix #38
Fix+Enhancements
- did some optimization to get 2.x performance closer to 1.x
- added (optional) off heap configuration using unsafe to read/write values
- added simple api (see DefaultCoder) to directly serialize from/to byte arrays without the need for streams
- added possibility to directly serialize from/to offheap memory (long adr) zero copy (see OffHeapCoder, OnHeapCoder).
- added Long2Object Offheap hashmap
- fixed bug in offheap map
bugfix #36 + minor changes
- fix for #36
- minor tweaks on minbin.js, kson
(reconciled also to 1.x branch, released as 1.63)