Workers - The Node.js and Web File System APIs in Workers
10mo ago
Source
CloudflareWorkers - The Node.js and Web File System APIs in Workerscloudflare.comImplementations of the node:fs module and the Web File System API are now available in Workers. Using the node:fs module The node:fs module provides access to a virtual file system in Workers. You can use it to read and write files, create directories, and perform other file system operations. The virtual file system is ephemeral with each individual request havig its own isolated temporary file space. Files written to the file system will not persist across requests and will not be shared across requests or across different Workers. Workers running with the nodejs_compat compatibility flag will have access to the node:fs module by default when the compatibility date is set to 2025-09-01 or later. Support for the API can also be enabled using the enable_nodejs_fs_module compatibility flag together with the nodejs_compat flag. The node:fs module can be disabled using the disable_nodejs_fs_module compatibility flag. import fs from "node:fs" ; const config = JSON . parse ( fs . readFileSync ( "/bundle/config.json" , "utf-8" )) ; export default { async fetch ( request ) { return new Response ( `Config value: ${ config . value } ` ) ; }, }; There are a number of initial limitations to the node:fs implementation: The glob APIs (e.g. fs.globSync(...) ) are not implemented. The file watching APIs (e.g. fs.watch(...) ) are not implemented. The file timestamps (modified time, access time, etc) are only partially supported. For now, these will always return the Unix epoch. Refer to the Node.js documentation for more information on the node:fs module and its APIs. The Web File System API The Web File System API provides access to the same virtual file system as the node:fs module, but with a different API surface. The Web File System API is only available in Workers running with the enable_web_file_system compatibility flag. The nodejs_compat compatibility flag is not required to use the Web File System API. const root = navigator . storage . getDirectory () ; export default { async fetch ( request ) { const tmp = await root . getDirectoryHandle ( "/tmp" ) ; const file = await tmp . getFileHandle ( "data.txt" , { create : true } ) ; const writable = await file . createWritable () ; const writer = writable . getWriter () ; await writer . write ( "Hello, World!" ) ; await writer . close () ; return new Response ( "File written successfully!" ) ; }, }; As there are still some parts of the Web File System API that are not fully standardized, there may be some differences between the Workers implementation and the implementations in browsers.
You might also wanna read
Introducing @platformatic/vfs: A Virtual File System for Node.js
The article announces @platformatic/vfs, a new virtual file system for Node.js that addresses long-standing limitations in the runtime. It e
blog.platformatic.dev·3mo agoOpenWorkers: Open-Source Runtime for Self-Hosted Cloudflare Workers Implementation
OpenWorkers is an open-source runtime that enables developers to run Cloudflare Workers-style JavaScript applications on their own infrastru
fs-code API Documentation: PyFilesystems for GitLab, GitHub, and Git
This is API documentation for fs-code, a Python library that provides PyFilesystems interfaces for GitLab, GitHub, and Git repositories. It
danjou.gitlab.io·9mo ago
Bun v1.0.32
bun.com·2y ago
Bun v0.7.0
bun.com·2y ago
Bun v1.1.25
bun.com·1y ago

Comments
Sign in to join the conversation.
No comments yet. Be the first.