@unikvs/compression
バイト列を指定形式で圧縮・展開するミドルウェア @unikvs/compression の使い方を説明します。
概要
バイト列を指定した形式で圧縮・展開するミドルウェアです。Middleware
このミドルウェアは単発の読み書きとストリームのどちらも透過的に変換し、呼び出し側の型を変えません。
nameは"Compression"です。isOpenはつねにtrueです。- 使える形式は実行環境の
CompressionStreamとDecompressionStreamに依存します。
インストールは次のコマンドで行います。
npm install @unikvs/compressionpnpm add @unikvs/compressionyarn add @unikvs/compressionbun add @unikvs/compressionnub add @unikvs/compressionaube add @unikvs/compression使い方
Compression は IMiddleware を実装しています。UniKvs には use() で渡します。
import { Compression } from "@unikvs/compression";
コンストラクターの引数は次のとおりです。
プロパティ型
formatCompressionFormat
使用する圧縮形式です。`CompressionStream` と `DecompressionStream` の両方で使える形式を指定します。
型
CompressionFormat以下は、バイト列を gzip で圧縮して保存し、読み取り時に展開して戻す例です。
import { Compression } from "@unikvs/compression";
import { Memory } from "@unikvs/memory";
import * as unikvs from "unikvs";
const kvs = new unikvs.Builder<{ file: unikvs.Value<Uint8Array> }>()
.use(new Compression("gzip"))
.persist(new Memory())
.build();
await kvs.open();
await kvs.set("file", new Uint8Array([0x01, 0x02, 0x03]));
const file = await kvs.get("file");
await kvs.close();
データ型
| メソッド | 入力 | 出力 |
|---|---|---|
encode |
Uint8Array<ArrayBuffer> |
Uint8Array<ArrayBuffer> |
decode |
Uint8Array<ArrayBuffer> |
Uint8Array<ArrayBuffer> |
encodeStream |
Uint8Array<ArrayBuffer> |
Uint8Array<ArrayBuffer> |
decodeStream |
Uint8Array<ArrayBuffer> |
Uint8Array<ArrayBuffer> |
encodeはバイト列を指定形式で圧縮します。decodeは圧縮されたバイト列を指定形式で展開します。encodeStreamはストリームをCompressionStreamにそのまま通します。decodeStreamはストリームをDecompressionStreamにそのまま通します。- チャンクの区切りは圧縮器と展開器に任せます。
エラー
このパッケージ固有のエラーはありません。
対応しない形式を指定した場合や、破損したデータを展開した場合は、実行環境のネイティブエラーがそのまま伝播します。