Security News
JavaScript Leaders Demand Oracle Release the JavaScript Trademark
In an open letter, JavaScript community leaders urge Oracle to give up the JavaScript trademark, arguing that it has been effectively abandoned through nonuse.
fuzzyset.js
Advanced tools
fuzzyset is a data structure that performs something akin to fulltext search against data to determine likely mispellings and approximate string matching. Note that this is a javascript port of a python library.
The usage is simple. Just add a string to the set, and ask for it later
by using .get
:
a = FuzzySet();
a.add("michael axiak");
a.get("micael asiak");
// will be [[0.8461538461538461, 'michael axiak']];
The result will be an array of [score, matched_value]
arrays.
The score is between 0 and 1, with 1 being a perfect match.
array
: An array of strings to initialize the data structure withuseLevenshtein
: Whether or not to use the levenshtein distance to determine the match scoring. Default: TruegramSizeLower
: The lower bound of gram sizes to use, inclusive (see Theory of operation). Default: 2gramSizeUpper
: The upper bound of gram sizes to use, inclusive (see Theory of operation). Default: 3get(value, [default], [minScore=.33])
: try to match a string to entries with a score of at least minScore (defaulted to .33), otherwise return null
or default
if it is given.add(value)
: add a value to the set returning false
if it is already in the set.length()
: return the number of items in the set.isEmpty()
: returns true if the set is empty.values()
: returns an array of the values in the set.To play with the library or see how it works internally, check out the amazing interactive documentation:
this:
<script type="text/javascript" src="/path/to/fuzzyset.js"></script>
or:
npm install fuzzyset.js
(the .js
is important). In a CommonJS environment, the fuzzyset.js
module exports the FuzzySet
function.
This package is licensed under the Prosperity Public License 3.0.
That means that this package is free to use for non-commercial projects — personal projects, public benefit projects, research, education, etc. (see the license for full details). If your project is commercial (even for internal use at your company), you have 30 days to try this package for free before you have to pay a one-time licensing fee of $49 (~one hour of a junior developer's time).
You can purchase a commercial license instantly here.
Why this license scheme? Since I quit tech to become a therapist, my income is much lower (due to the unjust costs of mental health care in the US, but don't get me started). I'm asking for paid licenses for Fuzzyset.js to support all the free work I've done on this project over the past 8 years (!) and so I can live a sustainable life in service of my therapy clients. If you're a small operation that would like to use Fuzzyset.js but can't swing the license, please reach out to me and we can work something out.
FAQs
A fast fuzzy string set for JavaScript
The npm package fuzzyset.js receives a total of 13,440 weekly downloads. As such, fuzzyset.js popularity was classified as popular.
We found that fuzzyset.js demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
In an open letter, JavaScript community leaders urge Oracle to give up the JavaScript trademark, arguing that it has been effectively abandoned through nonuse.
Security News
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Security News
Floating dependency ranges in npm can introduce instability and security risks into your project by allowing unverified or incompatible versions to be installed automatically, leading to unpredictable behavior and potential conflicts.