Body Archive container file format, reader and writer.
BARC is a container file format for the storage or one to many HTTP
request/response dialog records. A fixed length, ASCII-only record head
specifies lengths of a subsequent series of request and response header
blocks and bodies which are stored as raw (unencoded) bytes. When not
using the internal compression feature, the format is easily human
readable. With compression, the
barc CLI tool (barc-cli crate) can be
used to view records.
See some sample files in source sample/*.barc.
An additional meta-headers block provides more recording details and can also be used to store application-specific values.
Sequential or random-access reads by record offset (which could be stored in an external index or database).
Single-writer sessions are guaranteed safe with N concurrent readers (in or out of process).
Optional per-record gzip or Brotli compression (headers and bodies)
Reference to a BARC File by
BARC file handle for read access. Each reader has its own file handle and position.
BARC file handle for write access.
Strategy for Brotli compression.
Wrapper holding a potentially encoding
Strategy for gzip compression.
Strategy of no (aka
An owned BARC record with public fields.
Error enumeration for all barc module errors.
BARC record compression mode.
Error enumeration for failures when converting from a
BARC record type.
Fixed record head size including CRLF terminator: 54 bytes
Maximum header (meta, request, response) block size, including any CRLF terminator: 220 (1 MiB) - 1.
Maximum total record length, excluding the record head: 248 (256 TiB) - 1.
Maximum request body size, including any CRLF terminator: 240 (1 TiB) - 1.
Strategies for BARC record compression encoding on write.
Access to BARC
Write body to out, with optional CR+LF end padding, and return the length
written. This is primarily an implementation detail of
Write header block to out, with optional CR+LF end padding, and return the
length written. This is primarily an implementation detail of
Conveniently compact type alias for dyn Trait