fiveo-web
TypeScript icon, indicating that this package has built-in type declarations

0.3.3 • Public • Published

fiveo-web

A fuzzy text searching library for the modern web built with TypeScript and Rust.

Travis npm license

Introduction

An example using React can be found here by @stephenwf

fiveo-web can be used to efficiently find approximate string matches across large in-memory dictionaries. The aim is to use emerging web technologies to beat the performance of existing solutions.

Requirements

fiveo-web is built on modern web technologies and requires implementations of two work in progress specifications to run:

Installation

The package can be installed via npm:

> $ npm install --save fiveo-web

Then you can include it on your build, or directly on a web page, and start using it.

Usage

fiveo-web exports a single function that can be called to asynchronously create a Matcher:

const fiveo = require('fiveo-web');
const matcher = await fiveo.createBlockingMatcher([
    "entry 1", "entry 2", "entry 3"
]);

The Matcher can then be used to search for matches:

const query = "entry";
const maxResults = 10;
const results = await matcher.search(query, maxResults);

Building

After cloning the git repository and installing dependencies via npm install, a webpack build can be ran with npm run build. This will output TypeScript declaration files and transpiled code to dist/.

Benchmarks

fiveo-web ships with a single benchmark that indexes a subset of an English dictionary. It can be ran by building the benchmark with webpack:

> $ npx webpack

Then running it from the shell or including the resulting script on a web page:

> $ node dist/english_dictionary_bench_suite
english_word_list (310k entries) x 703 ops/sec ±0.00% (1 run sampled)
english_word_list (310k entries) x 769 ops/sec ±7.82% (2 runs sampled)
english_word_list (310k entries) x 789 ops/sec ±13.53% (3 runs sampled)
english_word_list (310k entries) x 824 ops/sec ±10.13% (4 runs sampled)
english_word_list (310k entries) x 820 ops/sec ±9.22% (5 runs sampled)
english_word_list (310k entries) x 772 ops/sec ±7.92% (6 runs sampled)
english_word_list (310k entries) x 811 ops/sec ±6.39% (7 runs sampled)
english_word_list (310k entries) x 808 ops/sec ±5.65% (8 runs sampled)
english_word_list (310k entries) x 766 ops/sec ±5.04% (9 runs sampled)

Contributing

Contributions via GitHub are welcome. Please follow the standard conventional changelog commit format.

Licensing

fiveo-web is licensed under the ISC license. Please see the LICENSE file for more information.

Package Sidebar

Install

npm i fiveo-web

Weekly Downloads

7

Version

0.3.3

License

ISC

Unpacked Size

12.7 MB

Total Files

40

Last publish

Collaborators

  • garyttierney