- Notifications
You must be signed in to change notification settings - Fork6
Swfit library for fuzzy search. No dependencies lib.
License
ukushu/Ifrit
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
https://github.com/ukushu/Ifrit.gitgit@github.com:ukushu/Ifrit.git
Ifrit is fuzzy search library written in pure swift.
A fuzzy search algorithm is designed to find approximate matches for a given search query.
Let's say you have a list of products, and a user is looking for a "Czy Swetr,". Exact match will return nothing, but the fuzzy search will find "Cozy Sweater.".
If you need exact match - you need to use standard function.filter { }
instead of this library.
Demo of Fuzzy Search:
Advanteges:+ Super lightweight+ No dependencies+ OS supported: MacOS(>=v10_15), iOS(>=v13), visionOS, watchOS, twOS, Linux+ Async ( async/await + callbacks both )+ Text highlight support (AttributedString)+ Code covered with automated tests+ MIT Licensed+ Can be linked as both Static and Dynamic package — choose what works best for youDisadvantages:- Not tested in production- Requires Swift 5.9 or higher (older versions not supported)
This repository is built upon the archived Fuse-Swift project by KRisk:https://github.com/krisk/fuse-swift
Swift Package Index information:https://swiftpackageindex.com/ukushu/Ifrit
+ Fuze-Swift support Pods and Packages :)- Ifrit supports only Packages :(- Fuze-Swift is dead :(+ 🔥🔥🔥 Ifrit is Fuse-Swift, reborn from the hells ashes! But more powerful and alive than ever! 🔥🔥🔥 :)- Fuse-Swift supports asynchronous functions with callbacks but lacks native async/await support. :(+ Ifrit supports callbacks and async/await both :)- Fuze-Swift have async/multithreading issues. Crashes is possible :(+ Ifrit is stable and crash-free!- Fuse-Swift's async functions return incorrect results - wrong indexes. :((((+ Ifrit's async functions return correct indexes and are fully covered with tests :)- Fuze-Swift was written for Xcode 11 and now generates numerous warnings :(+ Ifrit's code is updated to the latest Swift standards and fully supports Swift 6 :)- But Ifrit have a few build warnings :(+ Ifrit - extended coverage with automated tests :)+ Ifrit features an additional search system using the Levenshtein distance algorithm. :)+ Ifrit allows searching by multiple search templates+ Ifrit's syntax has been slightly adjusted for improved flexibility+ Ifrit's sync search is 2% faster than Fuse's (using M1 processor and standard settings).+ Async search performance remains the same as Fuse's (standard settings).
XCode -> Menu Line -> Add Package Dependencies ->
https://github.com/ukushu/Ifrit.git
import Ifrit
to your source files.
Ifrit repository have no example project. Use instructions below:
How to display search results in UI
Ifrit welcomes contributions in the form of GitHub issues and pull-requests.
About
Swfit library for fuzzy search. No dependencies lib.