Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

rustでdiscordのbotを作ってみたくて下調べ

結論から書くとまだ何もしてない。

discord-rs というのがあるのだけど、だいぶ古い。特に嫌なのが issue にも上がっている通り openssl 1.0 系への依存。 昨年末にEOLを迎えている ので避けておきたい。

という事で手元でバージョンを上げようと試みたのだが、これがかなり厳しい。特に hyper 周りがバージョンが上がって大きくインタフェースが変わっており、変更量が多すぎて諦めた。ついでに edition も Rust 2018 にしようと試みたのだが、 try! の廃止があまりにもきつかったので断念。 cargo fix --edition を使えと書いてあったが、 try! は警告を出すだけで何も直してくれず、おい、その量は無理だろって量の warning が出ただけの結果となった。

という事で、手で bot を書いてみようかなと。 discord bot の基本は Haskell ではあるが fumivalさんのエントリ がとてもわかりやすかった。後は discord-rs を参考に手を動かすだけ。

Rust 1.39 より await / async syntax が入り、 runtime も tokio 以外も使えるのでやってみたかったのだが、 hyperはtokioに依存しているぽい ので、無理せず tokio を使うべきかなあという結論。あと、 discord-rs は hyper に依存しているが、当時の hyper が持っていた機能は reqwest に移っていそうだったので、こっちを使うほうが良さげ。

という事で、結局調べていただけでまだ何もしていない。