Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

os: Consider providing a VFS layer #5636

Closed
ianlancetaylor opened this issue Jun 4, 2013 · 12 comments
Closed

os: Consider providing a VFS layer #5636

ianlancetaylor opened this issue Jun 4, 2013 · 12 comments

Comments

@ianlancetaylor
Copy link
Contributor

We have various different VFS layers in different programs, such as
cmd/godoc/filesystem.go.  Can we have the os package provide a VFS layer?  Or can we
provide a vfs package that wraps the os package?  Or something else to provide a simple
unified approach?
@ianlancetaylor
Copy link
Contributor Author

Comment 1:

Labels changed: added go1.2maybe.

@gopherbot
Copy link

Comment 2 by tv@duh.org:

Well, it's very much a skeleton at the moment, but I've started brainstorm-implementing
a vfs type layer here:
https://github.com/tvierling/go-vfs
The basic planned structure is for two types of accessibility: an iterable-only,
sequential-access interface (à la most archives), and a random-path-access filesystem
that implements and extends the above with a full complement of operations (applicable
to real filesystems, as well as virtual accessors that support path-type operations...
say, URIs or anything else that can be structured as a path tree).
Not too sure where I'm going with it yet, but I'm open to ideas thrown in as issues on
the github repo.

@adg
Copy link
Contributor

adg commented Jul 17, 2013

Comment 3:

For interest's sake, the godoc VFS stuff has been put into a separate package:
 https://code.google.com/p/go/source/browse/?repo=tools#hg%2Fgodoc%2Fvfs

@rsc
Copy link
Contributor

rsc commented Jul 30, 2013

Comment 4:

Since no proposal has been forthcoming, I suspect this is going to have to wait another
round.

Labels changed: added go1.3maybe, removed go1.2maybe.

@robpike
Copy link
Contributor

robpike commented Aug 20, 2013

Comment 5:

Labels changed: removed go1.3maybe.

@rsc
Copy link
Contributor

rsc commented Nov 27, 2013

Comment 6:

Labels changed: added go1.3maybe.

@rsc
Copy link
Contributor

rsc commented Dec 4, 2013

Comment 7:

Labels changed: added release-none, removed go1.3maybe.

@rsc
Copy link
Contributor

rsc commented Dec 4, 2013

Comment 8:

Labels changed: added repo-main.

@bradfitz
Copy link
Contributor

bradfitz commented May 1, 2014

Comment 9:

This is tricky. We could never find a good design that worked with (replaced) all the
existing VFSes.

Owner changed to ---.

Status changed to Thinking.

@ianlancetaylor
Copy link
Contributor Author

Comment 10:

Issue #8931 has been merged into this issue.

@rsc
Copy link
Contributor

rsc commented Jul 21, 2020

@robpike and I worked out a design for a general file system interface for Go. I've posted a draft design doc, video, and code (links below). Instead of comments on this issue, please use the Reddit Q&A for comments on this specific draft design - Reddit threads and scales discussions better than GitHub does. Thanks!

Video: https://golang.org/s/draft-iofs-video
Design: https://golang.org/s/draft-iofs-design
Q&A: https://golang.org/s/draft-iofs-reddit
Code: https://golang.org/s/draft-iofs-code

@rsc
Copy link
Contributor

rsc commented Sep 2, 2020

I've filed #41190 to propose accepting the draft design mentioned in my previous comment.
I am going to close this issue as superseded by that one.

@rsc rsc closed this as completed Sep 2, 2020
@golang golang locked and limited conversation to collaborators Sep 2, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants