The porting was pretty straightforward, the actual heavy lifting was provided by the <a href="https:&#x2F;&#x2F;github.com&#x2F;anacrolix&#x2F;torrent" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;anacrolix&#x2F;torrent</a> library.<p>One insight that I got from it is that the io.Reader and io.Writer interfaces can work very similar to node streams.<p>If you work with binary data at any point, it makes a lot of sense to provide those interfaces as there is a tremendous amount of code that can make use of it.