oniguruma
by
kkos

Description: regular expression library

View on GitHub ↗

Summary Information

Updated 1 hour ago
Added to GitGenius on January 1st, 2025
Created on July 13th, 2015
Open Issues & Pull Requests: 4 (+0)
Number of forks: 351
Total Stargazers: 2,526 (+0)
Total Subscribers: 1 (+0)

Issue Activity (beta)

Issue API unavailable.

Repository Insights (GitGenius)

Median issue/PR response: 9.3 hours
Mean response time: 529.2 days
90th percentile: 1769.9 days
Tracked items: 82

Most active contributors

Detailed Description

Oniguruma is a regular expression library written in C that provides modern and flexible pattern matching capabilities. The library is designed to encompass features from different regular expression implementations traditionally found across various programming languages, offering a unified approach to regex functionality.

A defining characteristic of Oniguruma is its support for character encoding specification on a per-regex-object basis. The library supports an extensive range of character encodings including ASCII, UTF-8, UTF-16 variants, UTF-32 variants, multiple East Asian encodings such as EUC-JP, EUC-TW, EUC-KR, EUC-CN, Shift_JIS, Big5, and GB18030, as well as numerous ISO-8859 variants covering Latin, Cyrillic, Arabic, Greek, Hebrew, Thai, and Baltic character sets. This broad encoding support makes it suitable for applications requiring international text processing.

The library provides multiple API interfaces to accommodate different use cases. It includes the native Oniguruma API as the primary interface, alongside GNU regex API compatibility and POSIX API support. The POSIX API implementation underwent significant changes in version 6.9.6, introducing a binary compatibility option through the configure flag --enable-binary-compatible-posix-api to maintain compatibility with applications built against earlier versions.

Recent development has focused on Unicode support and feature expansion. Version 6.9.10 updated Unicode support to version 16.0 and introduced the new SKIP operator. Version 6.9.9 added the ONIG_OPTION_MATCH_WHOLE_STRING API and fixed issues with case-insensitive matching in character classes. Version 6.9.8 updated Unicode to version 14.0.0 and added callback functionality through ONIG_OPTION_CALLBACK_EACH_MATCH. Version 6.9.7 introduced Python syntax support through ONIG_SYNTAX_PYTHON. The project has benefited from security testing through OSS-Fuzz and Coverity analysis, with multiple vulnerabilities identified and fixed across recent versions.

The repository shows active maintenance with median issue and pull request response latency of 9.3 hours across 82 tracked items. The primary maintainer kkos has logged 92 events, with tonco-miyazawa and spershin contributing 17 and 14 events respectively. The most frequently used issue labels are specification, question, and status. The library has attracted attention from major technology companies, with overlapping contributors linking it to microsoft/vscode, rust-lang/rust, and microsoft/typescript repositories.

Oniguruma is distributed under a BSD license and is available through multiple Linux distribution package managers including Fedora, RHEL/CentOS, Debian/Ubuntu, Arch, and openSUSE. It can be compiled from source on Linux, Unix, and Cygwin platforms using standard autotools procedures, and on Windows platforms using Visual Studio. The library is also available through the vcpkg dependency manager maintained by Microsoft team members.

The project ended on April 24, 2025, according to the README. The codebase includes comprehensive sample programs demonstrating callouts, encoding handling, capture history, named groups, POSIX API usage, and user-defined Unicode properties, along with test programs for syntax validation and line terminator handling.

oniguruma
by
kkoskkos/oniguruma

Repository Details

Fetching additional details & charts...