コンテンツにスキップ

技術スタック

採用ライブラリ

Web framework: echo
採用理由: openapi-generatorを利用することを想定し、親和性の高いechoを採用。

ORM: gorm
採用理由: GitHubのスター数が多く、開発者が多いため。

Command line tool: cobra
採用理由: サブコマンドの実装が容易であるため また、k8sでも採用されているため、

Config: viper
採用理由: cli toolとして採用した、cobraとの親和性が高いため、

依存ソフトウェア

Language: Go
採用理由: 本プロジェクトの言語として採用。

Linter & Formatter: golangci-lint
採用理由: GitHubのスター数が多く、開発者が多いため。また、複数のlinterを統合しているため。

Database: PostgreSQL [Optional]
採用理由: 慣習的に利用されるため。 また、ORMのgormが対応しているため。 (ConfigでSQLite3を利用することも可能)

Secret Manager(検討中): Hashicorp Vault 
採用理由: シークレット管理のため
利用場面: パスワードハッシュ化時のpepperの管理および、OAuth2クライアントのシークレット管理の際に利用のため。
その他の候補: Cyber Ark conjur, Infisical

Object storage: MinIO [Optional]
採用理由: S3互換のため。