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?
Comment 2 by [email protected]:
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.
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
@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
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.
Most helpful comment
@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