sbtからflatbuffersのjavaを使う

flatbuffers自体の説明はあまりしません。ググったり公式ページ見てください。

https://google.github.io/flatbuffers/

googleが出しているシリアラザーで、protocol buffersに多少似てるけど、必要になるまでparseしないので、使い方によっては無駄な処理がなくなってとても速い、というものらしいです。gRPCもこれでいけるらしいです

これ書いている現在、公式でもサードパーティでも、まともなScala実装は存在しない気がします。

気力が続いたらゼロからScala実装を全部作ろうかなぁと考えて、IDLパーサーだけ書いたけれど、気力が続くのか謎です。

さて、Scala実装作るにはJavaのものを参考にする、あるいはJavaとのインテグレーションも必要になる?かもしれないので、まずflatcというIDLからコード生成をするものをsbtからいい感じに呼びたいわけです。

それの最低限のコードが以下です。

前提として、flatcの実行ファイル自体は、macならbrewでインストールとか、もしくはcmakeで自前ビルドなどしてください。windowsgithubに公式exeがあるのでしょうか?

flatbuffersのIDLの拡張子は .fbs らしいです。Flat Buffer Schema ?あたりの略でしょうか?

必要だと思ったら、これを汎用的なsbt pluginにしてリリースするかもしれないし、しないかもしれない

gist.github.com