# man > Compress::Raw::Bzip2

---
type: CommandReference
command: Compress::Raw::Bzip2
mode: perldoc
section: 3perl
source: perldoc
---

## Quick Reference

- `use Compress::Raw::Bzip2;` — load module
- `my ($bz, $status) = new Compress::Raw::Bzip2;` — create compressor (with options)
- `$status = $bz->bzdeflate($input, $output);` — compress data
- `$status = $bz->bzflush($output);` — flush pending data
- `$status = $bz->bzclose($output);` — finalize stream
- `my ($bz, $status) = new Compress::Raw::Bunzip2;` — create decompressor
- `$status = $bz->bzinflate($input, $output);` — decompress data
- `my $version = Compress::Raw::Bzip2::bzlibversion();` — get library version

## Name

`Compress::Raw::Bzip2` - Low-Level Interface to bzip2 compression library

## Synopsis

perl
use Compress::Raw::Bzip2;

my ($bz, $status) = new Compress::Raw::Bzip2 [OPTS]
    or die "Cannot create bzip2 object: $bzerno\n";
$status = $bz->bzdeflate($input, $output);
$status = $bz->bzflush($output);
$status = $bz->bzclose($output);

my ($bz, $status) = new Compress::Raw::Bunzip2 [OPTS]
    or die "Cannot create bunzip2 object: $bzerno\n";
$status = $bz->bzinflate($input, $output);

my $version = Compress::Raw::Bzip2::bzlibversion();
## Options

### Compressor (`new Compress::Raw::Bzip2`)

- `$appendOutput` — append compressed data to output buffer (default 1)
- `$blockSize100k` — block size for compression, 1-9 (default 1; 9 gives best compression but most memory)
- `$workfactor` — effort before fallback algorithm, 0-250 (default 0 = 30; lower values reduce worst-case time)

### Decompressor (`new Compress::Raw::Bunzip2`)

- `$appendOutput` — append uncompressed data to output buffer (default 1)
- `$consumeInput` — remove processed data from input buffer (default 0)
- `$small` — use memory-saving decompression algorithm (default 0; slower but memory drops to ~2300k)
- `$limitOutput` — limit output buffer size (default 0; enables `consumeInput`)
- `$verbosity` — ignored (default 0)

## Examples

### Compression

perl
use Compress::Raw::Bzip2;
my $input = "some data to compress";
my $output;
my ($bz, $status) = new Compress::Raw::Bzip2;
$status = $bz->bzdeflate($input, $output);
$status = $bz->bzclose($output);
### Decompression

perl
use Compress::Raw::Bzip2;
my $compressed = ...; # previously compressed data
my $output;
my ($bz, $status) = new Compress::Raw::Bunzip2;
$status = $bz->bzinflate($compressed, $output);
## Misc

- `my $version = Compress::Raw::Bzip2::bzlibversion();` — returns version of the underlying bzip2 library

## Constants

The following constants are exported:

perl
BZ_RUN, BZ_FLUSH, BZ_FINISH,
BZ_OK, BZ_RUN_OK, BZ_FLUSH_OK, BZ_FINISH_OK, BZ_STREAM_END,
BZ_SEQUENCE_ERROR, BZ_PARAM_ERROR, BZ_MEM_ERROR, BZ_DATA_ERROR,
BZ_DATA_ERROR_MAGIC, BZ_IO_ERROR, BZ_UNEXPECTED_EOF, BZ_OUTBUFF_FULL,
BZ_CONFIG_ERROR
## See Also

- [Compress::Zlib](http://localhost/phpMan.php/perldoc/Compress%3A%3AZlib/markdown)
- [IO::Compress::Bzip2](http://localhost/phpMan.php/perldoc/IO%3A%3ACompress%3A%3ABzip2/markdown), [IO::Uncompress::Bunzip2](http://localhost/phpMan.php/perldoc/IO%3A%3AUncompress%3A%3ABunzip2/markdown)
- [IO::Compress::FAQ](http://localhost/phpMan.php/perldoc/IO%3A%3ACompress%3A%3AFAQ/markdown)
- [Compress::Bzip2](http://localhost/phpMan.php/perldoc/Compress%3A%3ABzip2/markdown)
- [bzip2 source](https://sourceware.org/bzip2/)