Possibly create other `MonadGet` and `MonadPut` instances

オープン
#25 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
20/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
haskell
領域
data

調査の方向性

ファイル、テスト、またはエントリポイントは指定されていません。まず MonadGet と MonadPut のクラス定義および既存のシリアライゼーションインスタンスを見つけ、次に圧縮、暗号化、またはハッシュアキュムレーターのインスタンスをこのパッケージに置くべきか、別のパッケージに置くべきかを判断してください。スコープと完了基準についてはメンテナーの合意が必要です。

索引モデルが issue の本文から書いたものです。

説明

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?

主要言語
Haskell
スター
23
フォーク
13
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ekmett/bytes のほかの issue

ekmett/bytes の issue をすべて見る

似ている issue

Haskell の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。