nettyのコミッターの人、appleに勤めてる有名人だから、swiftにあまり関係ないけど特別ゲスト的な感じでswiftのカンファレンスで登壇するのかと思いきや、こんなことやってた(コミット数1位)のか、なるほどーhttps://t.co/ZkRg8kn5A0 pic.twitter.com/yrZiuPiQcB
— Kenji Yoshida (@xuwei_k) 2018年3月1日
おそらく日本初の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も
個人的にswiftは数十行しか書いたこと無いし、全然知らないし、swiftのカンファレンスの資料など全く見てない(現時点で公開されてるのかすら知らない)ですが、あくまでgithub眺めて比べてみます。
他にも同じclassありそうな気もしますが、ひとまず見つけたものだけ。
つまり、swift-nio 勉強したい人はまずnetty勉強すれば良いのではないでしょうか。ただし、nettyと同様なら、万人向けのものではなく、低レイヤーなものなので、そもそもどういう用途に向いているのか?を理解し、その人にとって必要なものなのか?を把握する必要がありそうですが。
ByteBuffer
(nettyはJava標準ライブラリにByteBufferというclassがある都合上、ByteBufとなっているが、おそらくswiftのものと役割同じ)
Bootstrap
- https://github.com/apple/swift-nio/blob/b81ae9a4b0087235880927cd0037e470481a6d0f/Sources/NIO/Bootstrap.swift
- https://github.com/netty/netty/blob/ed46c4ed00ec8260d64eda19ae05aae03fcdaa20/transport/src/main/java/io/netty/bootstrap/Bootstrap.java
EventLoopGroup
- https://github.com/netty/netty/blob/ed46c4ed00ec8260d64eda19ae05aae03fcdaa20/transport/src/main/java/io/netty/channel/EventLoopGroup.java
- https://github.com/apple/swift-nio/blob/b81ae9a4b0087235880927cd0037e470481a6d0f/Sources/NIO/EventLoop.swift#L599-L635
EventLoop
- https://github.com/apple/swift-nio/blob/b81ae9a4b0087235880927cd0037e470481a6d0f/Sources/NIO/EventLoop.swift#L80
- https://github.com/netty/netty/blob/ed46c4ed00ec8260d64eda19ae05aae03fcdaa20/transport/src/main/java/io/netty/channel/EventLoop.java#L27
Channel
- https://github.com/apple/swift-nio/blob/b81ae9a4b0087235880927cd0037e470481a6d0f/Sources/NIO/Channel.swift#L142
- https://github.com/netty/netty/blob/ed46c4ed00ec8260d64eda19ae05aae03fcdaa20/transport/src/main/java/io/netty/channel/Channel.java
ChannelHandler
- https://github.com/apple/swift-nio/blob/b81ae9a4b0087235880927cd0037e470481a6d0f/Sources/NIO/ChannelHandler.swift
- https://github.com/netty/netty/blob/ed46c4ed00ec8260d64eda19ae05aae03fcdaa20/transport/src/main/java/io/netty/channel/ChannelHandler.java
ChannelPipeline
- https://github.com/apple/swift-nio/blob/b81ae9a4b0087235880927cd0037e470481a6d0f/Sources/NIO/ChannelPipeline.swift
- https://github.com/netty/netty/blob/ed46c4ed00ec8260d64eda19ae05aae03fcdaa20/transport/src/main/java/io/netty/channel/ChannelPipeline.java
ascii artの図やコメントが、明らかにコピペした後に最低限直してあるだけな感じするw