Files
regex-tools/public/engines

Engine assets

Regex Tools executes ECMAScript through the browser's native RegExp engine. It also ships ten declared, self-hosted runtime packs:

  • pcre2/: official standalone PCRE2 10.47, 8-bit WebAssembly;
  • php/: PHP 8.5.8 preg_* through @php-wasm/web-8-5 3.1.46; this runtime reports PCRE2 10.44;
  • perl/: Perl 5.28.1 through the legacy WebPerl 0.09-beta prebuilt runtime;
  • python/: Pyodide 314.0.3 with CPython 3.14.2 re, a complete linked base-runtime inventory (including vendored loader ports), preferred-form/patch manifest and independently pinned legal closure;
  • ruby/: minimal ruby.wasm 2.9.3-2.9.4 with CRuby 4.0.0 Regexp;
  • java/: TeaVM 0.15.0's java.util.regex class library compiled to an ES2015 module; this module is not OpenJDK;
  • cpp/: Emscripten 6.0.4 libc++ std::wregex, with an exact traced native component/source/legal manifest;
  • go/: Go 1.26.5 standard-library regexp for js/wasm;
  • rust/: Rust regex crate 1.13.1 for wasm32-unknown-unknown; and
  • dotnet/: .NET 10.0.10 System.Text.RegularExpressions for browser WebAssembly.

The selectable Scala/JVM compatibility profile intentionally shares java/. It does not contain or claim a Scala runtime.

The packs come from pinned, documented open-source inputs. Runtime files travel with deterministic metadata, closed-set checksums and the applicable upstream licence/notice material, all of which are verified by the release gate. The Python pack's SOURCE-MANIFEST.json records exact source archives or Git trees, both vendored stack-parser source ports, all Pyodide CPython/Emscripten patches and the evidence for every component already linked into its loader or base WebAssembly module. The C++ source manifest similarly binds its exact module to the traced Emscripten runtime, musl, emmalloc, compiler-rt, libc++ and libc++abi inputs and the explicit non-selection of libunwind. The hundreds of optional entries in pyodide-lock.json are a package catalogue; their wheels are not part of this pack.

The Perl pack remains an explicit exception in age, not in identity: its upstream beta assets are retained byte-for-byte and labelled legacy everywhere. Its loader contains a dormant optional JavaScript-interoperability eval site; the fixed bridge does not import or call it.