New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

rregex

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rregex

A dependency-free WebAssembly build of Rust Regex for Javascript

latest
Source
npmnpm
Version
1.11.0
Version published
Weekly downloads
3.5K
67.42%
Maintainers
1
Weekly downloads
 
Created
Source

rregex

A dependency-free WebAssembly build of Rust Regex for Javascript

GitHub Actions Workflow Status GitHub Release NPM Version JSR

Why Rust Regex

Rust has a powerful Regex library with a lot of features that don't exists en the standard Regex 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 terms rregex is at least 1 order of magnitud slower than the native RegExp object, but still have a good performance. Unless you required some of the features that rregex provides, you should always consider using the native RegExp object

Benchmarks are executed using test/deno.bench.mjs, and test/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 than RRegex

IP

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

summary: RegExp is 96.59x faster than RRegex

URI

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

summary: RegExp is 32689.42x faster than RRegex

benckmarksbenckmarks
Simple IPIP
emailURI

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

Known Issues

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

const regex = new RRegex(",");
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 item
expect(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 item
expect(regex.splitn("abc", 2)).toEqual(["abc", ""]);
expect(regex.splitn("abc", 3)).toEqual(["abc"]);

FAQs

Package last updated on 23 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts