fss

fast-string-search

Fast search substrings in a string by using N-API and boyer-moore-magiclen.

Showing:

Popularity

Downloads/wk

13

GitHub Stars

15

Maintenance

Last Commit

6mos ago

Contributors

0

Package

Dependencies

1

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

Fast String Search

CI

This module can search substrings in a string by using N-API and boyer-moore-magiclen. The result of benchmark shows that this module is 10 times faster than the indexOf function of a Node.js string.

Initialization

Import this module by using require function.

const fss = require("fast-string-search");

Usage

indexOf

Full text search in a string.

const a = fss.indexOf("coocoocoocoo", "oocoo"); // [1, 4, 7]

You can also set the offset of characters and the number of substrings you want to find.

const a = fss.indexOf(source, pattern, offset, limit);

The default value of offset is 0, and the default value of limit is 1000.

indexOfSkip

Normal text search in a string.

const a = fss.indexOfSkip("coocoocoocoo", "oocoo"); // [1, 7]

lastIndexOf

Full text search from the end of a string.

const a = fss.lastIndexOf("coocoocoocoo", "oocoo"); // [7, 4, 1]

utf16IndexOf/utf16IndexOfSkip/utf16LastIndexOf

const a = fss.utf16IndexOf(Buffer.from("coocoocoocoo", "utf16le"), Buffer.from("oocoo", "utf16le")); // [1, 4, 7]

Tests

To run the test suite, first install the dependencies, then run npm test:

npm install
npm test

Benchmark

To run the benchmark suite, first install the dependencies, then run npm run benchmark:

npm install
npm run benchmark

Here is my result,

Full Text Search
  - 87 milliseconds
  ✓ natively search text(indexOf) (87ms)
  - 7 milliseconds
  ✓ Use FSS to search text

Normal Text Search
  - 35 milliseconds
  ✓ natively search text(indexOf)
  - 46 milliseconds
  ✓ natively search text(RegExp) (46ms)
  - 6 milliseconds
  ✓ Use FSS to search text

License

MIT

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial