Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

shelfio/aws-lambda-brotli-unpacker

Open more actions menu

Repository files navigation

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`);
};

Publish

$ git checkout master
$ yarn version
$ yarn publish
$ git push origin master --tags

License

MIT © Shelf

Morty Proxy This is a proxified and sanitized view of the page, visit original site.