小ネタです。 これ書いている2018年3月現在、scala-nativeの最新は0.3.7ですが、
- java.net.URLConnectionは未実装 https://github.com/scala-native/scala-native/blob/v0.3.7/javalib/src/main/scala/java/net/URLConnection.scala
- よってそれらを使うscala.io.Source.fromURLなどは動かない
- java.net.Socketは実装されている https://github.com/scala-native/scala-native/blob/v0.3.7/javalib/src/main/scala/java/net/Socket.scala
- よってsocketに直接 HTTP/1.0 なリクエストを書き込めば最低限の通信はできる(もちろんhttpsは単純には不可能なので注意)
というわけで、最低限適当にmaven centralの何かをGETしてprintするだけのサンプルを書いてみました。というだけの記事です。 これだと一応純粋なJavaとScalaのライブラリのclassしか使っていないのでJVMでも動くコードですね。 もう少しこれで色々やって何か作れないか考えてみようかと思うけど、果たして実用的なもの作れるだろうか・・・? 🤔
そういえば、scala-native特有の機能使ってhttp server書くような、もっと本格的で楽しい(?)記事もあるので、貼っておきます。 http://tech.ovoenergy.com/scala-native-webserver/
あと「すごい完成されたscala-nativeで動くhttp clientライブラリあるよ」といった情報も募集しています。もしまだそういう動きないなら作るか・・・?(大変そう)