NimbleをSwiftWasmに対応させてみた

SwiftWasmとは、SwiftをWebAssemblyにコンパイルしてブラウザやその他WebAssemblyランタイムで動作するようにしようという野心的なプロジェクトです。

ちなみにSwiftWasmには id:kateinoigaku さんがco-maintainerとして多大な貢献をされています。

fortee.jp kateinoigakukun.hatenablog.com


最近試しに、メンテナーをしているNimbleをSwiftWasmに対応させてみました。

github.com

以前にも一度トライして断念していたのですが、現在では標準ライブラリだけでなくFoundationもThread/GCDなど一部を除いて問題なく動作するようになっていたので、意外とすんなりと対応させることができました。Threadが使えないので toEventuallywaitUntil などのAsync expectationsの機能やNotificationのマッチャーは使えませんが、それ以外はテストスイートも全てパスしています。すごい!

喜んでもらえている様子:

GitHub ActionsでのCIについても https://github.com/swiftwasm/swiftwasm-action というアクションが用意されているので、手軽にCIでビルドやテストを実行させることができます。

ということで、Swift製のライブラリをお持ちの方は一度SwiftWasm対応を試してみてはいかがでしょうか。