glow botの技術的な話
はじめに
glow botを開発しています、tuna2134です。今回はglow botに使われているデータベース、言語やライブラリなどについて紹介していこうと思います
使用している言語
言語はRustです。よくdiscord botで使うPythonやJavaScriptを使っていません。なぜ使ってないかというと書き直し前のバージョンで使っていた時Node.js(JSのランタイム)がたくさんメモリーを食って、処理が重くなっていたというのが主な要因ですね。それを脱却するためにコンパイル言語であるRust使いました。Rust使ってからはそんなにメモリーが食われてませんね。
使用しているデータベース
PostgreSQLを使用しています。組織内部としてPostgreSQL使う風潮?みたいなのがあったため、それに従っただけです。ただ個人的に検索機能の実装などがしやすいと思っているため自分の中でも利用する予定でした。ちなみに組織内でもう一つ推奨されていたmongodbですが、個人的によく思っていないのもあって使っていません。ちなみに利用しているライブラリはsqlx
です。
キャッシュなどを保存するのに使っているもの
redisです。redisを利用している理由は他の開発者が使っていたので、それに合わせて使いました。特に特別な理由はございません。
使用しているクライアントライブラリ
poise(serenity)
です。当初はtwilightを利用しようとしていましたが、スラッシュコマンドを実装していたりすると化け物並みのコードの行になりそうだったので、短縮するためにpoiseを使いました。
実行している環境
Ubuntuです。ただしdocker composeを使ってコンテナでの仮想化しています。当初はk8s使う気満々でしたが、まだ規模が小さいのといろんなトラブルがあったため使うのをやめてdocker composeを使っています。
最後に
実はまだ使っているライブラリがたくさんありますが、それらは全体とは関係ないため、別で紹介しようと思っています。ではまたね👋。
Discussion