REAL — linear-time (ReDoS-safe) regex engine with an re-compatible API
Project description
REAL
Regular Expression Algorithmic Library — a header-only C++20 regex engine,
constexpr from end to end, with an re-compatible Python binding.
- Linear time, always. The engine is a Pike VM (Thompson NFA simulation): no backtracking, ReDoS-safe by construction.
- Constexpr-friendly. Patterns known at compile time are parsed, compiled and matched at compile time.
- Minimal memory. Static (sizes fixed at compile time, zero allocation), dynamic (storage sized exactly once at pattern compilation), or hybrid (compile-time pattern, runtime text, zero heap allocation).
- Zero dependencies. One include.
Unsupported syntax is rejected with real::regex_error rather than silently
diverging. Not yet: lookarounds, backreferences, atomic/possessive groups,
Unicode property classes, Unicode case folding, pos/endpos.
Matching is linear in the input length: a Thompson NFA simulation (Pike VM)
with marked states, so a pattern such as (a+)+b cannot trigger exponential
backtracking. A literal prefilter and several whole-pattern fast paths
(literals, fixed-width sequences, ./negated-class runs, alternations of
straight-line branches) keep the constant factor low without leaving the
linear-time guarantee.
make bench-python compares throughput against Python's re, and
make bench-engines compares against std::regex, PCRE2 and RE2 in one C++
process (each engine's match counts are checked equal). Figures depend on the
platform, pattern and input; reproduce them locally rather than trusting a
number here. A measured baseline, with the exact machine and engine versions, is
archived in BENCHMARKS.md.
Supported syntax
| Syntax | Meaning |
|---|---|
abc |
literal bytes (UTF-8 patterns match their UTF-8 bytes) |
\. \* \\ … |
escaped metacharacter, matched literally |
. |
any codepoint except \n |
[abc] [a-z] [^abc] |
character class (members must be ASCII); [^…] matches any codepoint outside the set |
\d \D \w \W \s \S |
digit / word / space classes (ASCII sets, like Python's re.ASCII) |
\n \t \r \f \v \a \0 \xHH |
control and hex escapes |
x* x+ x? |
quantifiers (greedy; append ? for lazy) |
x{n} x{n,} x{,m} x{n,m} |
counted repetition (greedy or lazy; counts capped at 1000) |
a|b |
alternation, leftmost branch preferred |
(…) (?:…) |
capturing / non-capturing group |
(?P<name>…) (?<name>…) |
named capturing group (Python and .NET styles) |
^ $ |
line/text anchors (Python semantics: $ also matches before a final \n) |
\A \Z |
strict text start / end |
\b \B |
word boundary / non-boundary (ASCII word characters) |
\< \> |
start / end of word (REAL extension, not in Python re) |
(?imsx) prefix |
global flags: i case-insensitive (ASCII), m multiline, s dotall, x verbose (ignore unescaped whitespace and # comments outside classes) — also real::flags on the constructor |
Unicode model: matching is UTF-8 byte-based, but every construct consumes
whole codepoints (multi-byte sequences compile to byte-level alternatives), so
match boundaries never split a character. Class members and the \d \w \s
sets are ASCII by design; [^…], \D \W \S and . do match non-ASCII
codepoints.
Divergence from Python: when a nullable loop body ends with an empty
iteration — e.g. (a*)* on "aa" — Python captures that final empty
iteration (''); REAL, like Perl/PCRE, keeps the last non-empty one ("aa").
Group 0 is identical either way.
C++ API
#include <real/real.hpp>
real::regex rx("hello"); // runtime pattern, storage sized exactly once
rx.match("hello world"); // anchored at the start (Python re.match)
rx.fullmatch("hello"); // whole text (Python re.fullmatch)
rx.search("say hello"); // leftmost match anywhere (Python re.search)
match/fullmatch/search return a real::match_result: matched(),
operator bool, start(g), end(g), m[g] (a std::string_view into the
searched text, which must outlive the result), and the same accessors by group
name (m["year"], group_index).
for (auto& m : rx.find_iter(text)) { … } // lazy, Python finditer rules
rx.find_all(text); // eager vector<match_result>
rx.replace(text, "$2:$1"); // $&, $1…, ${name}, $$ — re.sub
rx.replace(text, "#", 2); // count limit
rx.split(text); // Python re.split, with groups
Empty matches follow Python's rules: they are yielded (even right after a
non-empty match) and the scan then advances one whole codepoint.
find_iter/find_all cannot be called on a temporary regex, and
match/search/split cannot take a temporary std::string.
Three memory modes
// Static: pattern compiled at compile time into exactly-sized constexpr
// arrays; an invalid pattern is a *compile error*.
constexpr real::static_regex<"(\\d{4})-(\\d{2})"> date;
static_assert(date.search("on 2026-06-10")[1] == "2026"); // constexpr match
// Hybrid: compile-time pattern, runtime text — matching performs zero heap
// allocations (state lives on the stack).
date.search(runtime_text);
// Dynamic: everything at runtime; the program is sized exactly once at
// compilation, match state is per-run scratch.
real::regex rx2(user_pattern, real::flags::icase);
The pure library is standard C++20 with no platform dependencies. real::real
is the CMake target, available three ways — add_subdirectory, FetchContent,
or an installed config package:
# After `cmake --install <build> --prefix <prefix>`:
find_package(real CONFIG REQUIRED)
target_link_libraries(app PRIVATE real::real)
Python binding
An re-compatible module backed by the C++ engine (CPython Limited API, one
abi3 extension, zero dependencies):
import real
real.search(r"(?P<y>\d{4})-(?P<m>\d{2})", "on 2026-06-10").groupdict()
real.compile(r"\w+").findall(text) # findall/finditer/split/sub/subn
real.sub(r"\s+", " ", text) # templates: \1, \g<name>, callables
real.compile(rb"[^;]+").findall(raw) # bytes patterns: raw-byte semantics
str matching is UTF-8 with character indices in start/end/span; bytes
patterns get re's exact raw-byte semantics. Unsupported re features raise
real.error at compile time. Build with make python && make python-test.
pip install real-regex installs one cp310-abi3 wheel per platform
(CPython 3.10+; the self-contained sdist compiles where no wheel matches).
Embedding the C++ library through the Python package
The wheel also ships the C++ headers, so a project can compile against REAL
located through its Python install — the convention used by petsc4py and
slepc4py:
c++ -std=c++20 $(python -c "import real; print(real.get_include())") app.cpp
real.get_config() returns the version, the include directory and the
required C++ standard.
Releasing. Run make release. It computes the next calendar version
YYYY.M.PATCH — the patch resets each month, the first release of a month is
.0 (PEP 440 drops leading zeros, so 2026.6.1, never 2026.06.001) — bumps
it in pyproject.toml and python/real/__init__.py, then commits, tags and
pushes. The tag drives release.yml, which checks the tag matches the version,
builds abi3 wheels (cibuildwheel, Linux/macOS/Windows) and the sdist, and
publishes to PyPI via Trusted Publishing (OIDC, no stored secret). The pushed
tag is the single thing that triggers a publish.
Development
make help # list all targets
make test # build and run the test suite
make coverage # line coverage report (LLVM)
make sanitize # tests under ASan + UBSan
make lint # clang-tidy
make misra # MISRA C++:2023-oriented analysis
make fuzz # libFuzzer robustness fuzzing (clang)
make doc # API reference (Doxygen)
make format # Uncrustify, in place
make format-check # Uncrustify, dry-run; exits non-zero on diff
The API reference is published at https://reche23.github.io/real-regex/.
Select the compiler with make test CXX=g++-14. Every behaviour is tested at
runtime and in constexpr (static_assert) under Clang and GCC; an equivalence
suite checks the prefilter and fast paths never change results; a parity suite
and a randomized differential fuzzer compare Python outputs against re.
Coverage bar. REAL holds a high line-coverage bar (mid-90s on include/),
checked with make coverage. It deliberately does not adopt the
100%-on-all-four-dimensions (lines, functions, regions, and branches) gate used
by the SciLang-stack libraries built on top of it: as the oldest and most complex
engine here, its dual runtime/constexpr execution and Pike-VM branch structure
leave some regions and branches impractical to drive to 100% without contrived
tests. That lower-but-still-high bar is a deliberate, documented exception, not an
oversight — REAL keeps its own gate (above) and its broad public CI.
CI exercises:
| Platform | Architecture | Compiler |
|---|---|---|
| Linux | x86-64 | GCC, Clang |
| Linux | AArch64 | GCC |
| macOS | Apple Silicon (arm64) | Apple Clang |
| Windows | x86-64 | MSVC |
IntelLLVM (icpx), x86-64 macOS and the BSDs share the Clang flag set and are
supported by the build configuration but not exercised in CI.
License
MIT — Copyright (c) 2026 René Chenard
Author
René Chenard
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file real_regex-2026.6.8.tar.gz.
File metadata
- Download URL: real_regex-2026.6.8.tar.gz
- Upload date:
- Size: 77.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26de5cff0fb3644b252971430b996514596de48e739ae2a74be84495a1c60918
|
|
| MD5 |
9152fb898c297472d7293d724f3d71c5
|
|
| BLAKE2b-256 |
959c6df91550316ad082c647d7ae79754f6835b513dfac791505d9be607c9682
|
Provenance
The following attestation bundles were made for real_regex-2026.6.8.tar.gz:
Publisher:
release.yml on RECHE23/real-regex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
real_regex-2026.6.8.tar.gz -
Subject digest:
26de5cff0fb3644b252971430b996514596de48e739ae2a74be84495a1c60918 - Sigstore transparency entry: 1886689003
- Sigstore integration time:
-
Permalink:
RECHE23/real-regex@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Branch / Tag:
refs/tags/v2026.6.8 - Owner: https://github.com/RECHE23
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Trigger Event:
push
-
Statement type:
File details
Details for the file real_regex-2026.6.8-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: real_regex-2026.6.8-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 293.3 kB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3659b65dd93c522a50f6262d9bcab8f120b99020fdc95000eefa4c71fa4b85e
|
|
| MD5 |
f07d75e8061d7d0a3d772025a659bbde
|
|
| BLAKE2b-256 |
7915fb644f8bf6de188a541c3fba84faea23fb9414face9e69deab096978b3df
|
Provenance
The following attestation bundles were made for real_regex-2026.6.8-cp310-abi3-win_amd64.whl:
Publisher:
release.yml on RECHE23/real-regex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
real_regex-2026.6.8-cp310-abi3-win_amd64.whl -
Subject digest:
e3659b65dd93c522a50f6262d9bcab8f120b99020fdc95000eefa4c71fa4b85e - Sigstore transparency entry: 1886689129
- Sigstore integration time:
-
Permalink:
RECHE23/real-regex@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Branch / Tag:
refs/tags/v2026.6.8 - Owner: https://github.com/RECHE23
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Trigger Event:
push
-
Statement type:
File details
Details for the file real_regex-2026.6.8-cp310-abi3-win32.whl.
File metadata
- Download URL: real_regex-2026.6.8-cp310-abi3-win32.whl
- Upload date:
- Size: 290.1 kB
- Tags: CPython 3.10+, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e9fb236df5ccbc2f8488dafebe7ec22dc085d75256bfc50be66de5eed66cfeb
|
|
| MD5 |
8672035121882992bfb1e227a952e6e4
|
|
| BLAKE2b-256 |
3c7e7e1e118339b2519d762f40709183e9d701b4936513505c3eaefe7415ddeb
|
Provenance
The following attestation bundles were made for real_regex-2026.6.8-cp310-abi3-win32.whl:
Publisher:
release.yml on RECHE23/real-regex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
real_regex-2026.6.8-cp310-abi3-win32.whl -
Subject digest:
7e9fb236df5ccbc2f8488dafebe7ec22dc085d75256bfc50be66de5eed66cfeb - Sigstore transparency entry: 1886689165
- Sigstore integration time:
-
Permalink:
RECHE23/real-regex@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Branch / Tag:
refs/tags/v2026.6.8 - Owner: https://github.com/RECHE23
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Trigger Event:
push
-
Statement type:
File details
Details for the file real_regex-2026.6.8-cp310-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: real_regex-2026.6.8-cp310-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dbf8cc176c398c41396e513ec5667c81b3bf688768d7eb37c6078149477935b
|
|
| MD5 |
78c3f9f40fa6f85afe1b197d33e65c42
|
|
| BLAKE2b-256 |
2c60c85325b5509652497ecbcad3a6714fd03d46491c6f09d0a798063d5b6801
|
Provenance
The following attestation bundles were made for real_regex-2026.6.8-cp310-abi3-musllinux_1_2_x86_64.whl:
Publisher:
release.yml on RECHE23/real-regex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
real_regex-2026.6.8-cp310-abi3-musllinux_1_2_x86_64.whl -
Subject digest:
6dbf8cc176c398c41396e513ec5667c81b3bf688768d7eb37c6078149477935b - Sigstore transparency entry: 1886689243
- Sigstore integration time:
-
Permalink:
RECHE23/real-regex@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Branch / Tag:
refs/tags/v2026.6.8 - Owner: https://github.com/RECHE23
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Trigger Event:
push
-
Statement type:
File details
Details for the file real_regex-2026.6.8-cp310-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: real_regex-2026.6.8-cp310-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f37d6a975d9d725d5d7beb57f843f1927ade7a54a3e291c2e3cc829ae1e03331
|
|
| MD5 |
255bfeab248eef3e9724f835ff62bd42
|
|
| BLAKE2b-256 |
1be54158b356ec0dd5616ee877105c779a2a071233a94c35450f17d9da686087
|
Provenance
The following attestation bundles were made for real_regex-2026.6.8-cp310-abi3-musllinux_1_2_aarch64.whl:
Publisher:
release.yml on RECHE23/real-regex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
real_regex-2026.6.8-cp310-abi3-musllinux_1_2_aarch64.whl -
Subject digest:
f37d6a975d9d725d5d7beb57f843f1927ade7a54a3e291c2e3cc829ae1e03331 - Sigstore transparency entry: 1886689186
- Sigstore integration time:
-
Permalink:
RECHE23/real-regex@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Branch / Tag:
refs/tags/v2026.6.8 - Owner: https://github.com/RECHE23
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Trigger Event:
push
-
Statement type:
File details
Details for the file real_regex-2026.6.8-cp310-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: real_regex-2026.6.8-cp310-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 548.7 kB
- Tags: CPython 3.10+, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a919529ea4453701f5f7d6a64eb0787d31c82c6b01b18772b7cae255ae00e8a9
|
|
| MD5 |
1b8d5e8a252a17c6c4dfd066c56f673c
|
|
| BLAKE2b-256 |
29804f5b8964990269931b1376ce53809a12ef201830a8682a1e75900d0cc29f
|
Provenance
The following attestation bundles were made for real_regex-2026.6.8-cp310-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on RECHE23/real-regex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
real_regex-2026.6.8-cp310-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
a919529ea4453701f5f7d6a64eb0787d31c82c6b01b18772b7cae255ae00e8a9 - Sigstore transparency entry: 1886689078
- Sigstore integration time:
-
Permalink:
RECHE23/real-regex@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Branch / Tag:
refs/tags/v2026.6.8 - Owner: https://github.com/RECHE23
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Trigger Event:
push
-
Statement type:
File details
Details for the file real_regex-2026.6.8-cp310-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: real_regex-2026.6.8-cp310-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 539.8 kB
- Tags: CPython 3.10+, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ae2827d5e02a97e7573284b8db5bd164e8f5ebeb92842718d60e3c83c3909ee
|
|
| MD5 |
a7cadb35bdd8de21de8b19fbd75c4eea
|
|
| BLAKE2b-256 |
ec68d01300f3b54b527c2fdf481bd8e92c5e3ba9a143c6f14da1bcaffcf7c4fa
|
Provenance
The following attestation bundles were made for real_regex-2026.6.8-cp310-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release.yml on RECHE23/real-regex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
real_regex-2026.6.8-cp310-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
1ae2827d5e02a97e7573284b8db5bd164e8f5ebeb92842718d60e3c83c3909ee - Sigstore transparency entry: 1886689223
- Sigstore integration time:
-
Permalink:
RECHE23/real-regex@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Branch / Tag:
refs/tags/v2026.6.8 - Owner: https://github.com/RECHE23
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Trigger Event:
push
-
Statement type:
File details
Details for the file real_regex-2026.6.8-cp310-abi3-macosx_11_0_x86_64.whl.
File metadata
- Download URL: real_regex-2026.6.8-cp310-abi3-macosx_11_0_x86_64.whl
- Upload date:
- Size: 106.1 kB
- Tags: CPython 3.10+, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
939b478f98ad07a2bc7314b1a096dbe9877340d2e81998e4f2fd0df940f8a92d
|
|
| MD5 |
9d43add0febe348be8ce601ed8512694
|
|
| BLAKE2b-256 |
55334d818b7fa61cf9f373bc5bb8e9d83abe2556052d6416ddef45c72848ff1a
|
Provenance
The following attestation bundles were made for real_regex-2026.6.8-cp310-abi3-macosx_11_0_x86_64.whl:
Publisher:
release.yml on RECHE23/real-regex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
real_regex-2026.6.8-cp310-abi3-macosx_11_0_x86_64.whl -
Subject digest:
939b478f98ad07a2bc7314b1a096dbe9877340d2e81998e4f2fd0df940f8a92d - Sigstore transparency entry: 1886689043
- Sigstore integration time:
-
Permalink:
RECHE23/real-regex@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Branch / Tag:
refs/tags/v2026.6.8 - Owner: https://github.com/RECHE23
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Trigger Event:
push
-
Statement type:
File details
Details for the file real_regex-2026.6.8-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: real_regex-2026.6.8-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 102.2 kB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
480e7bb4c88ce9acaa4f86cc0c44e032f5a2d0d4df55da9303c2dccd8b4d19d9
|
|
| MD5 |
d1d1c08d99902749adf45f01619f1918
|
|
| BLAKE2b-256 |
33b0e1106e6c2acd2e854abc21c0642311c9381d144c2c24037eaceeccc12ffc
|
Provenance
The following attestation bundles were made for real_regex-2026.6.8-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
release.yml on RECHE23/real-regex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
real_regex-2026.6.8-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
480e7bb4c88ce9acaa4f86cc0c44e032f5a2d0d4df55da9303c2dccd8b4d19d9 - Sigstore transparency entry: 1886689202
- Sigstore integration time:
-
Permalink:
RECHE23/real-regex@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Branch / Tag:
refs/tags/v2026.6.8 - Owner: https://github.com/RECHE23
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d153cfe435d31c2219b3e78725c29c95b28f947 -
Trigger Event:
push
-
Statement type: