Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. Oniguruma

Oniguruma

NOASSERTIONCv6.9.10

A modern, flexible regular expression library supporting multiple character encodings and syntaxes.

GitHubGitHub
2.5k stars351 forks0 contributors

What is Oniguruma?

Oniguruma is a modern, flexible regular expression library written in C. It provides a comprehensive set of regex features drawn from various programming language implementations, supporting numerous character encodings per regex object. It solves the problem of needing a robust, encoding-aware regex engine for applications that process text in multiple languages and formats.

Target Audience

Developers and system programmers building applications that require advanced text processing with support for multiple character encodings, particularly those working on internationalization, text editors, or language tooling.

Value Proposition

Developers choose Oniguruma for its extensive character encoding support, modern regex feature set combining the best from different languages, and multiple API options (native, POSIX, GNU) for compatibility. Its performance and flexibility make it a reliable choice for complex text matching tasks.

Overview

regular expression library

Use Cases

Best For

  • Implementing regex support in programming languages or interpreters
  • Building text editors or IDEs with multi-encoding regex search
  • Developing internationalization tools that process text in various encodings
  • Creating data validation systems with complex pattern matching requirements
  • Adding advanced text search capabilities to C/C++ applications
  • Replacing limited regex implementations with a more feature-rich library

Not Ideal For

  • Projects requiring active maintenance and future security updates
  • Developers seeking a simple, high-level regex API without C compilation
  • Web applications needing client-side regex matching in browsers
  • Teams prioritizing quick integration over extensive encoding support

Pros & Cons

Pros

Extensive Encoding Support

Supports per-regex encoding for over 30 character sets including UTF-8, UTF-16, and various EUC variants, as listed in the README, making it ideal for international text processing.

Modern Regex Syntax

Incorporates features from multiple languages, with Unicode properties and advanced operators like (*SKIP) added in recent updates, enhancing flexibility for complex patterns.

Multiple API Compatibility

Offers native, POSIX, and GNU regex APIs, providing versatility for different programming environments, as detailed in the usage and source files section.

Cross-Platform Availability

Available on Linux, Unix, Windows via Visual Studio or vcpkg, and Cygwin, with clear installation steps for each platform, including package manager commands.

Cons

Project End-of-Life

The project officially ended on April 24, 2025, as stated in the README, meaning no future updates, bug fixes, or security patches, which is a significant risk for production use.

Complex Manual Compilation

Requires steps like autoreconf, ./configure, and make for manual installation, which can be error-prone compared to simpler libraries with one-step setups.

Binary Compatibility Challenges

Changes in POSIX API handling require specific configure flags (--enable-binary-compatible-posix-api) to maintain compatibility, indicating potential breaking changes and added complexity.

Limited Ecosystem Integration

As a C library, it lacks built-in bindings for higher-level languages, requiring additional wrappers or effort for integration compared to language-native regex solutions.

Frequently Asked Questions

Quick Stats

Stars2,525
Forks351
Contributors0
Open Issues4
Last commit1 year ago
CreatedSince 2015

Tags

#c-library#gnu-regex#multi-encoding#unicode#regular-expression#regexp#c#pattern-matching#text-processing#character-encoding#posix-api#regex-library

Built With

C
C++

Included in

C/C++70.6kRegex360
Auto-fetched 5 hours ago

Related Projects

Python: rePython: re

The Python programming language

Stars73,874
Forks34,975
Last commit16 hours ago
Java: java.util.regexJava: java.util.regex

JDK main-line development https://openjdk.org/projects/jdk

Stars23,143
Forks6,384
Last commit6 hours ago
JavaScriptCore: RegExpJavaScriptCore: RegExp

Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.

Stars10,021
Forks2,070
Last commit6 hours ago
HyperscanHyperscan

High-performance regular expression matching library

Stars5,444
Forks808
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub