botフレームワークを作り始めた

本当にフレームワークと言い張っていいのか?という問題は置いといて。


元々hubotベースの https://github.com/mohemohe/kokorobot ってやつを作っていて、個人的に使うだけじゃなくて弊社のSlackでも暴れまわってる状態。
もちろん、Node.jsで動いているので、フードファイターも真っ青になるくらいメモリをもぐもぐ食べる。

で、ここ最近、個人運用してるDocker swarmをAWS ECSに載せ替えるやつをやっていきしているんだけど、kokorobotをそのまま移植するとメモリが600MBほど必要なことが判明して渋くなった。
Linodeで雑に動かす分には$5くらい実質無料なんだけど、EC2だと結構金がかかるのでリソースを無駄遣いしたくない。

そんなこんなで、省リソースなbotを作ることにした。
一連のコードは https://github.com/lxbot にある。
あくまでも、これはhubotのようなものを目指していて、弊社(そして僕がメンテしている(❗))のbotフレームワークと競合するようなものではないことを念押ししておく。

hubotの adapter , brain , script と同じ概念で作っているけど、 brain は人間味がしてキモいので store にしている。
スクリプトエンジンとかは一切積んでいなくて、素朴にmapで受け渡しするインターフェースを実装したプラグインを所定のディレクトリに放り込むような形。
golangだからNode.jsよりも省リソースで動く。

とりあえず今月中くらいにはkokorobotのscriptをlxbotに移植してしまいたい。