Skip to content

Latest commit

 

History

History
56 lines (46 loc) · 3.86 KB

README.md

File metadata and controls

56 lines (46 loc) · 3.86 KB

ripeg

Incremental packrat Parsing Expression Grammar in Rust

Crates.io docs maintained

ripeg Continuous Integration Coverage Status codecov

downloads GitHub contributors commits

License: GPL v3+ Minimum rustc version dependency status

issues closed pr prc Join the chat at https://gitter.im/ripeg/community

This project intends to be a Rust port of https://github.com/zyedidia/gpeg/ which is itself inspired by http://www.inf.puc-rio.br/~roberto/lpeg/. Related research publications about incremental PEG are https://zyedidia.github.io/notes/yedidia_thesis.pdf and https://zyedidia.github.io/preprints/gpeg_sle21.pdf

Contributing

PRs are more than welcome, I’d like a lot this project not to be a one-random-guy work. Please read Contributing

Code of Conduct

Please follow the CoC from rust-lang. I’ll be glad if I can avoid any kind of moderation, I have better to do with my time, thanks !

Current status

A first part of code has been ported, but you definitely can't use that crate yet.

Roadmap && Changelog

  • 20220319 0.1.0 : ripeg crate published so name is reserved.
  • 20220322 0.1.1 : Release with CI, code coverage configured, and use of cargo-nextest.
  • 20220405 0.1.2 :
    • Release with charset module ported.
    • Use of cargo test instead of nextest because it does not support doc tests yet.
    • Comment out criterion bench in github actions as results are useless in CI env.
    • Update tarpaulin to 0.20.0, and fix test coverage.
    • Please note that charset methods prototypes may change.
  • 20220410 0.1.3 :
    • Release with isa module ported.
    • Update benchmarks
    • Please note that isa will probably change until 0.1.6 is released.
  • 202????? 0.1.4 : release with input module ported.
  • 202????? 0.1.5 : release with pattern module ported.
  • 202????? 0.1.6 : release with memo module ported.
  • 202????? 0.1.6 : release with vm module ported.
  • 202????? 0.1.7..n: port other modules.
  • 202????? 0.2.0 : 1st usable version.
  • 202????? 0.x.y : optimize
  • 202????? 1.0.0 : stable release.