我正在开发一个 Haskell 应用程序,该应用程序在使用 GHCJS 编译的浏览器中运行,该应用程序通过 websockets 与同样用 Haskell 编写的服务器通信。两个程序共享相同的 Haskell 数据类型定义,我“只是”必须选择序列化格式。
目前,为简单起见,程序在Read
and上运行Show
,它可以工作,但显然并不理想。
另一方面,目前还不清楚快速序列化的常用竞争者,例如cereal
库,ByteStrings
在 GHCJS 中是否真的有效。此外,GHCJS 的 API 似乎很难让与JavaScript 绑定到 Websockets 提供ByteStrings
的二进制类型进行交互。Blob
通用代码生成(使用GHC.Generics
)会很好。
以前有没有人解决过这个问题?甚至可能对 GHCJS 上的各种序列化变体进行基准测试?