Skip to content
Serverless batch computing made simple.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci ci(nightly): Test faast.js works from a clean account on AWS and GCP,… May 4, 2019
.vscode Regenerate docs. Apr 16, 2019
build feat(options): Add option specifying environment variables available … May 4, 2019
docs feat(options): Add option specifying environment variables available … May 4, 2019
etc feat(options): Add option specifying environment variables available … May 4, 2019
examples Update website with new branding and faast API. Apr 18, 2019
measurements Add more documentation. Mar 18, 2019
src feat(options): Add option specifying environment variables available … May 4, 2019
test-perf Remove the module path argument from faast, which is probably the big… Apr 16, 2019
test feat(options): Add option specifying environment variables available … May 4, 2019
types Upgrade api-extractor and api-documenter, and typescript dependencies. Apr 5, 2019
website docs(website): More adjustments to blog post. May 2, 2019
.gitignore Add test-release script to package a tarball and ensure it works. To … Apr 24, 2019
CODE_OF_CONDUCT.md Add code of conduct and contributing instructions. Apr 1, 2019
CONTRIBUTING.md Change GitHub org to `faastjs` Apr 4, 2019
LICENSE Fill in blanks in license file. Make sure package.json specifies Apac… Apr 4, 2019
README.md docs(blog): Draft blog post (#27) May 2, 2019
api-extractor.json prep for npm publish Apr 23, 2019
codecov.yml ci(codecov): Codecov should fail less than patches aren't 100% covered. May 1, 2019
index.ts Fix typo in API docs. Apr 23, 2019
package-lock.json feat(options): Add option specifying environment variables available … May 4, 2019
package.json Merge branches 'master' and 'master' of github.com:faastjs/faast.js May 3, 2019
tsconfig.json Add test-release script to package a tarball and ensure it works. To … Apr 24, 2019
tslint.json Change garbage collection options from a boolean true/false to a thre… Apr 15, 2019

README.md

faast.js

License CircleCI codecov Codacy Badgesemantic-release

Faast.js makes regular functions callable as serverless functions on AWS Lambda and Google Cloud. It handles the details of uploading your code, creating cloud infrastructure, and cleaning up. Scale up your functions to a thousand cores in seconds 🚀

Faast.js is a pure library with no service dependencies, operational overhead, or unnecessary complexity.

Installation

Faast.js requires node version 8+.

$ npm install faastjs

Example

First write the functions you want to run in a serverless function. Make sure to export them:

// functions.ts
export function hello(name: string) {
    return "hello " + name;
}

Use faast.js to turn this into a serverless function:

// main.ts
import { faast } from "faastjs";
import * as funcs from "./functions";

(async () => {
    const m = await faast("aws", funcs);
    const { hello } = m.functions;
    const result = await hello("world!");
    console.log(result);
    await m.cleanup();
})();

Make 1000 concurrent calls if you like:

const promises: string[] = [];
for (let i = 0; i < 1000; i++) {
    promises.push(hello(`world ${i}!`));
}
await Promise.all(promises);

How much did that cost...?

const cost = await m.costSnapshot();
console.log(`$${cost.total()}`);

Relax. It's just half a penny:

$0.00420858

Features

  • Frictionless. Faast.js takes care of packaging your code, setting up IAM roles, and other infrastructure complexity. Run your code on a thousand cores in seconds. All you need is an AWS or GCP account.
  • Scalable. Use serverless functions to scale your batch jobs up to thousands of cores.
  • Cost-effective. Understand and optimize your workload costs in real time. Pay only for compute time actually used.
  • Ephemeral. No clusters or services to manage. Faast.js creates the infrastructure it uses on the fly and cleans up when it's done.
  • Productive. First class support for TypeScript and JavaScript. Type safety, documentation, and extensive testing are part of our DNA.
  • Multi-cloud: Built-in support for AWS Lambda and Google Cloud Functions, as well as local processing mode when you don't have network access. Switch with one line of code.

Ready to learn more?

Check out our getting started documentation.

Work through some examples

Review the detailed API documentation.

Join our slack channel. Already joined? sign in.

Follow us on twitter.

Contributing

See contributing.

You can’t perform that action at this time.