scanner: Fast non-backtracking incremental combinator parsing for bytestrings

[ bsd3, library, parsing ] [ Propose Tags ]

Parser combinator library designed to be fast. It doesn't support backtracking.

[Skip to Readme]
Versions [RSS] [faq] 0.1, 0.2, 0.3, 0.3.1
Dependencies base (<4.13), bytestring [details]
License BSD-3-Clause
Copyright (c) Yuras Shumovich 2016
Author Yuras Shumovich
Revised Revision 1 made by HerbertValerioRiedel at 2019-09-16T12:38:10Z
Category Parsing
Home page
Source repo head: git clone
Uploaded by YurasShumovich at 2016-04-02T13:56:51Z
Distributions Debian:0.2, LTSHaskell:0.3.1, NixOS:0.3.1, Stackage:0.3.1
Downloads 6987 total (179 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2016-11-27 [all 1 reports]




Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Readme for scanner-0.1

[back to package description]


Fast non-backtracking incremental combinator parsing for bytestrings

Build Status

It is often convinient to use backtracking to parse some sofisticated input. Unfortunately it kills performance, so usually you should avoid backtracking.

Often (actually always, but it could be too hard sometimes) you can implement your parser without any backtracking. It that case all the bookkeeping usuall parser combinators do becomes unnecessary. The scanner libarary is designed for such cases. It is often 2 times faster then attoparsec.

As an example, please checkout redis protocol parser included into the repo, both using attoparsec and scanner libraries:

Benchmark results:

Bechmark results