frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Why Node.js needs a virtual file system

https://blog.platformatic.dev/why-nodejs-needs-a-virtual-file-system
54•voctor•1h ago

Comments

petcat•1h ago
Are people still building new projects on Node.js? I would have thought the ecosystem was moving to deno or bun now
rrr_oh_man•1h ago
Why?
kitsune1•1h ago
The delusion in this comment is insane.
jitl•1h ago
loud people on twitter are always switching to the new hotness. i personally can't see myself using bun until its reputation for segfaults goes away after a few more years of stabilizing. deno seems neat and has been around for longer, but its node compatibility story is still evolving; i'm also giving it another year before i try it.
_flux•32m ago
Wow, I thought you were exaggerating, but no: https://github.com/oven-sh/bun/issues?q=is%3Aissue%20state%3...

Open 80, closed 492.

dzogchen•1h ago
I don't really understand what the value proposition of Bun and Deno is. And I see huge problems with their governance and long-term sustainability.

Node.js on the other hand is not owned or controlled by one entity. It is not beholden to the whims of investors or a large corporation. I have contributed to Node.js in the past and I was really impressed by its rock-solid governance model and processes. I think this an under-appreciated feature when evaluating tech options.

packetlost•59m ago
Deno has some pretty nice unique features like sandboxing that, afaik, don't exist in other runtimes (yet). It's enough of a draw that it's the recommended runtime for projects like yt-dlp: https://github.com/yt-dlp/yt-dlp/issues/14404
worksonmine•19m ago
Node has sandboxing these days: https://nodejs.org/api/permissions.html
zamadatix•15m ago
If one gets nothing from them directly, they've at least been a good kick to get several features into Node. It's almost like neovim was to vim, perhaps to a lesser extent.
PaulHoule•1h ago
Would be nice if node packages could be packed up in ZIP files so to avoid the security/metadata tax for small file access on Windows.
MarleTangible•1h ago
The number of files in the node modules folder is crazy, any amount of organization that can tame that chaos is welcomed.
koolba•26m ago
And if you thought malware hiding in a mess of files was bad, just wait till you see it in two layers of container files.
fmorel•1h ago
I remember when Firefox started putting everything into jars for similar reasons.

https://web.archive.org/web/20161003115800/https://blog.mozi...

sheept•49m ago
Would it work to run a bundler over your code, so all (static) imports are inlined and tree shaken?
Dangeranger•35m ago
There are alternative package managers like Yarn that use zip files as a way to store each Node package.[0]

[0] https://yarnpkg.com/advanced/pnp-spec#zip-access

MBCook•25m ago
It’s insane to me that node works how it does. Zip files make so much more sense, I really liked that about Yarn.
moralestapia•1h ago
>Let me be honest: a PR that size would normally take months of full-time work. This one happened because I built it with Claude Code.

The node.js codebase and standard library has a very high standard of quality, hope that doesn't get washed out by sloppy AI-generated code.

OTOH, Matteo is an excellent engineer and the community owes a lot to him. So I guess the code is solid :).

austin-cheney•1h ago
Most of the 4 justifications mentioned sound like mitigations of otherwise bad design decisions. JavaScript in the browser went down this path for the longest time where new standards were introduced only to solve for stupid people instead of actually introducing new capabilities that were otherwise unachievable.

I do see some original benefits to a VFS though, bad application decisions aside, but they are exceedingly minor.

As an aside I think JavaScript would benefit from an in-memory database. This would be more of language enhancement than a Node.js enhancement. Imagine the extended application capabilities of an object/array store native to the language that takes queries using JS logic to return one or more objects/records. No SQL language and no third party databases for stuff that you don't want to keep in offline storage on a disk.

wccrawford•59m ago
I'm not convinced that allowing Node to import "code generated at runtime" is actually a good thing. I think it should have to go through the hoops to get loaded, for security reasons.

I like the idea of it mocking the file system for tests, but I feel like that should probably be part of the test suite, not Node.

The example towards the end that stores data in a sqlite provider and then saves it as a JSON file is mind-boggling to me. Especially for a system that's supposed to be about not saving to the disk. Perhaps it's just a bad example, but I'm really trying to figure out how this isn't just adding complexity.

TheRealPomax•43m ago
But then you go "hang on, doesn't ESM exist?" and you realize that argument 4 isn't even true. You can literally do what this argument says you can't, by creating a blob instead of "writing a temp file" and then importing that using the same dynamic import we've had available since <checks his watch> 2020.
notnullorvoid•12m ago
There's also a module expression proposal, that would remove the need to use blob imports.

https://github.com/tc39/proposal-module-expressions

westurner•43m ago
Is node::vfs the new solution for JupyterLite filesystems?

From https://github.com/jupyterlite/jupyterlite/issues/949#issuec... :

> Ideally, the virtual filesystem of JupyterLite would be shared with the one from the virtual terminal.

emscripten-core/emscripten > "New File System Implementation": https://github.com/emscripten-core/emscripten/issues/15041#i... :

> [ BrowserFS, isomorphic-git/lightningfs, ]

pyodide/pyodide: "Native file system API" #738: https://github.com/pyodide/pyodide/issues/738 re: [Chrome,] Filesystem API :

> jupyterlab-git [should work with the same VFS as Jupyter kernels and Terminals]

pyodide/pyodide: "ENH Add API for mounting native file system" #2987: https://github.com/pyodide/pyodide/pull/2987

mg•30m ago

    You can’t import or require() a module
    that only exists in memory.
You can convert it into a data url and import that, can't you?
doctorpangloss•28m ago
Yeah but Claude didn't suggest that when it wrote this blog post and did all the work so...
ozlikethewizard•15m ago
I'm not convinced this needs to be in core Node, but being able to have serverless functions access a file system without providing storage would definitely have some use cases. Had some fun with video processing recently that this would be perfect for.
indutny•11m ago
Taking the question of whether this would be a useful addition to Node.js core or aside, it must be noted that this 19k LoC PR was mostly generated by Claude Code and manually reviewed by the submitter which is my opinion is against the spirit of the project and directly violates the terms of Developer's Certificate of Origin set in the project's CONTRIBUTING.md
epolanski•9m ago
Do as I say, not as I do.

On a more serious note, I think that this will be thoroughly reviewed before it gets merged and Node has an entire security team that overviews these.

Normal_gaussian•5m ago
yarn pnp is currently broken on Node v25.7+;

- https://github.com/yarnpkg/berry/issues/7065

- https://github.com/nodejs/node/issues/62012

This is because yarn patches fs in order to introduce virtual file path resolution of modules in the yarn cache (which are zips), which is quite brittle and was broken by a seemingly unrelated change in 25.7.

The discussion in issue 62012 is notable - it was suggested yarn just wait for vfs to land. This is interesting to me in two ways: firstly, the node team seems quite happy for non-trivial amounts of the ecosystem to just be broken, and suggests relying on what I'm assuming will be an experimental API when it does land; secondly, it implies a lot of confidence that this feature will land before LTS.

notnullorvoid•4m ago
I could see something like this being useful if it could be passed to workers to replace any fs access inside the worker.

Eternego: A local AI persona with persistent memory and structured reasoning

https://github.com/Eternego-AI/eternego
1•primus_eternego•43s ago•1 comments

"Democracy Report 2026" – V-Dem Institute at the University of Gothenburg [pdf]

https://v-dem.net/documents/75/V-Dem_Institute_Democracy_Report_2026_lowres.pdf
1•netfortius•1m ago•0 comments

Measuring Agents in Production

http://muratbuffalo.blogspot.com/2026/03/measuring-agents-in-production.html
3•mark4•3m ago•0 comments

The Pennsylvania Town Facing a Data Center Boom

https://e360.yale.edu/digest/archbald-data-centers
1•speckx•3m ago•0 comments

Pixar Knows It's Running Out of Ideas, and That's Okay

https://www.vulture.com/article/hoppers-review-pixars-running-out-of-ideas-thats-okay.html
1•PaulHoule•3m ago•0 comments

Backblaze Pricing and Product Updates

https://www.backblaze.com/blog/backblaze-pricing-and-product-updates/
4•precommunicator•4m ago•3 comments

William Gibson vs. Margaret Thatcher

https://pluralistic.net/2026/03/17/technopolitics/
1•hn_acker•4m ago•0 comments

Show HN: Leavely – Cancellation feedback modal for SaaS

1•ryujii•5m ago•1 comments

GPU Lite for CUDA without the bloat

https://github.com/rubber-duck-debug/gpu-lite
1•HaoZeke•6m ago•0 comments

Structured text-to-sample generation for modern music production

https://old.reddit.com/r/StableDiffusion/comments/1rvnomy/im_back_from_last_weeks_post_and_so_tod...
1•abhikul0•6m ago•1 comments

Show HN: Promptcmd – LLM prompts as CLI progs with args, piping, SSH forwarding

https://github.com/tgalal/promptcmd
1•tgalal•6m ago•0 comments

OpenAI's own mental health experts unanimously opposed "naughty" ChatGPT launch

https://arstechnica.com/tech-policy/2026/03/chatgpt-may-soon-become-sexy-suicide-coach-openai-adv...
2•pseudolus•6m ago•0 comments

AIBuildAI – An AI agent that automatically builds AI models (#1 on MLE-Bench)

https://github.com/aibuildai/AI-Build-AI
1•ruz048•7m ago•1 comments

Show HN: Revise.js – Building blocks for contenteditable-based text editors

https://revise.js.org/blog/introducing-revise/
3•bikeshaving•10m ago•0 comments

Show HN: Yuzudraw – visual editor for ASCII diagrams with token-efficient DSL

https://github.com/agavra/yuzudraw
1•agavra•10m ago•0 comments

Show HN: I made an AndroidTV Launcher, minimal design, privacy friendly, ad free

https://play.google.com/store/apps/details?id=app.lumoslabs.chillhub&hl=en_US
1•NSDavidObject•11m ago•0 comments

Three Levels of Nix

https://simonshine.dk/articles/three-levels-of-nix/
2•speckx•12m ago•0 comments

Ask HN: Can you access old HN posts?

3•harlequinetcie•12m ago•3 comments

Show HN: F0lkl0r3.dev – a searchable, interlinked map of computing history

https://f0lkl0r3.dev
1•dynamicwebpaige•12m ago•0 comments

Running Oxide at Home for Local Development [video]

https://www.youtube.com/watch?v=qwXtS0-r1uQ
1•rocketcity•13m ago•0 comments

End-to-end testing of agentic applications in Cypress

https://www.npmjs.com/package/@gojiplus/mimiq
1•neehao•13m ago•0 comments

Nvidia Groq 3 LPU and Groq LPX racks join Rubin platform – SRAM-packed

https://www.tomshardware.com/pc-components/gpus/nvidia-groq-3-lpu-and-groq-lpx-racks-join-rubin-p...
2•rerx•13m ago•0 comments

Tell HN: ECHO I Love You

1•reconnecting•13m ago•0 comments

The problem with e-commerce content

https://www.indiehackers.com/post/the-real-problem-with-e-commerce-content-OySEZFkteSTnrgxrdl0m
1•allinonetools_•13m ago•0 comments

Sashiko – an agentic system for Linux kernel changes

https://lore.kernel.org/lkml/7ia4o6kmpj5s.fsf@castle.c.googlers.com/
1•ahlCVA•14m ago•0 comments

Microsoft appoints a new Copilot boss after AI leadership shake-up

https://www.theverge.com/news/895963/microsoft-copilot-leadership-changes-consumer-commercial
1•01-_-•14m ago•0 comments

Apple's Cheap AI Bet Could Pay Off Big

https://www.wsj.com/opinion/apples-cheap-ai-bet-could-pay-off-big-a2032a19
2•gmays•15m ago•2 comments

Looms and Agents

https://news.routley.io/posts/looms-agents.html
2•ColinEberhardt•15m ago•0 comments

Window Swap – Open a Window somewhere in the world

https://www.window-swap.com/
2•fitzroymckay•15m ago•0 comments

Context Engineering from the Inside Out

https://blog.yellowday.day/posts/context_engineering_from_the_inside_out/
1•vinhnx•15m ago•0 comments