Skip to content

Commit 7e40311

Browse files
committed
test: compiling now
1 parent b2807c0 commit 7e40311

File tree

4 files changed

+34
-4
lines changed

4 files changed

+34
-4
lines changed

Cargo.toml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ napi = { version = "2.1.0", default-features = false, features = [
1313
"async"
1414
] }
1515
napi-derive = "2.1.0"
16-
zstd = "0.10.0+zstd.1.5.2"
16+
async-compression = { version = "0.3.12", features = [
17+
"tokio",
18+
"zstd"
19+
] }
20+
tokio = { version = "1", features = [
21+
"full"
22+
] }
1723

1824
[build-dependencies]
1925
napi-build = "1.2.1"

src/lib.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,28 @@
11
#[macro_use]
22
extern crate napi_derive;
3+
extern crate tokio;
34

45
use napi::bindgen_prelude::*;
6+
use async_compression::tokio::bufread::ZstdDecoder;
7+
use async_compression::tokio::write::ZstdEncoder;
8+
use tokio::io::AsyncReadExt as _;
9+
use tokio::io::AsyncWriteExt as _;
10+
use tokio::io::{BufReader, BufWriter};
511

612
#[napi]
713
async fn compress(buffer: Buffer) -> Result<Buffer> {
8-
Ok(buffer)
14+
let input: Vec<u8> = buffer.into();
15+
let mut encoder = ZstdEncoder::new(BufWriter::new(input));
16+
let mut output: Vec<u8> = vec![];
17+
encoder.write_all(&mut output).await?;
18+
Ok(Buffer::from(output))
919
}
1020

1121
#[napi]
1222
async fn decompress(buffer: Buffer) -> Result<Buffer> {
13-
Ok(buffer)
23+
let input: Vec<u8> = buffer.into();
24+
let mut decoder = ZstdDecoder::new(BufReader::new(input.as_slice()));
25+
let mut output: Vec<u8> = vec![];
26+
decoder.read_to_end(&mut output).await?;
27+
Ok(Buffer::from(output))
1428
}

test/debug.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const { compress, decompress } = require('../index');
2+
3+
async function run() {
4+
const buffer = Buffer.from('test');
5+
const compressed = await compress(buffer);
6+
const decompressed = await decompress(compressed);
7+
console.log(compressed, decompressed);
8+
}
9+
10+
run();

test/index.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ describe('zstd', () => {
55
describe('#compress', () => {
66
const buffer = Buffer.from('test');
77

8-
it('returns the buffer', async () => {
8+
it('returns a compressed buffer', async () => {
99
const result = await compress(buffer);
1010
expect(result).to.deep.equal(buffer);
1111
});

0 commit comments

Comments
 (0)