70

In the latest builds of Windows 10, there is a new feature, in Beta, called Windows Projected File System. I cannot find any information on Google, other than programming APIs that do not make sense to me.

What is it, and what kind of users would it be targeted for?

enter image description here

Canadian Luke
  • 24,199
  • 39
  • 117
  • 171

2 Answers2

69

Projected File System aka ProjFS is a feature similar to FUSE found on Linux (or to Dokan & WinFSP). It allows apps to create virtual file systems which appear indistinguishable from local folders, but their entire contents are generated "live" by the program. (In other words, you're seeing projections of files which might not be there.)

The primary use of ProjFS is Microsoft's "Git Virtual File System", an addon to the Git version management tool aimed at increasing its performance and reducing disk space usage when dealing with massive repositories. (Git was built for repositories containing just tens of thousands of files, such as Linux.git; but Microsoft have started using it internally for the Windows source repository, which is several orders of magnitude larger.)

Additionally, Visual Studio (Enterprise)'s "Live Unit Testing" feature requires ProjFS to be enabled

Currently ProjFS doesn't seem to be publicly documented, but I expect that sooner or later third-party developers will figure out how to use it as a FUSE alternative for implementing such virtual filesystems as sshfs, ftpfs, and so on.

Note: Projected File System has nothing to do with Windows File Protection.

As noted in the comments, documentation is now available for the feature.

Orangutech
  • 864
  • 7
  • 10
u1686_grawity
  • 426,297
  • 64
  • 894
  • 966
  • 2
    Several orders of magnitude larger, to me, means Windows contains at least a billion source files. Is that accurate? – user253751 Oct 25 '18 at 21:33
  • How does WPFS differ from [IFS](https://en.wikipedia.org/wiki/Installable_File_System)? – niutech Oct 25 '18 at 21:49
  • 7
    @user20574 According to GVFS website: _"Windows operating system, which clocks in at roughly 300 GB (3.5 million files)"_. And a [MS blog post](https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-repo-on-the-planet/): _"the Windows code base is approximately 3.5M files and, when checked in to a Git repo, results in a repo of about 300GB"_. – nxnev Oct 25 '18 at 23:23
  • So two orders of magnitude, then. – user253751 Oct 25 '18 at 23:41
  • 1
    @niutech: IFS is an API for building kernel-mode filesystem drivers that can be dynamically loaded (as opposed to built in to the kernel itself). ProjFS is an API for building user-mode filesystem drivers (ie, drivers that run like a regular exe). – josh3736 Oct 26 '18 at 01:22
  • @user20574 the Windows repo includes everything in MS like Office, Windows kernel, Windows tools, Visual Studio, Skype... and not only the kernel like Linux, so no wonder it'll be a lot bigger – phuclv Oct 26 '18 at 09:09
  • @phuclv citation needed. "Windows" includes a _lot_ of stuff (that would be extra packages on Linux; think the entire GUI, Notepad, etc.), but I can't believe that the repo contains _all_ of Microsoft's products. – Roger Lipscombe Oct 26 '18 at 11:55
  • WOW! I've never heard of this, this is excellent! – Austin Burk Oct 26 '18 at 14:07
  • The git virtual filesystem seems to be open-source, so even if there is no documentation there is effectively public example code. – plugwash Oct 26 '18 at 14:39
  • 3
    @RogerLipscombe probably "all MS products" is a a little bit exaggerated but according to MS's Gabe Aul [*That size is actually the entire OS repo. It includes Windows OneCore, Desktop, Mobile, HoloLens, Xbox, IOT, etc. Plus tools, and other code we ingest from feeds and store in our tree. It’s the full enchilada, not just Desktop.*](https://blogs.msdn.microsoft.com/devops/2017/02/03/announcing-gvfs-git-virtual-file-system/) – phuclv Oct 26 '18 at 16:49
  • 2
    Besides, they did think about a single repo for the whole company: [*The first big debate was – how many repos do you have – one for the whole company at one extreme or one for each small component? A big spectrum*](https://blogs.msdn.microsoft.com/bharry/2017/02/03/scaling-git-and-some-back-story/) – phuclv Oct 26 '18 at 16:49
  • @phuclv Exactly, it is NOT everything in MS. Windows is big on its own. – Hong Ooi Oct 26 '18 at 16:55
  • The problem is not as much many files as *huge* files. Git was designed to store source code, but Microsoft has images and other media and various data blobs thrown in their source repositories. – Jan Hudec Oct 26 '18 at 21:13
  • 8
    There is now documentation [here](https://docs.microsoft.com/en-us/windows/desktop/projfs/projected-file-system). – NtFreX Nov 01 '18 at 12:29
2

Windows Projected File System is not an alternative to FUSE or Dokan.

It appears to be similar to FUSE and Dokan at first glance, even using callbacks to populate the file list, and read data from files.

However, once you read a file, the projected file is replaced with a physical file on your hard disk, which will stay on the disk.

Dwedit
  • 241
  • 2
  • 3
  • So it's never again updated from the backing store? Is that what you're saying? Could you please name your sources for that. – 0xC0000022L Apr 12 '22 at 10:48
  • I didn't check if it was 'ever checking the backing store again', I just didn't want something that was writing files to the disk. – Dwedit Apr 12 '22 at 19:31