Straightforward fuzzy matching, information retrieval and NLP building blocks for JavaScript.

Talisman is a JavaScript library collecting algorithms, functions and various building blocks for fuzzy matching, information retrieval and natural language processing.


You can install Talisman through npm:

npm install talisman

Source code

The library’s source code can be found on its Github repository.


  • Modular: the library is completely modular. This means that if you only need to compute a levenshtein distance, you will only load the relevant code.
  • Straightfoward & simple: just want to compute a jaccard index? No need to instantiate a class and use two methods to pass options and then finally succeed in getting the index. Just apply the jaccard function and get going.
  • Consistent API: the library’s API is fully consistent and one should not struggle to understand how to apply two different distance metrics.
  • Functional: except for cases where classes might be useful (clustering notably), Talisman only uses functions, consumes raw data and order functions’ arguments to make partial application & currying etc. as easy as possible.
  • Performant: the library should be as performant as possible for a high-level programming language library.
  • Cross-platform: the library is cross-platform and can be used both with node.js and in the browser.


An extensive bibliography of the methods & functions implemented by the library can be found here.

How to cite

Talisman has been published as a paper on the Journal Of Open Source Software (JOSS).

Importing modules

Since Talisman is a large library, and to ensure to you will only load code that is relevant to your use case in order not to needlessly bloat your browser bundles, this documentation’s examples encourage you to import modules one at a time thusly:

import levenshtein from 'talisman/metrics/levenshtein';

Note also that even if all of this documentation’s examples use ES imports, the library remains completely consumable using CommonJS as used by Node.js with the require function:

// This is the same as above
const levenshtein = require('talisman/metrics/levenshtein');

List of available modules

Top level

Full list


A full list of the changes made by each version of the library is available here.


Contributions are of course welcome :)

Be sure to lint & pass the unit tests before submitting your pull request.

# Cloning the repo
git clone git@github.com:Yomguithereal/talisman.git
cd talisman

# Installing the deps
npm install

# Running the tests
npm test

# Linting the code
npm run lint