scalapb-argonautをscala-native対応させた

まずは以下のあたりも参照

xuwei-k.hatenablog.com

xuwei-k.hatenablog.com

それで

というわけで、scalapb-argonautもscala-native対応するしかないですね。というかそれを見越して、最初からscalapb-argonautはscala-native対応しやすいように、多少ビルドファイル工夫しておきました。

support scala-native. use lihaoyi/µTest instead of scalatest · scalapb-json/scalapb-json-common@7e13ca4 · GitHub

support scala-native. use lihaoyi/µTest instead of scalatest · scalapb-json/scalapb-argonaut@83dc89c · GitHub

依存の追加の仕方などはGitHubのほうのREADME見てください。

やったことや、いくつか面倒だったこととしては

  • scala-nativeにjava.timeのclassがなくてTimestampのサポートひとまず諦めた
  • scalatestは、今scala-native対応中らしいが、まだリリースされてないので、別のテストライブラリに切り替えた
  • scala-nativeにBase64のclassもないので、scala-jsから拝借した(protobufのバイナリは、json変換ではbase64エンコードするという仕様)

などでしょうか。あとはいつもどおりそれらの影響で、プラットフォーム毎に微妙にディレクトリわけてのクロスビルドが面倒でしたが、 逆に言うとすごく想定外な問題は発生しませんでした。

circeやplay-jsonは、scala-native対応してないので、やれません。 他にscala-native対応してるjsonライブラリあったような気もする・・・?気が向いたらscalapb-json orgに作るかもしれないし、作らないかもしれません。