/rejit

A work-in-progress JIT-powered regex engine

Primary LanguageCMozilla Public License 2.0MPL-2.0

ReJit

image

ReJit is an open-source, JIT-powered regex engine that currently supports most regular expression features (and even some that RE2 doesn't support, like backreferences). The only supported architectures at the moment are X86 and X64.

Note that ReJit is NOT complete! See the issue tracker for a list of open issues.

Also, ReJit does not work on Windows at the moment (or at least X64; X86 might work). Ideally, it would be a simple fix to use the shadow stack instead of the red zone and changing the call registers...but I'm not sure.

Requirements

  • Fbuild (use the Git version, not the release).
  • Python 3.
  • Lua.
  • Libcut if you want to build the tests.
  • Headerdoc if you want to build the documentation. (Note that Headerdoc is no longer actually maintained, so this is a link to the page on archive.org). The download is available here.

Building

Just run:

$ fbuild

To build the documentation, run:

$ fbuild docs

Usage

Check out the demo example and the API docs.