Tiny AWS Signature Version 4 library for the browser

Downloads in past


1.0.05 years ago5 years agoMinified + gzip package size for aws4-tiny in KB


Build Status GitHub license sponsored by sponsored by
Minimal browser bundle with zero dependencies for signing requests using Amazon's AWS Signature Version 4.
This package is largely based off of the excellent work of @mhart's aws4. While using aws4 in the browser is possible, its footprint is rather large (325kb, or 100kb gzipped) due to the number of polyfills that need to be pulled in. aws4-tiny provides a few hand-crafted polyfills that were optimized for use with aws4.
aws4-tiny supports all modern browsers and IE 9+ at just under 7kb (gzipped). The following browser versions are supported:
| Browser | Version | | ------- | ------- | | IE | 9+ | | Edge | 15+ | | Firefox | 47+ | | Chrome | 49+ |


The package is available as UMD build which let's you include the bundle directly using a <script> tag or you can use your preferred module loader.
npm install --save aws4

<script src="">
  aws4.sign(opts, credentials);

import aws4 from 'aws4-tiny';

aws4.sign(opts, credentials)


aws4.sign(opts, credentials)
See aws4 API for details on the opts object.
Example using fetch:
var credentials = {
  accessKeyId: '',
  secretAccessKey: '',
  sessionToken: '', // only required for temporary credentials

var request = aws4.sign({
  service: 'execute-api',
  region: 'us-east-2',
  host: '',
  path: '/v1/items',
}, credentials);

fetch('', request);


aws4.fetch(url , opts, credentials)
aws4.fetch(opts, credentials)
aws4.fetch is a convenience wrapper around signing a request with aws4 and then sending it off using fetch.
aws4.fetch('', {
  service: 'execute-api',
  region: 'us-east-2',
}, credentials);

  service: 'sqs',
  region: 'us-east-2',
  path: '/?Action=ListQueues',
}, credentials);

aws4.fetch(Request, credentials)


aws4-tiny passes the AWS Sig V4 Test Suite. You can run it youself at
(open the dev console to see the test results). We also run automated tests on Browser Stack.


Can I use aws4-tiny with NodeJS?
Yes, but it's not recommended. The aws4 package is actually much smaller and faster in a Node environment.


Thanks to @mhart for aws4 which made this package possible.
Automated browser testing proudly supported by
Browser Stack