Webサイトには検索機能をつけるのが基本です。その多くの場合、サーバサイドでデータベースを検索し、その結果を返すようになっています。またはコンテンツデータをあらかじめクライアントサイドに持っておいて、JavaScriptで絞り込んだりします。 今回紹介するtinysearchはクライアントサイドで検索を行います。特徴的なのはWebAssemblyを使っているということでしょう。

tinysearchの使い方

検索しているところです。

検索欄に入力することで、候補がインクリメンタルに絞り込まれていきます。

tinysearchはWebAssemblyで実装されているので高速に動作し、かつ全文検索まで行えます。これをJavaScriptで実装すると、遅くなってしまうかも知れません。検索はブルームフィルタで行われています。

tinysearchはRust製のオープンソース・ソフトウェア(MIT License)です。

mre/tinysearch: A tiny, static, full-text search engine for your website using Bloom filters and WebAssembly