Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

@shelf/aws-lambda-brotli-unpacker

1.0.0 • Public • Published

aws-lambda-brotli-unpacker CircleCI

Unpacks large Lambda binaries to /tmp, such as Tesseract, LibreOffice, Google Chrome, etc

Inspired by chrome-aws-lambda

Used in projects: aws-lambda-tesseract

Install

$ yarn add @shelf/aws-lambda-brotli-unpacker

Version 1.x works with Node 10.x & 12.x only. For Node 8.10 use v0.0.2

Test

Needs Docker installed.

$ npm test

Usage

Q: Why do I need this package?

A: It helps if you want to deploy pre-compiled software to use in Lambda. See list of projects where it is used above.

Q: Why bother?

A: Lambda environment has limited software installed. This package helps ship large binaries compiled for Lambda which unpack to /tmp folder when Lambda starts.

Q: Why /tmp?

A: Lambda has 500 MB of storage in /tmp

Q: Why brotli?

A: This compression algorithm is known for great speed/size ration. Perfect for scarce Lambda resources.

Example

const {unpack} = require('@shelf/aws-lambda-brotli-unpacker');
const {execSync} = require('child_process');
 
const inputPath = path.join(__dirname, '..', 'bin', 'tt.tar.br'); // for example, tesseract
const outputPath = '/tmp/tesseract/tesseract';
 
module.exports.handler = async event => {
  await unpack({inputPath, outputPath});
 
  execSync(`${outputPath} -l eng image.png`);
};

License

MIT © Shelf

Keywords

Install

npm i @shelf/aws-lambda-brotli-unpacker

DownloadsWeekly Downloads

1,847

Version

1.0.0

License

MIT

Unpacked Size

6.25 kB

Total Files

7

Last publish

Collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar