GithubHelp home page GithubHelp logo

org-formation / worker-pool-aws-sdk Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 161 KB

Simple pool of workers to make API calls using the AWS SDK, while leveraging Worker threads from Node.js.

License: MIT License

TypeScript 100.00%
aws aws-sdk worker-threads piscinajs nodejs javascript typescript

worker-pool-aws-sdk's Introduction

Worker Pool for AWS SDK

License MIT contributions welcome Project Status: WIP โ€“ Initial development

Simple pool of workers to make API calls using the AWS SDK, while leveraging Node.js Worker threads.


GitHub Workflow Status Codecov GitHub release Node.js version

This library uses Node.js Worker threads (it depends more specifically on Piscina.js).

Usage

Example

const STS = require('aws-sdk/clients/sts')
const WorkerPoolAwsSdk = require('worker-pool-aws-sdk');

const workerPool = new WorkerPoolAwsSdk();

(async function () {
  const sts = new STS({ region: 'us-east-1' });
  const result = await workerPool.runAwsTask({
    name: 'sts',
    options: sts.config,
    operation: 'getCallerIdentity',
  });
  console.log(result);
  /*
    Prints result in this shape:
    {
      Account: "123456789012", 
      Arn: "arn:aws:iam::123456789012:user/Alice", 
      UserId: "AKIAI44QH8DHBEXAMPLE"
    }
  */
})();

Benchmark

Total duration of SAM local lambda with and without worker threads running on a Quad-core machine.

Without worker threads (40 calls)

  1. 20073.56 ms
  2. 20373.04 ms
  3. 23854.06 ms

With worker threads (40 calls)

  1. 23107.90 ms
  2. 24376.02 ms
  3. 24748.50 ms

Without worker threads (400 calls)

  1. 160664.08 ms
  2. 170526.89 ms

With worker threads (400 calls)

  1. 160884.88 ms
  2. 161868.81 ms

Development

Check out the master branch and install dependencies to get started:

npm ci --optional

Now that you have the dependencies installed, you can run this command in the root folder to compile the whole project.

npm run build

Linting is done via TypeScript ESLint and running unit tests via Jest. The continuous integration runs these checks, but you can run them locally with:

npm run lint
npm test

License

This library is licensed under the MIT License.

worker-pool-aws-sdk's People

Contributors

eduardomourar avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.