Unikernel Nim

This may not be relevant, but I had some time to kill and actually got some unikernel stuff done. I ported the Nim language to Solo5 and got a TCP stack working.

The Nim language runtime was easy to port, but I imagine that more work needs to be done with memory management. - https://github.com/nim-lang/Nim/compare/v1.6.2...ehmry:solo5

For the IP stack I stubbed out all the sockets stuff in the Nim standard library and implemented the TAPS API over LwIP, and ported LwIP to Solo5 (I’ve ported LwIP to other platforms so it was not that much work). - ~ehmry/nim_taps: Port to Solo5 with LwIP backend - sourcehut git

There is not much that you can do with it at the moment, I haven’t done anything with the block devices and the only I’ve done with networking is CoAP for someday exchanging ERIS blocks - eris/nim-coap: Nim library implementation of CoAP - nim-coap - Codeberg.org

3 Likes

Ha, @emery, each time you post here you make things look as easy as pie. I’m sure the Robur.io team will be delighted to see this!

(Written days ago, forgot to post it :open_mouth: )