A regular expressions library forked from Oniguruma, focusing on Perl 5.10+ features and used as Ruby's default regex engine.
Onigmo is a regular expressions library forked from Oniguruma, designed to support modern regex syntax like Perl 5.10+ features and serve as a robust engine for programming languages and applications. It is the default regex library for Ruby 2.0 and later, incorporating backported patches from Ruby's development. The library provides multi-encoding support, multiple APIs, and cross-platform builds.
Developers building or embedding regex engines in programming languages or applications, particularly those working with Ruby or needing Perl-compatible regex with broad encoding support. It's also suitable for system programmers requiring a stable, cross-platform regex library with POSIX or GNU API compatibility.
Developers choose Onigmo for its modern regex features (e.g., \K, \R, conditional patterns) not available in the original Oniguruma, along with extensive encoding support and proven stability as Ruby's default engine. Its multiple APIs (Onigmo, POSIX, GNU) and cross-platform build system make it versatile for integration into diverse projects.
Onigmo is a regular expressions library forked from Oniguruma.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Adds Perl 5.10+ regex syntax like \K, \R, and conditional patterns, which are missing in the original Oniguruma, enhancing pattern matching capabilities.
Includes a wide range of character encodings such as UTF-8, UTF-16, ISO-8859 variants, and CJK encodings, making it versatile for international text processing.
Provides Onigmo API, POSIX API, and GNU regex API, allowing flexible integration into different systems and programming environments.
Used as the default regex library for Ruby 2.0 and later, with backported patches from Ruby's development, ensuring proven reliability for Ruby-related projects.
Supports compilation on Unix, Cygwin, and Windows via Visual C++ or MinGW, with detailed build scripts and continuous integration testing.
Some encodings like CP949 and Emacs Mule are noted as 'only used in Ruby' in the source files, reducing their utility for non-Ruby applications.
Requires different build steps for Unix, Windows VC++, and MinGW, including dependencies like Python for tests, which can be error-prone and time-consuming.
Focuses on Perl 5.10+ compatibility, so it may not support the very latest regex features from newer Perl versions, potentially limiting cutting-edge use cases.