Hibariya

pty crate を作って Rust of Us へ行った

PTY に触るための crate を作って、その翌週に Rust of Us - Chapter 2 へ行き、そこで知見を共有したり Rust について教わったりしてきた。

pty crate

hibariya/pty-rs

さいきん調べた PTY を使ってシェルの入出力を好きなようにする ための処理を Rust で簡単に書けるようにしたいという動機で作った。 この crate が提供する pty::fork() は、新しい疑似端末 (PTY) を割り当てた子プロセスをつくる。Ruby の PTY.spawn に似ている (exec はしない)。

次のように呼び出すと、疑似端末の割り当てられた子プロセスの入出力を pty_master 越しに読み書きできる。

let (child_process, mut pty_master) = pty::fork();

Rust of Us

crate を公開することはできた。でも、API や実装の出来にはそれほど自信が持てない。最低限の動作はするものの、改善できる余地がありそうな気がする。限られた時間の中で、もっと効率よく「Rust らしいやり方」を知りたい。けれど、一人で調べているだけでは限界がある。だから、Rust について他の人の話を聞きに行くことにした。

Rust of Us - Chapter 2

話を聞いた内容のうちのいくつかは次のようなことだった。自分からの視点そのままなので偏りがあるのと、資料を見つけられなかった分は抜け落ちている。

今回、参加者の中に Rust にとても詳しいという人はいないということだった。それでも、みんなそれぞれ何かしら有益な情報を持っていて、互いに自分の知っていることを発表したりツッコミを入れたりすることで得られるものがあった。

発表の後はその場で出た疑問について考えを述べ合ったり、実際にコードを書いて確認したり、参考になりそうな記事を探したりした。その結果、(少なくとも自分のなかの) いくつかの疑問や誤解が解消できた。ありがたい。また行きたいと思う。

自分はというと、 Rust について話せることはまだ少なくて、主に PTY についての話をした。

Google Docs と Chromecast の組合せだと、スマホ片手にメモを見ながら話ができて楽だった。たとえ少人数でも人前は緊張してしまうので、なるべく楽にできるのがいい。