Haskell实现扁平,一种原则性的、可移植的和紧凑的二进制数据格式(规格).
如何将其用于娱乐和盈利
{-#LANGUAGE派生泛型,派生任意类#-}
进口公寓
data Direction=北|南|中|东|西派生(Show,Generic,Flat)
使用平的编码:
平[北,南]-> "\149"
和不平坦的要解码:
unflat(平面[北,南])::解码[方向]->右[北,南]
由于Flat的位编码,此列表适合1个字节(而不是传统字节编码所需的5个字节):
flatBits[北,南]-> "10010101"
有关一些硬数据,请参阅主要haskell序列化库的比较.
简要地:
- 尺寸:
平的
生成的二进制文件明显小于所有其他库(通常是其他库的3/4倍)
- 序列化时间:
商店
,坚持
和平的
速度更快
- 反序列化时间:
商店
,平的
,坚持
和谷物
速度更快
- 传输时间(序列化时间+网络传输时间+接收端反序列化):
平的
除了最高的网络速度外,通常速度更快
文档
安装
从获取最新的稳定版本黑客攻击.
兼容性
测试对象:
已知错误和感染
其他语言的端口
生锈和类型脚本-JavaScript港口正在开发中。
如果您想帮助移植,请联系平的
其他语言。
致谢
平的
重用各种软件包中的思想和代码,主要包括:商店
,二进制位
和二元的
并包括来自许多贡献者的错误修复。
你可能喜欢的其他东西
解码平的
编码数据您需要知道序列化数据的类型。
对于不需要长期存储并且不在开放分布式系统中运行的应用程序,这是可以接受的。
对于那些这样做的人,你可能需要补充平的
具有ZM-独立于语言、可复制、绝对类型.