Appleから新しくOSSとして発表されたSwift NIOとNettyを雑に比較

おそらく日本初のSwift NIO記事ではないでしょうか?(どうでもいい)


"雑に比較" とは、同じようなclass存在してるのを列挙してみる、などをするだけです。 作者同じなのだから、似ているの当たり前だし、そもそもswift NIOのNOTICEに以下のように書いてあります。

https://github.com/apple/swift-nio/blob/b81ae9a4b0087235880927cd0037e470481a6d0f/NOTICE.txt#L29-L34

This product is heavily influenced by Netty.


あとこういうissueも

github.com


個人的にswiftは数十行しか書いたこと無いし、全然知らないし、swiftのカンファレンスの資料など全く見てない(現時点で公開されてるのかすら知らない)ですが、あくまでgithub眺めて比べてみます。

他にも同じclassありそうな気もしますが、ひとまず見つけたものだけ。


つまり、swift-nio 勉強したい人はまずnetty勉強すれば良いのではないでしょうか。ただし、nettyと同様なら、万人向けのものではなく、低レイヤーなものなので、そもそもどういう用途に向いているのか?を理解し、その人にとって必要なものなのか?を把握する必要がありそうですが。

ByteBuffer

(nettyはJava標準ライブラリにByteBufferというclassがある都合上、ByteBufとなっているが、おそらくswiftのものと役割同じ)

Bootstrap

EventLoopGroup

EventLoop

Channel

ChannelHandler

ChannelPipeline

ascii artの図やコメントが、明らかにコピペした後に最低限直してあるだけな感じするw

f:id:xuwei:20180301232243p:plain