Worker Tools are a collection of TypeScript libraries for writing web servers in Worker Runtimes such as Cloudflare Workers and Deno Deploy.
- π§ Worker Router β Complete routing solution that works across CF Workers, Deno and Service Workers
- π Worker Middleware β A suite of standalone HTTP server-side middleware with TypeScript support
- π Worker HTML β HTML templating and streaming response library
- π¦ Storage Area β Key-value store abstraction across Cloudflare KV, Deno and browsers.
- π Response Creators β Factory functions for responses with pre-filled status and status text
- π Stream Response β Use async generators to build streaming responses for SSE, etc...
- π₯ JSON Fetch β Drop-in replacements for Fetch API classes with first class support for JSON.
- π¦ JSON Stream β Streaming JSON parser/stingifier with 1st class support for WHATWG/web streams.
- π§± Structured JSON β Stringify and parse JavaScript values according to Structured Clone Algorithm
- πͺ Request Cookie Store β An implementation of the Cookie Store API for use in request handlers.
- β± Extendable Promise β A promise that can be delayed/extended via repeated calls to
waitUntil.
Worker Tools also includes a number of polyfills that help bridge the gap between different Worker Runtimes:
- βοΈ HTML Rewriter β Cloudflare's HTML Rewriter for use in Deno, browsers, etc...
- π Location Polyfill β A
Locationpolyfill for Cloudflare Workers. - π¦ Deno Fetch Event Adapter β Dispatches global
fetchevents using Denoβs native HTTP server.
Worker Tools also maintains a number of (web-) services:
- βοΈ workers.js.org β Educational site about the state of Worker Runtimes.
- π¦ ghuc.cc β Import modules directly from GitHub into Deno with a familiar API.
*[SSE]: Server Sent Events
Worker Tools can be used independently or as a web framework via Shed.
Deno users can import Worker Tools directly from GitHub as they are written in TypeScript with fully qualified import specifiers:
import * as shed from 'https://ghuc.cc/worker-tools/shed/index.ts'For other runtimes such as module bundlers, webpack or esbuild, Worker Tools are distributed as node-ified modules that can be installed via npm and behave like regular npm modules
npm install @worker-tools/shed