栞・ランタイム

里珠 (Rishu/Proxy) 接続

開発版の資料です。仕様・設計の記述には実装予定や過去の記述を含みます。現在の対応範囲は対応状況・既知の問題と合わせて確認してください。配布中のアプリへの収録状況はリリースノートをご確認ください。 対応状況 · 既知の問題

English · 更新: 2026-10-25

使い方ガイド · 公開ドキュメント · 対応状況・互換性

2026-10-25 時点でこの機能は開発版に実装済みで、公開配布版には未収録です。

Ourin 開発版は shiori,rishu_proxy.dll を里珠の Perl 外部プロセスへ接続します。実験的対応です。ゴーストに同梱された rishu_remote.pl と、そのスクリプトが必要とする Perl モジュールが必要です。Windows の rishu.dll を直接実行する機能ではありません。

配置と実行環境

rishu_proxy.dll の位置として指定されたディレクトリに rishu_remote.pl を置きます。上流 1.1.32 のサンプルは隣接する lib/Rishu/Remote.pm などを読み込みます。元の配布構成を保持してください。

Perl は既定で /usr/bin/perl を使います。これは Ourin に同梱されたランタイムではなく、利用環境に存在する必要があります。別の Perl を使う場合は、Ourin 起動環境の OURIN_RISHU_PERL_EXECUTABLE に実行可能ファイルの絶対パスを指定します。古いゴーストが要求するモジュールの互換性は、その Perl 環境にも依存します。

Ourin はシェルや Windows 向け rishu_proxy.ini のコマンドを実行せず、Perl rishu_remote.pl --port <一時ポート> を引数に分けて起動します。スクリプトや辞書を自動書換えしません。

通信と終了

  • Ourin が 127.0.0.1 のみで一時 listener を作成します。公式 --port モードの子プロセスは INADDR_LOOPBACK に接続するクライアントです。外部インターフェースには公開しません。
  • PROXY LOAD/REQUEST/UNLOAD/EXIT RISHU/1.1 と Original-Response、Content-Length を扱います。SHIOLINK の *L/*S/*U とは別のプロトコルです。
  • SHIORI 電文は既定 Shift_JIS。shiori.encoding / shiori.force_encoding による UTF-8 も扱い、shiori.escape_unknown を反映します。LOAD のディレクトリ文字列は Shift_JIS で表現できる必要があります。
  • 起動・要求に期限を設け、フレームを最大 1 MiB に制限します。不正な応答、接続失敗、タイムアウトではセッションを無効化し、起動した子プロセスを終了・回収します。正常終了時は UNLOAD と EXIT を送ります。
  • 子がさらに作る孫プロセスや、スクリプト固有のファイル保存はそのエンジン側の責任です。

確認済み範囲

2026-10-25、公式 1.1.32 配布 の未改変 rishu_remote.pl と実 Swift adapter を接続し、LOAD、Content-Length 付き応答、GET/NOTIFY、Shift_JIS の日本語 Reference、UNLOAD、EXIT、PID 回収を確認しました。公式サンプルは要求を echo するプログラムで、人格ゴーストの会話検証ではありません。Nayuki などの配布ゴースト全体の互換性は未確認です。

公式ソースを展開したディレクトリから再現できます。スクリプトは一時コピーを使用し、ソース元を変更しません。ダウンロードや Perl の導入は行いません。

python3 scripts/verify_external_shiori.py rishu /path/to/rishu-1.1.32

RishuProxyTests は実 Perl プロセスで、通常応答、UTF-8 / Unicode escape、起動待ち、ハング、切断、不正長、過大応答と子プロセス回収を検証します。

一次資料

上流ファイルや第三者ゴーストは Ourin リポジトリに再配布していません。

出典と編集について

Ourin / Furin Lab・contributors。文書はCC BY-SA 4.0(第三者の個別表記を除く)。Web版は見出し・リンクの整備とローカルパスの一般化を行っています。更新基準日: 2026-10-30。

元資料: docs/RISHU_ja-jp.md
ソース SHA-256: a580807cf5bdaa5983ce3c7910ae16a6fdf4f40b414f0f8b2a9db439bf9ef849

ライセンス · 出典一覧 · 資料一覧に戻る