@hackage cereal-streams0.0.1.0

Use cereal to encode/decode io-streams.

cereal-streams

Hackage Build Status

Use cereal to encode/decode io-streams, io-streams provided strict bytestring chunk streams, which makes cereal the perfect chocie to do encoding/decoding works. It's an alternative to encode/decode with binary/lazy bytestring.

This package is rewritten from cereal-io-streams, here's benchmark result against cereal-conduit:

benchmarking decode one element from cereal-streams/1000 items
time                 135.8 ns   (134.6 ns .. 137.2 ns)
                     0.999 R²   (0.999 R² .. 0.999 R²)
mean                 136.6 ns   (135.2 ns .. 138.2 ns)
std dev              5.147 ns   (4.239 ns .. 6.413 ns)
variance introduced by outliers: 57% (severely inflated)

benchmarking decode one element cereal-conduit/1000 items
time                 340.1 ns   (337.0 ns .. 343.6 ns)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 339.9 ns   (335.6 ns .. 344.6 ns)
std dev              13.68 ns   (10.59 ns .. 18.03 ns)
variance introduced by outliers: 58% (severely inflated)

benchmarking decode 1000 elements from cereal-streams/1000 items
time                 112.5 μs   (111.6 μs .. 113.4 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 112.8 μs   (111.4 μs .. 114.4 μs)
std dev              4.735 μs   (3.522 μs .. 6.811 μs)
variance introduced by outliers: 43% (moderately inflated)

benchmarking decode 1000 elements cereal-conduit/1000 items
time                 204.4 μs   (201.9 μs .. 206.9 μs)
                     0.995 R²   (0.990 R² .. 0.997 R²)
mean                 220.7 μs   (209.5 μs .. 271.0 μs)
std dev              66.92 μs   (9.094 μs .. 152.6 μs)
variance introduced by outliers: 98% (severely inflated)