James Reeves
8b13ff68b9
Add a fast serialization for Date objects
2013-08-07 10:19:53 +01:00
Peter Taoussanis
e48ccb4c45
Merge pull request #26 from weavejester/fast-records
...
Fast serialization for records
2013-08-06 23:54:33 -07:00
James Reeves
6ab00df42c
Add fast serialization for records
2013-08-06 17:56:43 +01:00
James Reeves
6caff3503e
Remove read-eval option made unnecessary by EDN reader
2013-08-06 16:59:04 +01:00
James Reeves
6024a9cc31
Replace unsafe Clojure reader with safe EDN reader
2013-08-06 16:45:30 +01:00
Peter Taoussanis
c69bb0ec5f
Perf: only set bindings when necessary
2013-08-02 21:28:51 +07:00
Peter Taoussanis
4071d0f3ec
Switch to simpler extend-freeze, extend-thaw custom type API (ALPHA)
2013-08-02 21:28:51 +07:00
Peter Taoussanis
c2a964932c
Add custom-freezer macro for easier Freezable extension
2013-08-02 15:04:11 +07:00
Peter Taoussanis
99091b0a32
Add support for custom thaw readers
2013-07-29 16:43:29 +07:00
Peter Taoussanis
8e4cc072e3
Move Reader fallback out of Freezable protocol to make protocol extensible
2013-07-29 15:58:51 +07:00
Peter Taoussanis
69611657c7
Expose low-level fns: freeze-to-stream!, thaw-from-stream!
2013-07-29 15:57:36 +07:00
Peter Taoussanis
a8b1686a54
Make head-meta ^:const
2013-07-25 15:41:13 +07:00
Peter Taoussanis
93ef118e80
Housekeeping
2013-07-06 15:55:59 +07:00
Peter Taoussanis
8a33f15801
Temporarily disable grease dep
2013-06-22 18:38:16 +07:00
Max Penet
fb09ebb89b
try grease 0.2.1
2013-06-18 18:32:54 +02:00
Peter Taoussanis
ac3901f626
Reverse use of fast io-streams
...
Seemed to be causing issues in multi-JVM auto-tests. The added perf. benefit was
minor for Nippy's use case (~2-3%) - so this isn't an urgent change. Will
re-examine again later.
2013-06-18 14:08:22 +07:00
Peter Taoussanis
3e6b12ac11
Housekeeping for 67633d5
2013-06-17 13:54:45 +07:00
Max Penet
67633d5fd6
try non sync version of byte-array iostreams
2013-06-16 22:27:22 +02:00
Peter Taoussanis
559c73abef
Fix core dump issue (important), simplify API
...
PROBLEM: :legacy-mode :auto/true thawing was resulting in JVM core
dumps when attempting to use Snappy to decompress encrypted data.
CAUSE: The org.iq80.snappy implementation seems to choke on the
random IV byte data being generated by the AES128 encrypter. This
may or may not be a bug (still awaiting feedback from lib's authors).
SOLUTION: We're only susceptible to this issue when trying to
decompress data that is: a) encrypted, b) being thawed in legacy mode.
In particular, we're _not_ susceptible to this issue when thawing
in non-legacy mode because in that case we have a header explicitly
warning us that the data is encrypted.
An obvious work-around, therefore, is just to disable decryption when
attempting to thaw legacy-mode data. In practice this isn't a problem
because older versions of Nippy didn't support encryption anyway.
2013-06-16 19:33:23 +07:00
Peter Taoussanis
e351fdfc43
Rename default compressor, encryptor
2013-06-16 17:55:20 +07:00
Peter Taoussanis
4ec950417c
Rewrite all stream helpers as macros (performance)
2013-06-16 13:23:32 +07:00
Peter Taoussanis
26ad8dd252
Reorganize low-level stream fns (prepping for perf work)
2013-06-16 13:23:32 +07:00
Peter Taoussanis
c5d039b183
Make coll-thaw, coll-thaw-kvs macros (performance)
2013-06-16 13:23:32 +07:00
Peter Taoussanis
9c207cd6af
Housekeeping
2013-06-16 13:23:32 +07:00
Max Penet
63765c8510
move thaw exception handler outside of thaw (it's recreated everytime the function gets called now)
2013-06-16 11:58:58 +07:00
Max Penet
e4cde95d54
repeatedly-into as a macro
2013-06-16 11:47:56 +07:00
Peter Taoussanis
823f2c3c46
Housekeeping
2013-06-15 20:41:43 +07:00
Peter Taoussanis
c42457a48c
Housekeeping, new keyword implementation (mpenet)
2013-06-14 17:52:25 +07:00
Peter Taoussanis
f706a51a4d
Rework v2 header format
2013-06-14 17:49:53 +07:00
Peter Taoussanis
15dd24ac06
Add :auto legacy mode for _full_, transparent backwards-compatibility
2013-06-13 19:01:57 +07:00
Peter Taoussanis
8d48ec9d75
NB: Simpler, more flexible API (backwards-compatible)
2013-06-13 16:41:54 +07:00
Peter Taoussanis
5a398efd9f
Rename repeatedly* -> repeatedly-into
2013-06-13 16:41:54 +07:00
Peter Taoussanis
bfc16ce3ab
Optimize collection creation (much faster)
2013-06-13 16:41:54 +07:00
Peter Taoussanis
613c77b8a1
Further prep for new API, mark freeze-to-bytes and thaw-from-bytes as deprecated
2013-06-13 11:45:45 +07:00
Peter Taoussanis
9734e882bb
Swap repeatedly -> utils/repeatedly* (faster)
2013-06-13 11:45:45 +07:00
Peter Taoussanis
7705c42142
Housekeeping prep for new API
2013-06-13 11:45:45 +07:00
Peter Taoussanis
ac380eb621
Mark freeze-to-stream! and thaw-from-stream! as private
2013-06-13 11:45:45 +07:00
Peter Taoussanis
da077c6a54
Drop Clojure 1.3 support
2013-06-13 11:45:45 +07:00
Peter Taoussanis
ab3209f2dc
Housekeeping
2013-06-13 01:20:18 +07:00
Peter Taoussanis
9a38a12e11
Add helpful thaw exceptions
2013-06-12 15:39:30 +07:00
Peter Taoussanis
4ac2a34d7a
Crypto: simplify design, add auto salting
...
Have decided to simplify the API even further and bring configuration down to
essentially one decision: do you want auto salting, or key caching?
2013-06-12 15:09:17 +07:00
Peter Taoussanis
3ecbc420cd
Add basic crypto support (alpha)
2013-06-11 21:10:08 +07:00
Max Penet
8305f30499
replace partial with an anonymous fn (performance optimisation)
2013-06-02 17:54:44 +02:00
Peter Taoussanis
b91ab8e031
Fix OOM issue for large lists
2013-04-14 14:47:09 +07:00
Peter Taoussanis
37a2a80a98
Add support for sorted-set and sorted-map types
2013-04-14 14:44:06 +07:00
Peter Taoussanis
3e178dabf3
EXPERIMENTAL: Swap Snappy implementation org.xerial.snappy/snappy-java -> org.iq80.snappy/snappy
...
This (native Java) implementation appears to be about as fast as
the old (JNI) implementation, but has better support across more platforms.
Going to evaluate stability on this branch for possible later merging into master.
2013-01-20 19:39:08 +07:00
Peter Taoussanis
f056abc0e8
Add optional print-dup? arg to freeze-to-stream! (default to true)
2013-01-20 19:24:12 +07:00
Peter Taoussanis
03684b6d28
Housekeeping
2013-01-20 19:14:59 +07:00
Peter Taoussanis
f5b2b14320
Housekeeping
2012-12-05 13:47:54 +07:00
Peter Taoussanis
c2c46167ec
Swap hash-map thaw implementation for perf & to avoid OOM errors
...
Thanks to moonranger for pointing out the OOM issue.
2012-12-04 13:17:50 +07:00