Commit de1d9702 authored by Jamie A. Jennings's avatar Jamie A. Jennings


parent f8ae63f9
Pipeline #51266919 (#219) passed with stage
in 1 minute and 14 seconds
......@@ -31,27 +31,27 @@ matched domain ended in ``. (In RPL, to match a literal string, you
place it in double quotes, like string literals in other programs.)
See the [examples](extra/examples/ for more.
## See more [examples](extra/examples/
## Why RPL?
* More *readable* and *maintainable* than regex
* RPL looks like a programming language, with whitespace, comments, identifiers
* More **readable** and **maintainable** than regex
* RPL [looks like a programming language](rpl/num.rpl), with whitespace, comments, identifiers
* Built-in unit test framework (useful as regression tests when modifying patterns)
* Plays well with development tools (like `diff`, ci tools)
* Patterns can be (optionally) put into namespaces, e.g. `net` for network patterns
* Better *development experience* than regex
* Patterns can be (optionally) put into namespaces for easy sharing, e.g. `net` for network patterns
* Better **development experience** than regex
* Rosie ships with a library of dozens of useful patterns (timestamps, network addresses, and more)
* Want to see how a match succeeds or fails? Use the `rosie trace` command.
* Pattern development tools: tracing, REPL, color-coded match output
* The `rosie test` command compiles patterns and runs their unit tests. Use
this command during your project's build to avoid run-time errors.
* Match output can be in various formats including:
* Rosie produces **match output in multiple formats** including:
* Color, for human-readable use at the command line
* Plain text (full text `-o data` or list of sub-matches `-o subs`) for scripting
* JSON for post-processing by other programs
* Native data structures in Python, Haskell, Go, etc.
* RPL is a Parsing Expression Grammar (PEG) language
* RPL is a **Parsing Expression Grammar** (PEG) language
* A superset of regular expressions, i.e. more powerful
* This formalism is a coherent and even elegant alternative to the ad hoc
extensions to regular expressions found in most "regex" libraries.
......@@ -64,7 +64,7 @@ See the [examples](extra/examples/ for more.
* The Rosie compiler/runtime/libraries take up less than 2MB on disk.
<!-- du -ch /usr/local/lib/librosie.a /usr/local/bin/rosie /usr/local/lib/rosie/lib /usr/local/lib/rosie/rpl -->
* See a [discussion of Rosie performance](doc/
- Good performance:
- Reasonably good performance:
* Faster than [Grok](
(by a factor of 4 or more).
* Slower than Unix [grep](
......@@ -97,7 +97,7 @@ Platforms: (most of these were tested with docker)
- [x] OS X (macOS 10.13 and up)
- [x] [Ubuntu 16.04.1 LTS (Xenial Xerus)](
- [x] Windows Subsystem for Linux (see [example installation script](extra/WSL/
- [ ] Windows
- [ ] Windows (Help wanted!)
### Local installation
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment