Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/rregexPublic

Rust Regex binding for Javascript

License

NotificationsYou must be signed in to change notification settings

2fd/rregex

Repository files navigation

A dependency-free WebAssembly build ofRust Regex for Javascript

GitHub Actions Workflow StatusGitHub ReleaseNPM VersionJSR

Why Rust Regex

Rust has a powerful Regex library with a lot of features that don't exists en the standardRegex object

See the official documentation for more detail

Install

# NPM  npm install rregex# Yarn  yarn add rregex# PNPM  pnpm add rregex# Deno  deno add @rregex/rregex# JSR  npx jsr add @rregex/rregex

Supported Runtimes

This package includes builds for multiple runtimes

RuntimeImportversion
Node.js (esm)import { RRegex, RRegexSet } from 'rregex'*
Node.js (commonjs)const { RRegex, RRegexSet } = require('rregex')*
Denoimport { RRegex, RRegexSet } from '@rregex/rregex'>=1.10.8
Bunimport { RRegex, RRegexSet } from '@rregex/rregex'>=1.10.8
Cloudflare Workersimport { RRegex, RRegexSet } from 'rregex/lib/cf.mjs'>=1.10.8
BrowserTODO
StandaloneTODO

Benchmarks

In general termsrregex is at least 1 order of magnitud slower than the nativeRegExp object, but still have a good performance.Unless you required some of the features thatrregex provides, you should always consider using the nativeRegExp object

Benchmarks are executed usingtest/deno.bench.mjs, andtest/node.bench.mjs

Email

benchmarktime (avg)iter/s
RegExp342.91 µs/iter2,916.2
RRegex7.27 ms/iter137.6

summary:RegExp is 21.19x faster thanRRegex

IP

benchmarktime (avg)iter/s
RegExp72.63 µs/iter13,767.7
RRegex7.02 ms/iter142.5

summary:RegExp is 96.59x faster thanRRegex

URI

benchmarktime (avg)iter/s
RegExp688.79 ns/iter1,451,825.0
RRegex22.52 ms/iter44.4

summary:RegExp is 32689.42x faster thanRRegex

benckmarksbenckmarks
Simple IPIP
emailURI

Note: In order to compare with native regex these benchmarks follow themariomka/regex-benchmark structure

Known Issues

If you callsplitn(text, limit) and the expected result length is equal tolimit - 1 the result will include an extra item"", this behavior does not happen iflimit es greater.fixed at >=1.3

constregex=newRRegex(",");expect(regex.splitn("a,b,c",0)).toEqual([]);expect(regex.splitn("a,b,c",1)).toEqual(["a,b,c"]);expect(regex.splitn("a,b,c",2)).toEqual(["a","b,c"]);expect(regex.splitn("a,b,c",3)).toEqual(["a","b","c"]);// This result includes an unexpected extra itemexpect(regex.splitn("a,b,c",4)).toEqual(["a","b","c",""]);expect(regex.splitn("a,b,c",5)).toEqual(["a","b","c"]);expect(regex.splitn("abc",0)).toEqual([]);expect(regex.splitn("abc",1)).toEqual(["abc"]);// This result includes an unexpected extra itemexpect(regex.splitn("abc",2)).toEqual(["abc",""]);expect(regex.splitn("abc",3)).toEqual(["abc"]);

About

Rust Regex binding for Javascript

Topics

Resources

License

Stars

Watchers

Forks

Contributors3

  •  
  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp