{"repo":"Marwes/combine","free":true,"listed":false,"github":"https://github.com/Marwes/combine","clone":"git clone https://github.com/Marwes/combine.git","description":"A parser combinator library for Rust","language":"Rust","stars":1367,"topics":["rust","parser-combinators","parser","zero-copy"],"license":"MIT","category":"dev-tools","readme_excerpt":"combine An implementation of parser combinators for Rust, inspired by the Haskell library Parsec. As in Parsec the parsers are LL(1) by default but they can opt-in to arbitrary lookahead using the attempt combinator. Example Larger examples can be found in the [examples][], [tests][] and [benches][] folders. [examples]:https://github.com/Marwes/combine/tree/master/examples [tests]:https://github.com/Marwes/combine/tree/master/tests [benches]:https://github.com/Marwes/combine/tree/master/benches Tutorial A tutorial as well as explanations on what goes on inside combine can be found in the wiki. Translation Japanese Links Documentation and examples crates.io Features Parse arbitrary streams - Combine can parse anything from &[u8] and &str to iterators and Read instances. If none of the builtin streams fit your use case you can even implement a couple traits your self to create your own custom stream! zero-copy parsing - When parsing in memory data, combine can parse without copying. See the range module for parsers specialized for zero-copy parsing. partial parsing - Combine parsers can be stopped at any point during parsing and later be resumed without losing any progress. This makes it possible to start parsing partial data coming from an io device such as a socket without worrying about if enough data is present to complete the parse. If more data is needed the parser will stop and may be resumed at the same point once more data is available. See the async example for an exa","default_branch":null,"files":null,"tree":[],"storefront":"/r/Marwes","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Marwes/combine/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}