PackageTrack
Sign in Get early access

elasticlunr-rs

A partial port of elasticlunr.js to Rust for generating static document search indexes

3.1.0 7.7M downloads/mo #3583 most downloaded on crates.io mattico/elasticlunr-rs

What this package is like to depend on

Last release 28 days ago

26 Jul 2026

Release timing varies

gaps range from 9 days to 2.0 years

Rarely documented

notes for 4 of 30 stable releases

1 version withdrawn

withdrawn after publishing

9 years old

33 releases · first in 2017

1 release in the last 12 months

see the full history below

Release timeline

33 releases · Nov 2017 to Jul 2026
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 33
  1. 3.1.0 26 Jul 2026
    Release notes

    Added

    • Default implementations for every Language type, delegating to their existing new().
    • TokenizerFn type alias for the boxed tokenizer accepted by IndexBuilder::add_field_with_tokenizer.
    • A cargo-fuzz target for the English pipeline (#58)

    Changed

    • Cleaned up all Clippy warnings.

    Fixed

    • Fixed tokens from earlier fields leaking into later fields' indices, inflating term and document frequencies (#60)
    • Fixed a panic (subtract with overflow) when the English stemmer was given the word "ion" (#57)
    • Fixed a panic (subtract with overflow) when the English stemmer was given a word ending in "eing" (#58)
    • Fixed a panic when the English stemmer's doubled-consonant rule truncated a word in the middle of a multi-byte character, such as "त" in "aतed" (#63)
    • Fixed the terminal "y" to "i" rule disagreeing with elasticlunr.js when the preceding character is itself a "y", so that "leeshyy" now stems to "leeshyi" (#63)

    Compatibility

    • The token leak fix changes the generated index: terms no longer appear in fields they were not in, and term/document frequencies in every field after the first are lower. Search results and ranking will shift, and any test that snapshots a generated index will need regenerating.
    Open source →
  2. 3.0.3 16 Mar 2025 withdrawn
    Release notes

    This release was yanked because the rewritten English stemmer could panic on certain inputs. Use 3.0.2 or a later release instead.

    Changed

    • Rewrote the English stemmer for improved performance (#48)
    • Changed the rust-version in Cargo.toml to match the Minimum Supported Rust Version (1.60.0).
    • Added support for either Criterion 0.4.0 or 0.5.0
    • Updated the Cargo.toml license specification to better match the situation described in the README.
    Open source →
  3. 3.0.2 17 Mar 2023
    Release notes

    Changed

    • Updated Minimum Supported Rust Version to 1.60.0.
    • Updated Criterion to 0.4.0.

    Added

    • Language support for Korean (#50)
    • Language support for Hungarian (#51)
    Open source →
  4. 3.0.1 24 Jul 2022
    Release notes

    Changed

    • Updated dependencies and MSRVs to fix builds. (#47 et. al.)
    Open source →
  5. 3.0.0 02 Jun 2022
    Release notes

    See the changelog for changes.

    Open source →
    Release notes

    Added

    • Language support for Arabic (#40).
    • Add the Language trait to make it easier to implement languages outside the crate.
    • Add IndexBuilder::add_field_with_tokenizer to specify the tokenizer for a field.

    Changed

    • Update to 2018 edition, and bump MSRV to 1.54.0.
    • Change benchmarks to use Criterion.
    • Remove dependency on lazy_static.
    • Update dependencies.
    • Use Unicode character classes for trimmer.
    • IndexBuilder functions which add fields will now panic if the same field is added multiple times.
    • Fix IndexBuilder not respecting field insertion order.

    Removed

    • Remove the default feature. You now need to opt-in to the languages feature.
    • Remove the deprecated function Pipeline::for_language.
    • Remove the pipeline::tokenize* functions, which are now implemented as part of the Language trait.
    • Remove Index::add_doc_with_tokenizer(s), replaced by IndexBuilder::add_field_with_tokenizer.
    • Remove the Language enum. Use the Language trait implementations in the lang modules, and the free functions lang::from_name, lang::from_code, and lang::languages.
    Open source →
  6. 3.0.0-beta.2 23 May 2022 pre-release

    Nothing published for this version

  7. 3.0.0-beta.1 23 May 2022 pre-release

    Nothing published for this version

  8. 2.3.14 16 Nov 2021

    Nothing published for this version

  9. 2.3.13 18 Jun 2021

    Nothing published for this version

  10. 2.3.12 27 May 2021

    Nothing published for this version

  11. 2.3.11 23 Mar 2021

    Nothing published for this version

  12. 2.3.10 23 Feb 2021

    Nothing published for this version

  13. 2.3.9 27 May 2020

    Nothing published for this version

  14. 2.3.8 13 May 2020

    Nothing published for this version

  15. 2.3.7 05 May 2020

    Nothing published for this version

  16. 2.3.6 11 Jul 2019

    Nothing published for this version

  17. 2.3.5 08 Jun 2019

    Nothing published for this version

  18. 2.3.4 08 Nov 2018

    Nothing published for this version

  19. 2.3.3 28 May 2018

    Nothing published for this version

  20. 2.3.2 28 May 2018

    Nothing published for this version

  21. 2.3.1 28 May 2018

    Nothing published for this version

  22. 2.3.0 14 May 2018

    Nothing published for this version

  23. 2.2.0 21 Apr 2018

    Nothing published for this version

  24. 2.1.3 18 Apr 2018

    Nothing published for this version

  25. 2.1.2 23 Mar 2018

    Nothing published for this version

  26. 2.1.1 23 Mar 2018

    Nothing published for this version

  27. 2.1.0 23 Mar 2018

    Nothing published for this version

  28. 2.0.0 19 Mar 2018

    Nothing published for this version

  29. 1.0.0 06 Mar 2018

    Nothing published for this version

  30. 0.2.2 13 Dec 2017

    Nothing published for this version

  31. 0.2.1 21 Nov 2017

    Nothing published for this version

  32. 0.2.0 17 Nov 2017

    Nothing published for this version

  33. 0.1.0 12 Nov 2017

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive