homepage: https://github.com/Yuras/scanner
changelog-type: ''
hash: 3772a3db80c10b26627ac4e7e5b37eae87b8427264fe04123695a47ca6740276
test-bench-deps:
  bytestring: -any
  base: -any
  hspec: -any
  text: -any
  criterion: -any
  attoparsec: -any
  scanner: -any
maintainer: shumovichy@gmail.com
synopsis: Fast non-backtracking incremental combinator parsing for bytestrings
changelog: ''
basic-deps:
  bytestring: -any
  base: <5
all-versions:
- '0.1'
author: Yuras Shumovich
latest: '0.1'
description-type: markdown
description: ! '# scanner

  Fast non-backtracking incremental combinator parsing for bytestrings


  [![Build Status](https://travis-ci.org/Yuras/scanner.svg?branch=master)](https://travis-ci.org/Yuras/scanner)


  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:

  https://github.com/Yuras/scanner/tree/master/examples/Redis


  Benchmark results:


  ![Bechmark results](https://raw.githubusercontent.com/Yuras/scanner/master/bench/bench.png)

'
license-name: BSD3

Update from Hackage at 2016-04-02T14:20:15+0000
Update from Hackage at 2016-04-02T14:20:15+0000
