Ifrit

main

Swfit library for fuzzy search. No dependencies lib.
ukushu/Ifrit

Ifrit

https://github.com/ukushu/Ifrit.git
git@github.com:ukushu/Ifrit.git

πŸ‡ΊπŸ‡¦πŸ‡ΊπŸ‡¦πŸ‡ΊπŸ‡¦ PLEASE, SUPPORT UKRAINE! πŸ‡ΊπŸ‡¦πŸ‡ΊπŸ‡¦πŸ‡ΊπŸ‡¦

What is Ifrit?

Ifrit is fuzzy search library written in pure swift.

Advanteges:
+ Super lightweight
+ No dependencies
+ OS supported: MacOS(>=v10_15), iOS(>=v13), visionOS, watchOS, twOS, Linux
+ Asynchronous search ( async/await + callbacks both )
+ Text highlight support (AttributedString)
+ Covered with automated tests
+ MIT Licensed
+ Ability to link Ifrit as Static and dynamic package - you are able to choose what is better in your case

Disadvantages:
- Wasn't tested in production
- Swift 5.9 and higher, older version of Swift does not supported.

This repository is based on archived repository Fuse-Swift by KRisk: https://github.com/krisk/fuse-swift

Swift Package Index information: https://swiftpackageindex.com/ukushu/Ifrit

Demo

Ifrit demo

Difference: Ifrit VS Fuze-Swift?

+ Fuze-Swift support Pods and Packages :)
- Ifrit supports only Packages :(

- Fuze-Swift is dead :(
+ Ifrit is a Fuse-Swift reborn from hell and ALIVE as ever :)

- Fuze-Swift supports async functins with callbacks, but does not support async/await
+ Ifrit supports callbacks and async/await both:)

- Fuze-Swift have async/multithreading issues. Crashes is possible :(
+ Ifrit is a Fuze-Swift with fixed multithreading issues - no crashes :)

- Fuze-Swift async functions returns incorrect results (wrong indexes) :((((
+ Ifrit's async functins returns correct indexes and covered with tests :)

- Fuze-Swift written for xcode 11 and have a lot of warnings at now :(
+ Ifrit code is updated to swift's latest standards and there are no build warnings :)

+ Ifrit - extended coverage with automated tests in general :)
+ Ifrit have additional search system using Levenstain distance algorythm :)

Documentation / Instructions

How to use Ifrit's Fuse

How to use Ifrit's Levenstain

Example Project

Ifrit repository have no example project. Use instructions above instead. They are clear enough. But also as example project you can use project from original Fuse-Swift repository

Installation

  1. XCode -> Menu Line -> Add Package Dependencies -> https://github.com/ukushu/Ifrit.git

  2. import Ifrit to your source files.

Description

  • Swift Tools 5.9.0
View More Packages from this Author

Dependencies

  • None
Last updated: Thu Jun 13 2024 20:55:45 GMT-0900 (Hawaii-Aleutian Daylight Time)