NimbleをSwiftWasmに対応させてみた
SwiftWasmとは、SwiftをWebAssemblyにコンパイルしてブラウザやその他WebAssemblyランタイムで動作するようにしようという野心的なプロジェクトです。
ちなみにSwiftWasmには id:kateinoigaku さんがco-maintainerとして多大な貢献をされています。
fortee.jp kateinoigakukun.hatenablog.com
最近試しに、メンテナーをしているNimbleをSwiftWasmに対応させてみました。
以前にも一度トライして断念していたのですが、現在では標準ライブラリだけでなくFoundationもThread/GCDなど一部を除いて問題なく動作するようになっていたので、意外とすんなりと対応させることができました。Threadが使えないので toEventually
や waitUntil
などのAsync expectationsの機能やNotificationのマッチャーは使えませんが、それ以外はテストスイートも全てパスしています。すごい!
喜んでもらえている様子:
いけしょーさんPRでNimbleがSwiftWasmに対応してた 🤩 https://t.co/B05j6l1LTd
— kateinoigakukun (@kateinoigakukun) 2021年5月24日
GitHub ActionsでのCIについても https://github.com/swiftwasm/swiftwasm-action というアクションが用意されているので、手軽にCIでビルドやテストを実行させることができます。
ということで、Swift製のライブラリをお持ちの方は一度SwiftWasm対応を試してみてはいかがでしょうか。