伺か
筆者が伺かについて説明する際に参照するためのページです。
主にソフトウェアエンジニアの人を対象としています。
この記事が対象としている読者
- 2024年の伺かの最新事情について知りたい人
- 独自言語を作りたいまたは作っている人で、ドメイン固有言語(DSL)が実用されている界隈に興味がある人
- SSTPの最新事情について知りたい人、作者が異なるアプリケーション同士が独自規格で通信を行う場合の運用について知見を得たい人
この記事が対象としていない読者
- 伺かのゴーストの作り方が知りたい人
- 伺かのおすすめゴーストが知りたい人
伺かの仕様
UKADOC
一次情報としてあたるならここ。
大八洲.NET
資料としては古いが、伺かの仕様が広く網羅されている。
本家 materia の仕様書
現代の開発者が参照するものではない。歴史的な編纂を追いたい考古学者向け。
ベースウェア
伺かの本体となるプログラム。ゴーストを起動し、シェルを描画し、バルーンにトークを表示し、SSTPサーバーとして振る舞う。
SSP
非オープンソース。
materia
非オープンソース。
ninix-kagari
Linux環境で動作するオープンソースのベースウェア。
ikagaka
Webで動作するオープンソースのベースウェア。近年更新が停滞している。
なーコミックス
漫画風に表示する。Windows専用。更新は停止している。
非オープンソース。
SHIORI
ベースウェアからのゴーストに対するイベント通知に対し求められるレスポンスを返す。リソース情報や再生すべきSakuraScriptを返すことが主な役割となる。
ここではメンテナンスが続いているオープンソースな栞のみ紹介する。
里々
ゴースト作者に最も利用されている栞。日本語で直感的にトークを記述できるため人気が高い一方、複雑なプログラミングには向いていない。
YAYA
C言語ライクな記法でプログラミングに覚えがあるゴースト作者に人気がある。
kagari
Lua栞。
SSTP
外部アプリが伺か(SSTPサーバー)に対してメッセージを送信することができる。ゴーストにトークを再生させたり、情報を与えたりすることが主な役割である。
近年その仕様が大きく拡張されたため、ここに紹介したい。
X-SSTP-PassThru-*
NOTIFYなどゴースト側との通信の際に、SHIORIから直接返されてきたヘッダ。
文字コード変換等最低限の処理が行われるだけで、(任意の文字列)の部分や中身はそのまま中継される。
UKADOC Project SSTP/1.x
つまり、ゴーストが外部アプリに対して情報を追加で返すことができる。一方向の情報通知でなく双方向の情報のやり取りができようになった。
SSTP over HTTP
HTTPリクエストメッセージボディにSSTPリクエストをそのまま突っ込み、HTTPレスポンスボディにSSTPレスポンスがそのまま返ってくるきわめて単純な仕組みです。
UKADOC Project SSTP/1.x
つまり、WebページのJavaScriptから直接SSTPを投げられるようになった。
ライブラリ
jsstp
GUIツール
DirectSSTPTester
内部で使われているSSTPLibはC#でDirectSSTPを扱うライブラリである。
運用例
イベントは好きなように投げてよい。他と被らなければ誰も怒ったりはしない。どんどん投げよう。