ekmett / ekmett/bytes

Possibly create other `MonadGet` and `MonadPut` instances

Open
#25 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
23
Forks
13
PR merge metrics
No merged PRs in 30d

Description

Something that is nice about having `MonadGet` and `MonadPut` as classes is you can use the same serialization logic for different purposes. For instance, you can create a `MonadPut` instance based on a cryptographic hash accumulator, and now your serialization code for your type doubles for creating hashes. Maybe a bit ad hoc, but it works great!

Here are a couple other ideas for instances:
- A compressing `MonadPut` and `MonadGet`. So you write and read from it as normal, but it's doing incremental compression and decompression. Perhaps you can get the same thing serializing to a lazy bytestring, then compressing that, but it's probably faster to just have the instances do this directly.
- An encrypting `MonadPut` and `MonadGet`. Again, you read and write as normal, but it's encrypting / decrypting as you go.

Not sure if you'd want include any of these in this package, but just wanted to get your thoughts. Maybe such instances belong in a separate package that depends on bytes?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.