Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

The Problem

Working with binary I/O often requires imperative-style interop. Testing binary I/O, interactively or non-, is made harder by the lack of a literal representations for byte streams.

How can we represent an ordered, possibly infinite, collection of bytes?

Desiderata

Ideally, this representation would be:

  • pr/read-able
  • representable as a string in a specific encoding
  • compatible with Clojure's sequence API
  • efficient for streaming I/O of large binary objects
  • lazy, i.e., the entire collection need not exist in memory at one time
  • compatible with java.io and java.nio interfaces