Add the floof library to your project with nimble
nimble add floof
Floof uses the SSE2 simd intrinsics, which come standard on all CPU's produced after 2003. Usage is simple as floof does all the heavy lifting
import floof
import std/[sequtils, strutils]
let
dictionary = toSeq(walkDir("/usr/share/applications/")).mapIt(
it.path.splitPath().tail.replace(".desktop", "")
)
searchTerm = paramStr(1)
echo "Searching for: ", searchTerm
let results = search(searchTerm, dictionary) # Use floof's search function
for res in results:
echo res.text, " (score: ", res.score.formatFloat(ffDecimal, 3), ")"
Make sure to compile with the --threads:on
flag