@1000hz/smile
v0.0.0-alpha.c4830ab
Published
> A _la**s**t-**mile**_ session cache for Cloudflare Workers
Readme
smile :)
A last-mile session cache for Cloudflare Workers
Smile is a private HTTP cache implemented on Durable Objects. It brings your application's data close to the user to make repeated requests super-fast. It uses stale-while-revalidate caching by default when no Cache-Control directives are present in the request or response.
Installation
pnpm add @cloudflare/smileUsage
Include a new migration and Durable Object binding to Smile in your wrangler.toml:
[[migrations]]
tag = "v1"
new_sqlite_classes = ["Smile"]
[[durable_objects.bindings]]
name = "SMILE"
class_name = "Smile"Then get a stub to an instance of Smile inside of your Worker. Caches are scoped by the ID you use to instantiate your Durable Object, so it's recommended to use a session ID coming from the request. Then, simply fetch through your Smile instance and enjoy faster response times.
// worker.js
export { Smile } from '@cloudflare/smile'; // re-export the Durable Object class so it gets included in your Worker bundle
export default {
fetch(request, env, ctx) {
const sessionId = request.headers.get('x-session-id'); // In practice, you'll probably get the session ID from a cookie
const cacheId = env.SMILE.idFromName(sessionId);
const smile = env.SMILE.get(cacheId);
return smile.fetch(request);
},
};