Serialization 是否有Data.Binary(或friends)的模板Haskell/派生机制

Serialization 是否有Data.Binary(或friends)的模板Haskell/派生机制,serialization,haskell,binary-data,deriving,Serialization,Haskell,Binary Data,Deriving,Data.Binary文档显示手工编写实例。有办法解决这个问题吗?我看到了另一个库SerTH,它有一个(基于Haskell模板的)派生机制,但是它的链接似乎断了。此外,如果您了解其他库,那么良好的性能对我们来说至关重要 提前谢谢你 Neil Mitchells有一个用于派生二进制实例的模板haskell宏。因为您询问了其他库: 数据序列化库具有,它与GHC 7.2中的新泛型支持一起工作。与模板Haskell相比,它具有编译时速度优势(最近我倾向于避免使用TH,因为它会使编译速度更慢),并且与SY

Data.Binary
文档显示手工编写实例。有办法解决这个问题吗?我看到了另一个库SerTH,它有一个(基于Haskell模板的)派生机制,但是它的链接似乎断了。此外,如果您了解其他库,那么良好的性能对我们来说至关重要


提前谢谢你

Neil Mitchells有一个用于派生二进制实例的模板haskell宏。

因为您询问了其他库:

数据序列化库具有,它与GHC 7.2中的新泛型支持一起工作。与模板Haskell相比,它具有编译时速度优势(最近我倾向于避免使用TH,因为它会使编译速度更慢),并且与SYB和Uniplate等数据类型通用方法相比,它具有运行时速度优势

谷物与二进制非常相似,但使用严格的bytestring;binary自2009年以来就没有更新过,而谷物有很多优点,例如,如果你想派生,我看不出有任何理由不使用binary


GHC 7.2支持使用默认派生的本机方式。。。我为它写了一段时间的代码,它非常简单,实际上是GPL3。对于某些用例,这可能是一个问题。对于某些用例,惰性ByTestRing更容易
 {-# LANGUAGE DeriveGeneric #-}

 import Data.Binary
 import GHC.Generics (Generic)

 data Foo = Foo
          deriving (Generic)

 -- GHC will automatically fill out the instance
 instance Binary Foo