-
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add appropriate python exceptions (#8)
- Loading branch information
1 parent
2ad9716
commit 43cbce3
Showing
10 changed files
with
100 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
[package] | ||
name = "cramjam" | ||
version = "1.1.0" | ||
version = "1.2.0" | ||
authors = ["Miles Granger <[email protected]>"] | ||
edition = "2018" | ||
license-file = "LICENSE" | ||
|
@@ -14,6 +14,6 @@ crate-type = ["cdylib"] | |
pyo3 = { version = "0.10.1", features = ["extension-module"] } | ||
snap = "^1" | ||
brotli2 = "^0.3" | ||
lz4-compress = "^0.1" | ||
lz4 = "1" | ||
flate2 = "^1" | ||
zstd = "0.5.1+zstd.1.4.4" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,19 @@ | ||
use brotli2::read::{BrotliDecoder, BrotliEncoder}; | ||
use std::error::Error; | ||
use std::io::prelude::*; | ||
|
||
/// Decompress via Brotli | ||
pub fn decompress(data: &[u8]) -> Vec<u8> { | ||
pub fn decompress(data: &[u8]) -> Result<Vec<u8>, Box<dyn Error>> { | ||
let mut decoder = BrotliDecoder::new(data); | ||
let mut buf = vec![]; | ||
decoder.read_to_end(&mut buf).unwrap(); | ||
buf | ||
decoder.read_to_end(&mut buf)?; | ||
Ok(buf) | ||
} | ||
|
||
/// Compress via Brotli | ||
pub fn compress(data: &[u8], level: u32) -> Vec<u8> { | ||
pub fn compress(data: &[u8], level: u32) -> Result<Vec<u8>, Box<dyn Error>> { | ||
let mut encoder = BrotliEncoder::new(data, level); | ||
let mut buf = vec![]; | ||
encoder.read_to_end(&mut buf).unwrap(); | ||
buf | ||
encoder.read_to_end(&mut buf)?; | ||
Ok(buf) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,20 @@ | ||
use flate2::read::{DeflateDecoder, DeflateEncoder}; | ||
use flate2::Compression; | ||
use std::error::Error; | ||
use std::io::prelude::*; | ||
|
||
/// Decompress gzip data | ||
pub fn decompress(data: &[u8]) -> Vec<u8> { | ||
pub fn decompress(data: &[u8]) -> Result<Vec<u8>, Box<dyn Error>> { | ||
let mut decoder = DeflateDecoder::new(data); | ||
let mut buf = vec![]; | ||
decoder.read_to_end(&mut buf).unwrap(); | ||
buf | ||
decoder.read_to_end(&mut buf)?; | ||
Ok(buf) | ||
} | ||
|
||
/// Compress gzip data | ||
pub fn compress(data: &[u8], level: u32) -> Vec<u8> { | ||
pub fn compress(data: &[u8], level: u32) -> Result<Vec<u8>, Box<dyn Error>> { | ||
let mut buf = vec![]; | ||
let mut encoder = DeflateEncoder::new(data, Compression::new(level)); | ||
encoder.read_to_end(&mut buf).unwrap(); | ||
buf | ||
encoder.read_to_end(&mut buf)?; | ||
Ok(buf) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
use pyo3::create_exception; | ||
use pyo3::exceptions::Exception; | ||
|
||
create_exception!(cramjam, CompressionError, Exception); | ||
create_exception!(cramjam, DecompressionError, Exception); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,20 @@ | ||
use flate2::read::{GzDecoder, GzEncoder}; | ||
use flate2::Compression; | ||
use std::error::Error; | ||
use std::io::prelude::*; | ||
|
||
/// Decompress gzip data | ||
pub fn decompress(data: &[u8]) -> Vec<u8> { | ||
pub fn decompress(data: &[u8]) -> Result<Vec<u8>, Box<dyn Error>> { | ||
let mut decoder = GzDecoder::new(data); | ||
let mut buf = vec![]; | ||
decoder.read_to_end(&mut buf).unwrap(); | ||
buf | ||
decoder.read_to_end(&mut buf)?; | ||
Ok(buf) | ||
} | ||
|
||
/// Compress gzip data | ||
pub fn compress(data: &[u8], level: u32) -> Vec<u8> { | ||
pub fn compress(data: &[u8], level: u32) -> Result<Vec<u8>, Box<dyn Error>> { | ||
let mut buf = vec![]; | ||
let mut encoder = GzEncoder::new(data, Compression::new(level)); | ||
encoder.read_to_end(&mut buf).unwrap(); | ||
buf | ||
encoder.read_to_end(&mut buf)?; | ||
Ok(buf) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,22 @@ | ||
use std::error::Error; | ||
use std::io::{Read, Write}; | ||
|
||
/// Decompress lz4 data | ||
pub fn decompress(data: &[u8]) -> Vec<u8> { | ||
lz4_compress::decompress(data).unwrap() | ||
pub fn decompress(data: &[u8]) -> Result<Vec<u8>, Box<dyn Error>> { | ||
let mut decoder = lz4::Decoder::new(data)?; | ||
let mut buf = vec![]; | ||
decoder.read_to_end(&mut buf)?; | ||
let (_, result) = decoder.finish(); // Weird API... | ||
result?; | ||
Ok(buf) | ||
} | ||
|
||
/// Compress lz4 data | ||
pub fn compress(data: &[u8]) -> Vec<u8> { | ||
lz4_compress::compress(data) | ||
pub fn compress(data: &[u8], level: u32) -> Result<Vec<u8>, Box<dyn Error>> { | ||
let mut buf = vec![]; | ||
let mut encoder = lz4::EncoderBuilder::new().level(level).build(&mut buf)?; | ||
encoder.write_all(data)?; | ||
let (_, result) = encoder.finish(); // Weird API... | ||
result?; | ||
Ok(buf) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,31 @@ | ||
use snap::raw::{Decoder, Encoder}; | ||
use snap::read::{FrameDecoder, FrameEncoder}; | ||
use std::io::Read; | ||
use std::io::{Error, Read}; | ||
|
||
/// Decompress snappy data raw | ||
pub fn decompress_raw(data: &[u8]) -> Vec<u8> { | ||
pub fn decompress_raw(data: &[u8]) -> Result<Vec<u8>, snap::Error> { | ||
let mut decoder = Decoder::new(); | ||
decoder.decompress_vec(data).unwrap() | ||
decoder.decompress_vec(data) | ||
} | ||
|
||
/// Compress snappy data raw | ||
pub fn compress_raw(data: &[u8]) -> Vec<u8> { | ||
pub fn compress_raw(data: &[u8]) -> Result<Vec<u8>, snap::Error> { | ||
let mut encoder = Encoder::new(); | ||
encoder.compress_vec(data).unwrap() | ||
encoder.compress_vec(data) | ||
} | ||
|
||
/// Decompress snappy data framed | ||
pub fn decompress(data: &[u8]) -> Vec<u8> { | ||
pub fn decompress(data: &[u8]) -> Result<Vec<u8>, Error> { | ||
let mut buf = vec![]; | ||
let mut decoder = FrameDecoder::new(data); | ||
decoder.read_to_end(&mut buf).unwrap(); | ||
buf | ||
decoder.read_to_end(&mut buf)?; | ||
Ok(buf) | ||
} | ||
|
||
/// Decompress snappy data framed | ||
pub fn compress(data: &[u8]) -> Vec<u8> { | ||
pub fn compress(data: &[u8]) -> Result<Vec<u8>, Error> { | ||
let mut buf = vec![]; | ||
let mut encoder = FrameEncoder::new(data); | ||
encoder.read_to_end(&mut buf).unwrap(); | ||
buf | ||
encoder.read_to_end(&mut buf)?; | ||
Ok(buf) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,11 @@ | ||
use std::io::Error; | ||
|
||
/// Decompress gzip data | ||
pub fn decompress(data: &[u8]) -> Vec<u8> { | ||
zstd::stream::decode_all(data).unwrap() | ||
pub fn decompress(data: &[u8]) -> Result<Vec<u8>, Error> { | ||
zstd::stream::decode_all(data) | ||
} | ||
|
||
/// Compress gzip data | ||
pub fn compress(data: &[u8], level: i32) -> Vec<u8> { | ||
zstd::stream::encode_all(data, level).unwrap() | ||
pub fn compress(data: &[u8], level: i32) -> Result<Vec<u8>, Error> { | ||
zstd::stream::encode_all(data, level) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters