
Security News
The AI Industry Is Betting on Open Weights
An open letter signed by 50 companies, from NVIDIA and Microsoft to Mistral and Hugging Face, urges Washington not to restrict open weight AI.
Cloudflare adapter for fate.
cf-fate provides a Durable Object-backed Server-Sent Events transport for Fate
live views in plain Cloudflare Workers projects.
For a new Cloudflare Workers app, start from the Cloudflare template:
vp create fate my-app --template cloudflare
Use Vue instead of React with:
vp create fate my-app --template cloudflare --framework vue
For an existing Cloudflare Workers project, add the packages directly:
pnpm add @nkzw/fate react-fate cf-fate
For Vue clients, replace react-fate with vue-fate.
Export the live Durable Object class from your Worker entry and bind it in
wrangler.jsonc.
import { createCloudflareFateLiveDurableObject } from 'cf-fate/server';
export const FateLiveDurableObject = createCloudflareFateLiveDurableObject({
binding: 'FATE_LIVE',
});
{
"compatibility_flags": ["nodejs_compat"],
"durable_objects": {
"bindings": [
{
"name": "FATE_LIVE",
"class_name": "FateLiveDurableObject",
},
],
},
"migrations": [
{
"tag": "fate-live-v1",
"new_sqlite_classes": ["FateLiveDurableObject"],
},
],
}
import { createFateServer } from '@nkzw/fate/server';
import { createCloudflareFateLive, defineCloudflareFateLiveStream } from 'cf-fate/server';
export const fateStream = defineCloudflareFateLiveStream({
allowAnonymousControl: true,
binding: 'FATE_LIVE',
id: 'fate',
});
export const fateLive = createCloudflareFateLive();
export const { live } = fateLive;
export const fateServer = createFateServer({
live,
// context,
// roots,
// sources,
});
import { defineCloudflareFateLiveRoute, defineCloudflareFateRoute } from 'cf-fate/server';
import { fateStream, fateLive, fateServer } from './fate/server';
const fateRoute = defineCloudflareFateRoute(fateServer, fateLive, { stream: fateStream });
const fateLiveRoute = defineCloudflareFateLiveRoute(fateStream);
export default {
fetch(request, env, ctx) {
const url = new URL(request.url);
if (url.pathname === '/fate') {
return fateRoute.fetch(request, env, ctx);
}
if (url.pathname === '/fate-live') {
return fateLiveRoute.fetch(request, env, ctx);
}
return new Response('Not Found', { status: 404 });
},
};
Use the Fate Vite plugin with the Cloudflare transport:
fate({
module: './src/fate/server.ts',
transport: 'cloudflare',
});
Then create the generated client with your Worker endpoints:
createFateClient({
liveUrl: 'http://localhost:8787/fate-live',
url: 'http://localhost:8787/fate',
});
cf-fate uses Server-Sent Events for live updates and Durable Objects for
cross-request topic fanout. Delivery is live and at-most-once; applications that
need lossless replay should persist events or refetch authoritative data after a
reconnect.
FAQs
Cloudflare adapter for fate.
The npm package cf-fate receives a total of 90 weekly downloads. As such, cf-fate popularity was classified as not popular.
We found that cf-fate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
An open letter signed by 50 companies, from NVIDIA and Microsoft to Mistral and Hugging Face, urges Washington not to restrict open weight AI.

Security News
/Research
A fake corepack.org site is impersonating the Node.js tool and delivers an infostealer and proxyware to developers who download it.

Research
/Security News
A large-scale campaign abused GitHub Actions in compromised repositories to exploit CVE-2026-41940 in cPanel and WHM and steal server credentials.