압축 스트림 API를 사용하여 브라우저에서 압축 및 압축 해제

자체 압축 또는 압축 해제 라이브러리를 제공할 필요가 없는 소규모 웹 앱 작성

압축 스트림 API는 gzip 또는 deflate (또는 deflate-raw) 형식을 사용하여 데이터 스트림을 압축하고 압축 해제하는 데 사용됩니다.

기본 제공 JavaScript 애플리케이션은 압축 라이브러리를 포함할 필요가 없으므로 애플리케이션의 다운로드 크기가 더 작아집니다. 이제 안정적인 Chrome 및 Safari Technology Preview 이 유용한 API를 지원합니다. 데이터 압축은 아래와 같습니다.

const readableStream = await fetch('lorem.txt').then(
  (response) => response.body
);
const compressedReadableStream = readableStream.pipeThrough(
  new CompressionStream('gzip')
);

압축을 해제하려면 압축된 스트림을 압축 해제 스트림을 통해 파이핑합니다.

const decompressedReadableStream = compressedReadableStream.pipeThrough(
  new DecompressionStream('gzip')
);

데모

브라우저 지원

압축 스트림 API는 Chromium 80 및 Safari Technology Preview 152에서 지원됩니다. 다른 브라우저의 경우 CanIUse를 선택합니다.

감사의 말씀

UnsplashMatt Artz 히어로 이미지