Repository navigation
Releases: sahenjp/RustXNG
Releases · sahenjp/RustXNG
Release list
RustXNG v0.4.1
RustXNG v0.4.1
チェックサムは各アセットの .sha256 を参照してください。
v0.4.0 — DB エンジン・Valkey キャッシュ・botdetection・高速化
前回「未移植」としていた項目をすべて埋め、実測でボトルネックを潰したリリースです(後方互換)。
追加
- 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
v0.3.0 — 全エンジン移植完了(226/226)
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 のロケール数も上流と完全一致ではありません。
v0.2.0
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
最初の公開版です。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 を参照してください。