
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@memofs/adapter-r2
Advanced tools
@memofs/adapter-r2Cloudflare R2 blob adapter for MemoFS remote blob memory stores.
Cloudflare R2 blob adapter for MemoFS's remote-blob memory store. It
implements core's provider-neutral BlobClient contract over a Cloudflare R2
bucket binding so the MemoFS runtime can read/write its canonical .memofs/
files against R2 blobs — running the same runtime on hosted infra as on a
local filesystem.
This package owns blob storage only. The matching metadata adapter
(createTursoMetadataStore) lives in @memofs/adapter-turso.
The two are intentionally decoupled — a provider-neutral adapter shape, not a
bundled N×M adapter — so a Node self-hoster can pair this blob client with any
MetadataStore, or pair a future @memofs/adapter-s3 blob client with the
Turso metadata store, without touching the runtime.
npm install @memofs/adapter-r2
Requires Node.js >= 22.
Peer dependency: @cloudflare/workers-types (for the R2Bucket type). It is an
optional peer — you only need it where you author against the binding.
import { RemoteBlobMemoryStore } from "@memofs/core";
import { createR2BlobClient } from "@memofs/adapter-r2";
import { createTursoMetadataStore } from "@memofs/adapter-turso";
const store = new RemoteBlobMemoryStore({
blobClient: createR2BlobClient({ binding: env.BLOBS }),
metadata: createTursoMetadataStore({ client: db.$client, projectId }),
rootKey: projectId,
});
// The store implements MemoryStore — pass it to the runtime:
// createHostedRuntime({ store, projectId, ... })
createR2BlobClient(options)Creates a BlobClient backed by a Cloudflare R2 bucket binding.
| Option | Type | Required | Description |
|---|---|---|---|
binding | R2Bucket | Yes | The Cloudflare R2 bucket binding (env.BLOBS). |
Returns a BlobClient with get, put, and delete — the three methods
core's RemoteBlobMemoryStore calls.
Blobs are written keyed by their sha256 — the key core's
RemoteBlobMemoryStore computes. This matches the cloud file replica's
r2_key === sha256 layout exactly, so the runtime and the sync handler share
the same R2 objects rather than a parallel store. Identical content across
paths or projects shares one blob.
This package owns the Cloudflare R2 blob client implementation. It does not own
the MemoFS core contracts (BlobClient / MetadataStore /
RemoteBlobMemoryStore), the metadata adapter, other adapters, or the R2
service itself.
See our central Contributing Guide and development scripts for details on formatting, linting, and testing within the monorepo.
MIT
FAQs
Cloudflare R2 blob adapter for MemoFS remote blob memory stores.
The npm package @memofs/adapter-r2 receives a total of 1 weekly downloads. As such, @memofs/adapter-r2 popularity was classified as not popular.
We found that @memofs/adapter-r2 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.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.