nodejs / nodejs/node

Sync alternative to `fs.openAsBlob`

Open
#65,462 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
JavaScript
Stars
122k
Forks
37.3k
Avg merge
4d 2h
Merged PRs (30d)
283

Description

What is the problem this feature will solve?

I'm making a cross-runtime file streaming library (that needs to be fast) and this would make it way easier to do so since Bun.file() is already sync.

So the code might look like this if my suggestion made it to node:fs:

const getFile: (path: string) => File = globalThis.Bun
  ? Bun.file
  : process.getBuiltinModule('fs').openAsWebFile;

// Usage
return new Response(getFile('./index.html'));
return new Response(getFile('./binary-data').slice(0, 100));
What is the feature you are proposing to solve the problem?

A new API, something like fs.openAsWebFile() that returns a File maybe?
It would have more info for the Response constructor to pick up as well.

What alternatives have you considered?

fs.createReadStream but that is also async and can be slower too.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing fs.openAsBlob and fs.createReadStream APIs and their documentation. Clarify the synchronous File API shape, metadata exposed to Response, and cross-runtime behavior before proposing an entry point. Done means the API design is agreed and its behavior is covered by tests and documentation.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.