dahdit: Binary parsing and serialization with integrated size

[ bsd3, data, library ] [ Propose Tags ]

Please see the README on GitHub at https://github.com/ejconlon/dahdit#readme


[Skip to Readme]

Modules

[Last Documentation]

  • Dahdit
    • Dahdit.Binary
    • Dahdit.BinaryRep
    • Dahdit.Fancy
    • Dahdit.Free
    • Dahdit.Funs
    • Dahdit.Generic
    • Dahdit.Internal
    • Dahdit.LiftedPrim
    • Dahdit.Nums
    • Dahdit.Proxy
    • Dahdit.Run
    • Dahdit.Sizes

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.2.0, 0.3.0, 0.5.0, 0.5.1
Dependencies base (>=4.12 && <5), bytestring (>=0.10 && <0.11), containers (>=0.6 && <0.7), data-default (>=0.7 && <0.8), data-sword (>=0.2 && <0.3), free (>=5.1 && <5.2), mtl (>=2.2 && <2.3), primitive (>=0.7 && <0.8), transformers (>=0.5 && <0.6) [details]
License BSD-3-Clause
Copyright (c) 2022 Eric Conlon
Author Eric Conlon
Maintainer ejconlon@gmail.com
Category Data
Home page https://github.com/ejconlon/dahdit#readme
Bug tracker https://github.com/ejconlon/dahdit/issues
Source repo head: git clone https://github.com/ejconlon/dahdit
Uploaded by ejconlon at 2022-10-10T19:06:04Z
Distributions
Reverse Dependencies 3 direct, 0 indirect [details]
Downloads 257 total (22 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2022-10-10 [all 2 reports]

Readme for dahdit-0.1.0

[back to package description]

dahdit

Binary parsing and serialization with integrated size.

This differs from binary in a few ways:

  • It is required that all types implementing Binary must also implement ByteSized.
  • Known-statically-sized types can implement StaticByteSized for size speedups.
  • Examining Put can yield required byte size without serializing.
  • It uses ShortByteString to avoid pinned memory.
  • It supports parsing PrimArray for fast copies of repeated chunks of primitive data.
  • Derivation uses via and not anyclass for better control of derived instances.
  • Provides several additional types representing fixed-length strings or sequences (using TypeLits).

This generally works but should be considered experimental.

(dahs and dits are signal durations in Morse code)