IxiaS

IxiaSとはNextbeat旧CTOの衣笠が開発したOSSであり、社内のScalaプロダクト共通で用いられているScalaライブラリです。

IxiaSのOSS化に関するインタビュー記事も公開しているので参考にしてください。

IxiaSはScalaのWebフレームワークであるPlay FrameworkとDBレイヤーであるSlick、インフラレイヤーであるAWS SDKをラップしたライブラリです。

IxiaSは以下のような特徴を持っています。

  • Entity Modelと呼ばれる、DBのテーブルと1対1で対応するデータ型を提供する
  • Enum等の汎用的なデータ型を提供する
  • Play Frameworkの機能を拡張し、より簡単に開発できるようにする
  • SlickをEntity Modelと組み合わせて簡単に構築できる
  • AWS SDKを使用したインフラ構築を簡単にする

Slick等のIxiaSがラップしているライブラリを使用する際もプロダクト間で共通したコードを書くことができるので、コード共有及びプロダクト間の人材ローテーションが容易になり開発効率が向上します。

クイックスタート

IxiaSはMaven Centralには公開されておらず、AWSのS3に公開されているライブラリです。 使用する際はResolverの設定を追加して、S3からダウンロードできるようにする必要があります。

resolvers ++= Seq(
  "Nextbeat Snapshots" at "https://s3-ap-northeast-1.amazonaws.com/maven.nextbeat.net/snapshots",
  "Nextbeat Releases"  at "https://s3-ap-northeast-1.amazonaws.com/maven.nextbeat.net/releases",
)

現在のバージョンは Scala 2.13.13 に対応した 2.3.0 です。

libraryDependencies ++= Seq(

  // まずはこの1つから
  "net.ixias" %% "ixias" % "2.3.0",

  // そして、必要に応じてこれらを加える
  "net.ixias" %% "ixias-slick" % "2.3.0", // Slickを使用したDBアクセス
  "net.ixias" %% "ixias-aws-sns" % "2.3.0", // AWS SNS SDKのラッパー
  "net.ixias" %% "ixias-aws-s3" % "2.3.0", // AWS S3 SDKのラッパー
  "net.ixias" %% "ixias-aws-ses" % "2.3.0", // AWS SES SDKのラッパー
)
The source code for this page can be found here.