Два основных конкурирующих пакета для сериализации и десериализации данных в Haskell, о которых я знаю, являются двоичными и зерновыми. Когда следует выбирать один из этих пакетов над другим? Или есть другие варианты, которыми я пренебрегаю?
Зерновые против двоичных
Ответ 1
Они не конкурируют, они дополняют друг друга. cereal
работает на строгих байтах, а binary
работает на ленивом. Из-за своей ленивой природы binary
зависит от того, чтобы исключить ошибку при анализе разбора, а cereal
может завершиться с ошибкой через Either
.
Кроме того, подразумевая, что существуют только "два" основных пакета, это искажение. По крайней мере, вы также должны взглянуть на строителя пламени.