Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cp3-kaitai-zlib

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cp3-kaitai-zlib

Zlib processors for Kaitai Struct.

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

cp3-kaitai-zlib

zlib processors for Kaitai Struct, with support for streams of unknown size.

Installation

# npm
npm install cp3-kaitai-zlib

# or yarn
yarn add cp3-kaitai-zlib

Usage

# ./mydata.ksy
meta:
  id: my-data
  # ...etc, etc...
seq:
  - id: example_data
    size: 0
    process: cp3.kaitai.zlib.inflate(_io)

Inflate

Click to expand

cp3.kaitai.zlib.inflate

Decompresses the data. This will automatically detect gzip and zlib data (but not raw deflate data).

Example
seq:
  - id: glib_or_zlib_data_with_known_size
    size: 80
    process: cp3.kaitai.zlib.inflate

cp3.kaitai.zlib.inflate(windowBits)

Decompresses the data using the specified windowBits.

Parameters
  • windowBits
    • 0 To use the windowBits from the zlib header.
    • A number between 8 and 15 for zlib.
    • A number between -8 and -15 for raw deflate.
    • A number between 24 and 31 for gzip.
    • A number between 40 and 47 to auto-detect zlib and gzip.
    • See Notes on windowBits.
Example
seq:
  - id: raw_data_with_known_size
    size: 80
    process: cp3.kaitai.zlib.inflate(-15)

cp3.kaitai.zlib.inflate(stream)

Decompresses the stream until the stream ends or the end of the compressed data is reached. This will automatically detect gzip and zlib data (but not raw deflate data).

Parameters
  • stream - The kaitai stream to read from.
Example
seq:
  - id: glib_or_zlib_data_with_unknown_size
    size: 0
    process: cp3.kaitai.zlib.inflate(_io)

cp3.kaitai.zlib.inflate(stream, windowBits)

Decompresses the stream using the specified windowBits until the stream ends or the end of the compressed data is reached.

Parameters
  • stream - The kaitai stream to read from.
  • windowBits
    • 0 To use the windowBits from the zlib header.
    • A number between 8 and 15 for zlib.
    • A number between -8 and -15 for raw deflate.
    • A number between 24 and 31 for gzip.
    • A number between 40 and 47 to auto-detect zlib and gzip.
    • See Notes on windowBits.
Example
seq:
  - id: glib_data_with_unknown_size
    size: 0
    process: cp3.kaitai.zlib.inflate(_io, 31)

InflateRaw

Click to expand

cp3.kaitai.zlib.inflate_raw

Decompresses raw deflate data.

Example
seq:
  - id: raw_data_with_known_size
    size: 80
    process: cp3.kaitai.zlib.inflate_raw

cp3.kaitai.zlib.inflate_raw(windowBits)

Decompresses raw deflate data with the given windowBits. Note: this will automatically adjust windowBits for raw deflate decompression.

Parameters
Example
seq:
  - id: raw_data_with_known_size
    size: 80
    process: cp3.kaitai.zlib.inflate(15)

InflateZlib

Click to expand

cp3.kaitai.zlib.inflate_zlib

Decompresses zlib data.

Example
seq:
  - id: zlib_data_with_known_size
    size: 80
    process: cp3.kaitai.zlib.inflate_zlib

cp3.kaitai.zlib.inflate_zlib(stream)

Decompresses the zlib stream until the stream ends or the end of the compressed data is reached.

Parameters
  • stream - The kaitai stream to read from.
Example
seq:
  - id: zlib_data_with_unknown_size
    size: 0
    process: cp3.kaitai.zlib.inflate_zlib(_io)

cp3.kaitai.zlib.inflate_zlib(windowBits)

Decompresses zlib data using the specified windowBits. Note: this will automatically adjust windowBits for zlib decompression.

Parameters
Example
seq:
  - id: zlib_data_with_known_size
    size: 80
    process: cp3.kaitai.zlib.inflate_zlib(15)

cp3.kaitai.zlib.inflate_zlib(stream, windowBits)

Decompresses the zlib stream using the specified windowBits until the stream ends or the end of the compressed data is reached. Note: this will automatically adjust windowBits for zlib decompression.

Parameters
  • stream - The kaitai stream to read from.
  • windowBits - A number between 8 and 15. See Notes on windowBits.
Example
seq:
  - id: zlib_data_with_unnown_size
    size: 0
    process: cp3.kaitai.zlib.inflate_zlib(_io, 15)

InflateGzip

Click to expand

cp3.kaitai.zlib.inflate_gzip

Decompresses gzip data.

Example
seq:
  - id: gzip_data_with_known_size
    size: 80
    process: cp3.kaitai.zlib.inflate_gzip

cp3.kaitai.zlib.inflate_gzip(stream)

Decompresses the gzip stream until the stream ends or the end of the compressed data is reached.

Parameters
  • stream - The kaitai stream to read from.
Example
seq:
  - id: gzip_data_with_unknown_size
    size: 0
    process: cp3.kaitai.zlib.inflate_gzip(_io)

cp3.kaitai.zlib.inflate_gzip(windowBits)

Decompresses gzip data using the specified windowBits. Note: this will automatically adjust windowBits for gzip decompression.

Parameters
Example
seq:
  - id: gzip_data_with_known_size
    size: 80
    process: cp3.kaitai.gzip.inflate_gzip(15)

cp3.kaitai.zlib.inflate_gzip(stream, windowBits)

Decompresses the gzip stream using the specified windowBits until the stream ends or the end of the compressed data is reached. Note: this will automatically adjust windowBits for gzip decompression.

Parameters
  • stream - The kaitai stream to read from.
  • windowBits - A number between 8 and 15. See Notes on windowBits.
Example
seq:
  - id: gzip_data_with_unnown_size
    size: 0
    process: cp3.kaitai.zlib.inflate_gzip(_io, 15)

Notes on windowBits

The windowBits parameter in zlib is a bit confusing, here's what I know:

  • The windowBits parameter is the base two logarithm of the window size (the size of the history buffer).
  • windowBits is a number in the range 8..15
  • The window size used for decompressing needs to be greater than or equal to the window size used to compress the data.
  • windowBits can be adjusted to change the data format:
    • Left alone, data will be compressed/decompressed in zlib format (deflate data wrapped in a zlib header/trailer)
      • Setting windowBits to 0 will use the window size from the zlib header.
    • Negating windowBits will compress/decompress data as raw deflate data (data with no header or trailer).
    • Adding 16 to windowBits will compress/decompress data in gzip format (deflate data wrapped in a gzip header/trailer)
    • Adding 32 to windowBits will automatically detect gzip or zlib format when decompressing data

You can also check the zlib manual: https://www.zlib.net/manual.html#Advanced

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Keywords

FAQs

Package last updated on 29 Apr 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc