Skip to content

Extends binary with parsec/attoparsec style parsing combinators

License

Notifications You must be signed in to change notification settings

chordify/binary-parsers

 
 

Repository files navigation

binary-parsers

Hackage Build Status

This package extends binary with parsec/attoparsec style parsing combinators. It's useful when you want to deal with various binary format, and it's very fast. You can now write more complex Binary instances using comprehensive combinators, with serialisation packages like blaze-texual.

Binary's Get monad is designed to perform best on non-backtracking cases, but it still provides fast backtracking support via Alternative instance, it's overall an excellent alternative to attoparsec if you only deal with ByteString.

Building

binary-parsers comes with a test suite modified from attoparsec, and a JSON parsing benchmarks. Here you go:

git clone https://github.com/winterland1989/binary-parsers.git
cd binary-parsers
cabal update
cabal configure --enable-tests --enable-benchmarks
cabal build

Run the test suite and benchmarks.

cabal test
cabal bench

Benchmark

start benchmark http request parser
benchmarking http-req/attoparsec
time                 2.339 μs   (2.321 μs .. 2.358 μs)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 2.332 μs   (2.307 μs .. 2.365 μs)
std dev              93.73 ns   (65.36 ns .. 147.2 ns)
variance introduced by outliers: 54% (severely inflated)

benchmarking http-req/binary-parsers
time                 1.387 μs   (1.373 μs .. 1.400 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 1.393 μs   (1.378 μs .. 1.412 μs)
std dev              56.09 ns   (43.06 ns .. 77.02 ns)
variance introduced by outliers: 55% (severely inflated)

benchmarking http-req/scanner
time                 1.553 μs   (1.407 μs .. 1.817 μs)
                     0.923 R²   (0.873 R² .. 0.999 R²)
mean                 1.457 μs   (1.416 μs .. 1.647 μs)
std dev              232.3 ns   (41.02 ns .. 518.5 ns)
variance introduced by outliers: 95% (severely inflated)

benchmarking http-req/warp
time                 939.2 ns   (929.0 ns .. 950.5 ns)
                     0.999 R²   (0.997 R² .. 0.999 R²)
mean                 955.2 ns   (943.9 ns .. 973.0 ns)
std dev              48.11 ns   (36.60 ns .. 62.44 ns)
variance introduced by outliers: 67% (severely inflated)

start benchmark JSON parser
benchmarking attoparsec/buffer-builder
time                 4.306 ms   (4.222 ms .. 4.382 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 4.334 ms   (4.286 ms .. 4.382 ms)
std dev              143.9 μs   (117.8 μs .. 184.0 μs)
variance introduced by outliers: 15% (moderately inflated)

benchmarking binary-parser/buffer-builder
time                 3.751 ms   (3.678 ms .. 3.830 ms)
                     0.997 R²   (0.995 R² .. 0.999 R²)
mean                 3.802 ms   (3.770 ms .. 3.845 ms)
std dev              120.5 μs   (97.00 μs .. 153.3 μs)
variance introduced by outliers: 14% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/buffer-builder
time                 4.407 ms   (4.324 ms .. 4.473 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 4.386 ms   (4.349 ms .. 4.425 ms)
std dev              123.3 μs   (102.2 μs .. 156.8 μs)
variance introduced by outliers: 11% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/buffer-builder
time                 3.686 ms   (3.631 ms .. 3.734 ms)
                     0.998 R²   (0.998 R² .. 0.999 R²)
mean                 3.705 ms   (3.676 ms .. 3.736 ms)
std dev              99.87 μs   (84.11 μs .. 122.9 μs)
variance introduced by outliers: 12% (moderately inflated)

benchmarking attoparsec/dates-fract
time                 4.391 μs   (4.211 μs .. 4.727 μs)
                     0.939 R²   (0.847 R² .. 0.999 R²)
mean                 4.420 μs   (4.225 μs .. 5.433 μs)
std dev              1.113 μs   (162.8 ns .. 2.656 μs)
variance introduced by outliers: 98% (severely inflated)

benchmarking binary-parser/dates-fract
time                 3.180 μs   (3.161 μs .. 3.198 μs)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 3.180 μs   (3.159 μs .. 3.207 μs)
std dev              81.49 ns   (69.06 ns .. 97.57 ns)
variance introduced by outliers: 31% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/dates-fract
time                 4.283 μs   (4.224 μs .. 4.344 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 4.240 μs   (4.196 μs .. 4.283 μs)
std dev              149.1 ns   (122.7 ns .. 178.2 ns)
variance introduced by outliers: 45% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/dates-fract
time                 3.241 μs   (3.207 μs .. 3.273 μs)
                     0.999 R²   (0.997 R² .. 0.999 R²)
mean                 3.247 μs   (3.218 μs .. 3.301 μs)
std dev              128.4 ns   (94.42 ns .. 199.9 ns)
variance introduced by outliers: 52% (severely inflated)

benchmarking attoparsec/dates
time                 4.000 μs   (3.967 μs .. 4.033 μs)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 4.025 μs   (3.987 μs .. 4.075 μs)
std dev              141.9 ns   (109.4 ns .. 221.2 ns)
variance introduced by outliers: 45% (moderately inflated)

benchmarking binary-parser/dates
time                 3.049 μs   (3.021 μs .. 3.077 μs)
                     0.996 R²   (0.988 R² .. 0.999 R²)
mean                 3.132 μs   (3.049 μs .. 3.379 μs)
std dev              477.9 ns   (103.8 ns .. 910.2 ns)
variance introduced by outliers: 94% (severely inflated)

benchmarking attoparsec/lazy-bytestring/dates
time                 4.096 μs   (4.020 μs .. 4.243 μs)
                     0.930 R²   (0.807 R² .. 0.999 R²)
mean                 4.490 μs   (4.116 μs .. 5.966 μs)
std dev              2.110 μs   (240.5 ns .. 4.653 μs)
variance introduced by outliers: 99% (severely inflated)

benchmarking binary-parser/lazy-bytestring/dates
time                 3.136 μs   (3.110 μs .. 3.157 μs)
                     0.999 R²   (0.999 R² .. 0.999 R²)
mean                 3.132 μs   (3.103 μs .. 3.180 μs)
std dev              126.2 ns   (93.20 ns .. 177.0 ns)
variance introduced by outliers: 53% (severely inflated)

benchmarking attoparsec/example
time                 76.28 μs   (75.38 μs .. 77.20 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 75.69 μs   (74.99 μs .. 76.51 μs)
std dev              2.453 μs   (2.093 μs .. 3.071 μs)
variance introduced by outliers: 32% (moderately inflated)

benchmarking binary-parser/example
time                 59.48 μs   (58.77 μs .. 60.25 μs)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 60.26 μs   (59.42 μs .. 61.33 μs)
std dev              3.214 μs   (2.459 μs .. 4.060 μs)
variance introduced by outliers: 58% (severely inflated)

benchmarking attoparsec/lazy-bytestring/example
time                 78.84 μs   (77.75 μs .. 80.17 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 78.02 μs   (77.28 μs .. 78.89 μs)
std dev              2.683 μs   (2.172 μs .. 3.398 μs)
variance introduced by outliers: 35% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/example
time                 59.20 μs   (58.64 μs .. 59.79 μs)
                     0.999 R²   (0.997 R² .. 0.999 R²)
mean                 59.23 μs   (58.52 μs .. 60.08 μs)
std dev              2.558 μs   (1.963 μs .. 3.353 μs)
variance introduced by outliers: 47% (moderately inflated)

benchmarking attoparsec/geometry
time                 3.366 ms   (3.323 ms .. 3.416 ms)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 3.427 ms   (3.398 ms .. 3.466 ms)
std dev              107.4 μs   (80.60 μs .. 162.5 μs)
variance introduced by outliers: 16% (moderately inflated)

benchmarking binary-parser/geometry
time                 2.604 ms   (2.572 ms .. 2.635 ms)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 2.619 ms   (2.595 ms .. 2.645 ms)
std dev              79.33 μs   (63.44 μs .. 102.1 μs)
variance introduced by outliers: 15% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/geometry
time                 3.492 ms   (3.420 ms .. 3.565 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 3.440 ms   (3.411 ms .. 3.468 ms)
std dev              96.20 μs   (82.36 μs .. 114.1 μs)
variance introduced by outliers: 12% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/geometry
time                 2.670 ms   (2.633 ms .. 2.698 ms)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 2.647 ms   (2.623 ms .. 2.674 ms)
std dev              84.02 μs   (68.69 μs .. 104.0 μs)
variance introduced by outliers: 16% (moderately inflated)

benchmarking attoparsec/integers
time                 304.8 μs   (301.6 μs .. 308.5 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 306.9 μs   (304.2 μs .. 311.4 μs)
std dev              11.48 μs   (8.233 μs .. 19.62 μs)
variance introduced by outliers: 33% (moderately inflated)

benchmarking binary-parser/integers
time                 212.2 μs   (200.8 μs .. 235.2 μs)
                     0.971 R²   (0.940 R² .. 0.999 R²)
mean                 206.9 μs   (203.5 μs .. 218.2 μs)
std dev              18.14 μs   (6.445 μs .. 39.25 μs)
variance introduced by outliers: 75% (severely inflated)

benchmarking attoparsec/lazy-bytestring/integers
time                 311.6 μs   (308.6 μs .. 316.6 μs)
                     0.998 R²   (0.995 R² .. 0.999 R²)
mean                 311.2 μs   (307.7 μs .. 315.7 μs)
std dev              13.30 μs   (9.673 μs .. 17.54 μs)
variance introduced by outliers: 39% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/integers
time                 201.3 μs   (198.6 μs .. 203.8 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 203.0 μs   (201.3 μs .. 204.8 μs)
std dev              5.859 μs   (4.853 μs .. 7.421 μs)
variance introduced by outliers: 24% (moderately inflated)

benchmarking attoparsec/jp10
time                 500.6 μs   (489.3 μs .. 513.9 μs)
                     0.997 R²   (0.996 R² .. 0.998 R²)
mean                 498.7 μs   (493.5 μs .. 504.2 μs)
std dev              18.67 μs   (15.01 μs .. 23.11 μs)
variance introduced by outliers: 31% (moderately inflated)

benchmarking binary-parser/jp10
time                 467.6 μs   (462.5 μs .. 473.7 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 470.5 μs   (466.4 μs .. 475.8 μs)
std dev              15.54 μs   (12.46 μs .. 19.79 μs)
variance introduced by outliers: 26% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/jp10
time                 491.5 μs   (485.0 μs .. 497.6 μs)
                     0.998 R²   (0.998 R² .. 0.999 R²)
mean                 493.7 μs   (488.3 μs .. 500.1 μs)
std dev              19.88 μs   (15.55 μs .. 29.45 μs)
variance introduced by outliers: 34% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/jp10
time                 499.3 μs   (461.5 μs .. 590.2 μs)
                     0.856 R²   (0.723 R² .. 0.999 R²)
mean                 486.9 μs   (467.1 μs .. 565.2 μs)
std dev              120.4 μs   (12.86 μs .. 252.7 μs)
variance introduced by outliers: 96% (severely inflated)

benchmarking attoparsec/jp100
time                 3.023 ms   (2.989 ms .. 3.059 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 3.079 ms   (3.045 ms .. 3.120 ms)
std dev              122.8 μs   (88.92 μs .. 187.5 μs)
variance introduced by outliers: 23% (moderately inflated)

benchmarking binary-parser/jp100
time                 2.795 ms   (2.762 ms .. 2.828 ms)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 2.790 ms   (2.765 ms .. 2.816 ms)
std dev              83.75 μs   (65.15 μs .. 108.6 μs)
variance introduced by outliers: 15% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/jp100
time                 3.145 ms   (3.094 ms .. 3.199 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 3.117 ms   (3.089 ms .. 3.147 ms)
std dev              94.41 μs   (77.22 μs .. 119.1 μs)
variance introduced by outliers: 15% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/jp100
time                 2.761 ms   (2.724 ms .. 2.798 ms)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 2.756 ms   (2.735 ms .. 2.782 ms)
std dev              70.93 μs   (57.46 μs .. 94.99 μs)
variance introduced by outliers: 11% (moderately inflated)

benchmarking attoparsec/jp50
time                 1.634 ms   (1.617 ms .. 1.654 ms)
                     0.997 R²   (0.993 R² .. 0.999 R²)
mean                 1.629 ms   (1.608 ms .. 1.659 ms)
std dev              82.30 μs   (55.08 μs .. 123.1 μs)
variance introduced by outliers: 36% (moderately inflated)

benchmarking binary-parser/jp50
time                 1.552 ms   (1.464 ms .. 1.739 ms)
                     0.879 R²   (0.730 R² .. 0.999 R²)
mean                 1.509 ms   (1.449 ms .. 1.742 ms)
std dev              344.4 μs   (52.96 μs .. 710.0 μs)
variance introduced by outliers: 93% (severely inflated)

benchmarking attoparsec/lazy-bytestring/jp50
time                 1.668 ms   (1.649 ms .. 1.692 ms)
                     0.998 R²   (0.998 R² .. 0.999 R²)
mean                 1.693 ms   (1.678 ms .. 1.713 ms)
std dev              59.58 μs   (49.87 μs .. 72.55 μs)
variance introduced by outliers: 22% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/jp50
time                 1.471 ms   (1.449 ms .. 1.497 ms)
                     0.998 R²   (0.996 R² .. 0.999 R²)
mean                 1.471 ms   (1.455 ms .. 1.494 ms)
std dev              64.25 μs   (47.02 μs .. 95.22 μs)
variance introduced by outliers: 30% (moderately inflated)

benchmarking attoparsec/numbers
time                 563.8 μs   (557.0 μs .. 569.9 μs)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 562.5 μs   (556.8 μs .. 569.2 μs)
std dev              20.30 μs   (15.46 μs .. 31.17 μs)
variance introduced by outliers: 28% (moderately inflated)

benchmarking binary-parser/numbers
time                 376.8 μs   (373.2 μs .. 380.7 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 380.4 μs   (377.2 μs .. 383.7 μs)
std dev              10.72 μs   (8.971 μs .. 14.59 μs)
variance introduced by outliers: 21% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/numbers
time                 559.7 μs   (553.9 μs .. 566.1 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 562.2 μs   (556.1 μs .. 568.5 μs)
std dev              20.69 μs   (16.75 μs .. 26.22 μs)
variance introduced by outliers: 29% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/numbers
time                 385.9 μs   (378.3 μs .. 399.4 μs)
                     0.941 R²   (0.847 R² .. 0.999 R²)
mean                 405.0 μs   (383.5 μs .. 480.0 μs)
std dev              116.0 μs   (14.13 μs .. 230.5 μs)
variance introduced by outliers: 98% (severely inflated)

benchmarking attoparsec/twitter1
time                 24.99 μs   (24.71 μs .. 25.24 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 25.12 μs   (24.87 μs .. 25.45 μs)
std dev              973.2 ns   (772.2 ns .. 1.293 μs)
variance introduced by outliers: 45% (moderately inflated)

benchmarking binary-parser/twitter1
time                 18.89 μs   (18.63 μs .. 19.17 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 18.84 μs   (18.67 μs .. 19.07 μs)
std dev              665.9 ns   (527.6 ns .. 870.2 ns)
variance introduced by outliers: 41% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/twitter1
time                 24.80 μs   (24.40 μs .. 25.23 μs)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 24.98 μs   (24.67 μs .. 25.40 μs)
std dev              1.165 μs   (879.9 ns .. 1.845 μs)
variance introduced by outliers: 54% (severely inflated)

benchmarking binary-parser/lazy-bytestring/twitter1
time                 19.14 μs   (18.95 μs .. 19.33 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 19.13 μs   (18.95 μs .. 19.34 μs)
std dev              654.4 ns   (531.6 ns .. 864.0 ns)
variance introduced by outliers: 40% (moderately inflated)

benchmarking attoparsec/twitter10
time                 177.8 μs   (176.8 μs .. 179.1 μs)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 179.5 μs   (178.1 μs .. 181.6 μs)
std dev              5.936 μs   (4.418 μs .. 8.262 μs)
variance introduced by outliers: 30% (moderately inflated)

benchmarking binary-parser/twitter10
time                 141.9 μs   (138.5 μs .. 144.4 μs)
                     0.923 R²   (0.753 R² .. 0.999 R²)
mean                 168.6 μs   (144.3 μs .. 252.2 μs)
std dev              133.9 μs   (7.126 μs .. 276.1 μs)
variance introduced by outliers: 99% (severely inflated)

benchmarking attoparsec/lazy-bytestring/twitter10
time                 174.4 μs   (172.2 μs .. 176.9 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 176.3 μs   (174.6 μs .. 178.7 μs)
std dev              6.816 μs   (5.259 μs .. 9.747 μs)
variance introduced by outliers: 37% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/twitter10
time                 140.9 μs   (139.7 μs .. 142.1 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 141.9 μs   (140.4 μs .. 143.3 μs)
std dev              4.869 μs   (3.996 μs .. 6.329 μs)
variance introduced by outliers: 32% (moderately inflated)

benchmarking attoparsec/twitter100
time                 2.316 ms   (2.278 ms .. 2.348 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 2.311 ms   (2.288 ms .. 2.340 ms)
std dev              86.80 μs   (68.60 μs .. 125.5 μs)
variance introduced by outliers: 23% (moderately inflated)

benchmarking binary-parser/twitter100
time                 2.066 ms   (2.037 ms .. 2.097 ms)
                     0.998 R²   (0.996 R² .. 0.999 R²)
mean                 2.117 ms   (2.089 ms .. 2.149 ms)
std dev              101.3 μs   (82.59 μs .. 122.3 μs)
variance introduced by outliers: 33% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/twitter100
time                 2.596 ms   (2.301 ms .. 3.072 ms)
                     0.921 R²   (0.882 R² .. 0.998 R²)
mean                 2.415 ms   (2.370 ms .. 2.581 ms)
std dev              255.4 μs   (74.33 μs .. 511.0 μs)
variance introduced by outliers: 69% (severely inflated)

benchmarking binary-parser/lazy-bytestring/twitter100
time                 2.070 ms   (2.037 ms .. 2.103 ms)
                     0.997 R²   (0.995 R² .. 0.998 R²)
mean                 2.084 ms   (2.060 ms .. 2.111 ms)
std dev              85.16 μs   (68.84 μs .. 109.8 μs)
variance introduced by outliers: 27% (moderately inflated)

benchmarking attoparsec/twitter20
time                 377.1 μs   (372.9 μs .. 382.8 μs)
                     0.998 R²   (0.998 R² .. 0.999 R²)
mean                 379.3 μs   (375.7 μs .. 383.0 μs)
std dev              12.74 μs   (10.89 μs .. 16.09 μs)
variance introduced by outliers: 28% (moderately inflated)

benchmarking binary-parser/twitter20
time                 336.0 μs   (332.3 μs .. 339.5 μs)
                     0.998 R²   (0.998 R² .. 0.999 R²)
mean                 329.5 μs   (325.6 μs .. 333.5 μs)
std dev              13.34 μs   (11.36 μs .. 15.62 μs)
variance introduced by outliers: 36% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/twitter20
time                 378.6 μs   (375.4 μs .. 382.0 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 379.0 μs   (375.5 μs .. 383.1 μs)
std dev              11.67 μs   (9.355 μs .. 15.51 μs)
variance introduced by outliers: 24% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/twitter20
time                 320.5 μs   (315.1 μs .. 327.5 μs)
                     0.998 R²   (0.995 R² .. 0.999 R²)
mean                 320.7 μs   (317.6 μs .. 324.9 μs)
std dev              11.79 μs   (8.713 μs .. 16.30 μs)
variance introduced by outliers: 32% (moderately inflated)

benchmarking attoparsec/twitter50
time                 1.251 ms   (1.118 ms .. 1.536 ms)
                     0.850 R²   (0.749 R² .. 0.999 R²)
mean                 1.187 ms   (1.146 ms .. 1.299 ms)
std dev              233.9 μs   (41.99 μs .. 447.0 μs)
variance introduced by outliers: 92% (severely inflated)

benchmarking binary-parser/twitter50
time                 1.025 ms   (1.012 ms .. 1.039 ms)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 1.028 ms   (1.019 ms .. 1.039 ms)
std dev              32.69 μs   (24.30 μs .. 43.61 μs)
variance introduced by outliers: 20% (moderately inflated)

benchmarking attoparsec/lazy-bytestring/twitter50
time                 1.113 ms   (1.100 ms .. 1.127 ms)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 1.127 ms   (1.117 ms .. 1.139 ms)
std dev              35.76 μs   (28.73 μs .. 47.10 μs)
variance introduced by outliers: 21% (moderately inflated)

benchmarking binary-parser/lazy-bytestring/twitter50
time                 1.055 ms   (1.039 ms .. 1.071 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 1.042 ms   (1.032 ms .. 1.055 ms)
std dev              36.88 μs   (28.99 μs .. 54.81 μs)
variance introduced by outliers: 25% (moderately inflated)

About

Extends binary with parsec/attoparsec style parsing combinators

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 100.0%