{"id":21176822,"url":"https://github.com/nullserve/faaskit","last_synced_at":"2025-07-09T21:32:23.628Z","repository":{"id":62319940,"uuid":"155324602","full_name":"nullserve/faaskit","owner":"nullserve","description":"A lightweight middleware framework for functions as a service","archived":false,"fork":false,"pushed_at":"2022-10-30T18:49:43.000Z","size":1540,"stargazers_count":3,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-05T22:07:29.452Z","etag":null,"topics":["aws","aws-lambda","aws-sam","azure","azure-functions","cloudflare","cloudflare-workers","faas","faas-framework","faaskit","gcp","gcp-cloud-functions","hacktoberfest","lambda","middleware","nullserve","sam","severless"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nullserve.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-30T04:30:56.000Z","updated_at":"2022-10-30T14:14:20.000Z","dependencies_parsed_at":"2023-01-21T00:01:41.446Z","dependency_job_id":null,"html_url":"https://github.com/nullserve/faaskit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nullserve/faaskit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullserve%2Ffaaskit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullserve%2Ffaaskit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullserve%2Ffaaskit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullserve%2Ffaaskit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nullserve","download_url":"https://codeload.github.com/nullserve/faaskit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullserve%2Ffaaskit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264503951,"owners_count":23618762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-lambda","aws-sam","azure","azure-functions","cloudflare","cloudflare-workers","faas","faas-framework","faaskit","gcp","gcp-cloud-functions","hacktoberfest","lambda","middleware","nullserve","sam","severless"],"created_at":"2024-11-20T17:12:15.349Z","updated_at":"2025-07-09T21:32:23.068Z","avatar_url":"https://github.com/nullserve.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FaaSKit\n\n[![npm version](https://img.shields.io/npm/v/@faaskit/core.svg?logo=npm\u0026style=popout-square)](https://www.npmjs.com/package/@faaskit/core)\n\n_A lightweight functional middleware framework for AWS lambda that stays out of your way and lets you build kick-ass, composable middleware for your lambdas._\n\nZero dependencies. Functional interface. Reusable code.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Project Purpose](#project-purpose)\n- [Packages](#packages)\n\n## Installation\n\nTo use `faaskit` in your nodejs project,\n\n```bash\nyarn add @faaskit/core\n```\n\nor\n\n```bash\nnpm i @faaskit/core\n```\n\n`@faaskit/core` has no dependencies itself (peer or otherwise), so that's it!\n\n## Project Purpose\n\nThe goal of this project is to provide a very thin middleware framework for functions as a service.\nWithout a well-established middleware pattern, too many bad habits can fossilize from one-off functions into bad middleware.\nThis library provides a `compose` function for creating coposition-style middleware and wrapping around a handler without having deeply nested code.\nThis function wrapping pattern allows explicitly definied, functional and onion-style (a well-established style) middleware.\n`@faaskit/core` also builds on the basic compose function, offering a few patterns that the author(s) have seen in the wild for rapid customization.\n\nToo many middlework frameworks enforce bad designs and opinions onto their users.\n`faaskit` doesn't impose much at all and it stays out of your way once you define your stack.\n\n## Packages\n\nFaasKit provides a number of small packages so developers can easily pick and choose features and middleware which are applicable to their use case.\nThe packages are organized using the following naming scheme:\n\n* `adapter-\u003cname\u003e`: Adapter packages are used for changing the structure of the call site.\nThese are useful for hooking up FaasKit to existing systems in a variety of ways.\nIncluding different function runtimes, different middleware stacks or existing legacy functions.\n* `middleware-\u003cname\u003e`: Middleware packages are used to provide some common middleware functionality.\nThey typically identify their use case in the name of the middleware.\nThese middleware are common patterns and expected workflow that have already been established and should be easy to use just by installing the package and composing the middleware into a middleware stack.\n* `\u003cname\u003e`: Common goal packages are named without any prefix and are designed around a common goal of middleware.\nFor example, the `http` package defines a number of utility functions, middleware, contexts and adapters which help anyone using `http` and will be used by other external packages including `middleware-\u003cname\u003e` packages and `adapter-\u003cname\u003e` packages.\nTypically these packages are foundational and used by middleware authors to create a consistent experience between FaaS platforms.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnullserve%2Ffaaskit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnullserve%2Ffaaskit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnullserve%2Ffaaskit/lists"}