IO/B

From CommonJS Spec Wiki
< IO
Jump to: navigation, search

Unfinished, in drafting

IO/B defines an alternate proposal to IO/A.

Focuses in IO/B are:

  • Abstract handling of binary and textual data
  • Flexibility and ease in defining new Stream types without needing to implement the entire complex api.
  • Streaming as a generic system which can apply to any sort of data source (file, socket, buffers, etc...)

IO/B is broken up into separate sections:

  • Buffer - require('io/buffer'); Buffer, StringBuffer, and BlobBuffer split out from Binary/C
  • Filesystem/Level0 - Level 0 require('io/filesystem/raw'); - Low level native access to the filesystem used to implement higher layers of filesystem access.
  • Filesystem/Level1 - Level 1 require('io/filesystem'); - ...
  • Stream/Level0 - Level 0, api only (there is nothing to implement at this level) - Raw method base api used to give Stream access to data sources at the most basic level
  • Stream/Level1 - Level 1 require('io/stream'); - Implementable in pure JS
  • Socket - Level 1 require('io/socket'); - ...