Skip to content

Releases: sahenjp/RustXNG

RustXNG v0.4.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 13:28

RustXNG v0.4.1

チェックサムは各アセットの .sha256 を参照してください。

v0.4.0 — DB エンジン・Valkey キャッシュ・botdetection・高速化

Choose a tag to compare

@sahenjp sahenjp released this 24 Oct 04:34

前回「未移植」としていた項目をすべて埋め、実測でボトルネックを潰したリリースです(後方互換)。

追加

  • DB 直結エンジン 8 種を実装: postgresql / mysql_server / mariadb_server / mongodb / sqlite / valkey_server / recoll / opensemantic
    • elasticsearch / solr / meilisearch と合わせ、上流の DB 系 11 種がすべて動作
    • db-engines フィーチャー(既定で有効)。--no-default-features でバイナリ 27 MB → 17 MB
    • 結果は key/value 表として表示
  • Valkey / Redis キャッシュ: [cache] backend = "valkey" で複数インスタンスが共有
  • botdetection 相当のレート制限: 信頼プロキシの X-Forwarded-For、IPv4/IPv6 CIDR、IP 制限のスライディング窓、リンクトークン、429 応答
  • i18n 57 ロケール(11 → 57。上流は 60)

速度改善

指標 変更前 変更後
全エンジン検索(中央値) 6.26 秒 3.00 秒
ウォーム時(キャッシュ + サスペンド) 5.0 秒 0.28 秒
単一サイト検索 100〜400 ms 1〜50 ms

主因はタイムアウト要求の再試行でした(3 秒 × 2 回)。上流と同じく接続エラーのみ再試行するよう修正し、再試行を含めた全体デッドラインも守るようにしています。

その他

  • 未知のエンジン名は SearXNG と同じく既定エンジン群で検索(従来は 400)
  • テスト 750 + 統合 14、clippy 警告 0

詳細: docs/BENCHMARK.md

v0.3.0 — 全エンジン移植完了(226/226)

Choose a tag to compare

@sahenjp sahenjp released this 24 Oct 02:40

SearXNG の全エンジン移植を完了したリリースです(後方互換)。

エンジン 226 型 / 352 設定エントリをすべて実装(100%)

指標 値
上流エンジン型 226 / 226
上流設定エントリ 352 / 352
実装ファイル 234(1 エンジン 1 ファイル)
既定で有効 約 170 エンジン
テスト ユニット 722 + 統合 14

主な追加

  • 検索: yandex, yahoo, seznam, marginalia, yep, swisscows, quark, sogou 系, naver, baidu 系
  • 動画/音楽: vimeo, rumble, odysee, niconico, youtube_api, bilibili, iqiyi, acfun, yandex_music, spotify
  • 画像: google_images, flickr, pinterest, pixiv, flaticon, iconify, lucide, material_icons, tineye
  • 学術: pubmed, europepmc, openalex, springer, astrophysics_data_system, pdbe, nvd, chatnoir
  • 開発/パッケージ: github_code, gitlab, sourcehut, gitea, pkg_go_dev, hex, metacpan, repology, fdroid
  • ショッピング: ebay, geizhals, steam, shopify_stock
  • ニュース/地域: reuters, tagesschau, yahoo_news, swisscows_news, il_post, ansa
  • torrent: piratebay, nyaa, kickass, solidtorrents, torznab, tokyoshokan, zlibrary ほか
  • 検索バックエンド: elasticsearch, solr, meilisearch(HTTP 完全実装)
  • 翻訳/天気: deepl, libretranslate, lingva, mozhi, open_meteo, wttr, duckduckgo_weather, currency_convert

挙動の改善

  • エンジンの初期化に失敗しても起動を継続(上流と同じ。理由は警告ログに記録)
  • 認証情報・自前インスタンスが必要なエンジンは上流と同じく既定で無効

既知の制限

DB ドライバ直結の 8 種(postgresql / mysql / mariadb / mongodb / sqlite / valkey / recoll / opensemantic)は、依存を増やさない方針のため設定を読んで理由付きエラーを返すスタブです。UI のマークアップと i18n のロケール数も上流と完全一致ではありません。

詳細: docs/COVERAGE.md / docs/COMPATIBILITY.md

v0.2.0

Choose a tag to compare

@sahenjp sahenjp released this 18 Oct 04:04

SearXNG クライアントから見た互換性を高めたリリースです。

互換性(破壊的変更を含む)

  • format=json は上流 get_json_response の 7 フィールドのみを出力(計測値は full=1)
  • answers / unresponsive_engines / template / metadata / priority を上流の形に統一
  • format=csv の列を上流と同じ title,url,content,host,engine,score,type に変更
  • /config を上流のフィールド構成(brand / limiter / locales / timeout)に変更
  • 設定 Cookie のカテゴリ名を category に変更
  • 設定ファイルは上流の settings.yml(YAML)をそのまま読み込み可能

速度

指標 SearXNG RustXNG 倍率
起動 0.722 秒 0.028 秒 約 26 倍
常駐メモリ 118 MiB 13 MiB 約 9 倍小さい
反復クエリ(キャッシュ) 100〜1000 ms 1 ms 級 100〜1000 倍

再現手順は docs/BENCHMARK.md。

互換でない部分

エンジン網羅率(113/355 エントリ)、UI マークアップ、i18n(11 ロケール)、/stats の形、valkey / botdetection。詳細は docs/COMPATIBILITY.md。

v0.1.0

Choose a tag to compare

@sahenjp sahenjp released this 18 Oct 03:21

最初の公開版です。SearXNG の振る舞いを Rust に移植し、単一バイナリで動くメタ検索エンジンとしてまとめました。

ハイライト

  • 検索コア: !engine / !category / :lang / <timeout / !! / !!bang 構文、結果の重複排除・スコアリング・カテゴリ別グループ化(上流 searx/query.py / searx/results.py 準拠)
  • エンジン 113 設定エントリ / 71 型(宣言的 xpath / json_engine / mediawiki と上流 settings.yml の自動取込を含む)
  • 外部 bang 13,561 件
  • HTTP: /search(HTML/JSON/CSV/RSS)、/autocomplete、/config、/preferences、/stats、/metrics、/image_proxy、/favicon_proxy、/opensearch.xml、/healthz
  • プラグイン 11 種、アンサーラー(statistics / random / weather)、Wikidata インフォボックス、i18n 11 ロケール
  • テスト 295 件(ユニット 281 + 統合 14、外部ネットワーク不要)

実測(上流 SearXNG との比較)

指標 SearXNG rustxng
起動 0.722 秒 0.028 秒
常駐メモリ 118 MiB 13 MiB
反復クエリ(キャッシュ) 100〜1000 ms 1 ms 級

詳細は docs/BENCHMARK.md。

既知の制限

  • 上流 227 エンジン型のうち 156 型が未移植(API キー必須・自前インスタンス・torrent 系は方針として対象外・特殊 DB)
  • valkey / redis キャッシュ、botdetection 本体、i18n のテンプレート全面適用は未対応

ライセンス

AGPL-3.0-or-later(上流 SearXNG と同じ)。帰属は NOTICE を参照してください。