Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new framing chunk types without checksums #155

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 19 additions & 5 deletions framing_format.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Snappy framing format description
Last revised: 2013-10-25
Last revised: 2022-05-23

This format decribes a framing format for Snappy, allowing compressing to
files or streams that can then more easily be decompressed without having
to hold the entire stream in memory. It also provides data checksums to
to hold the entire stream in memory. It also provides optional data checksums to
help verify integrity. It does not provide metadata checksums, so it does
not protect against e.g. all forms of truncations.

Expand Down Expand Up @@ -106,7 +106,21 @@ no more than 65536 data bytes, so the maximum legal chunk length with the
checksum is 65540.


4.4. Padding (chunk type 0xfe)
4.4. Compressed data without checksum (chunk type 0x02)

This chunk type is identical to "Compressed data" (type 0x00) except that
the compressed data is _not_ preceded by a checksum. The same size and
other limitations apply.


4.5. Uncompressed data without checksum (chunk type 0x03)

This chunk type is identical to "Uncompressed data" (type 0x01) except that
the data is _not_ preceded by a checksum. The same size and other
limitations apply.


4.6. Padding (chunk type 0xfe)

Padding chunks allow a compressor to increase the size of the data stream
so that it complies with external demands, e.g. that the total number of
Expand All @@ -117,7 +131,7 @@ should be zero, but decompressors must not try to interpret or verify the
padding data in any way.


4.5. Reserved unskippable chunks (chunk types 0x02-0x7f)
4.7. Reserved unskippable chunks (chunk types 0x04-0x7f)

These are reserved for future expansion. A decoder that sees such a chunk
should immediately return an error, as it must assume it cannot decode the
Expand All @@ -126,7 +140,7 @@ stream correctly.
Future versions of this specification may define meanings for these chunks.


4.6. Reserved skippable chunks (chunk types 0x80-0xfd)
4.8. Reserved skippable chunks (chunk types 0x80-0xfd)

These are also reserved for future expansion, but unlike the chunks
described in 4.5, a decoder seeing these must skip them and continue
Expand Down