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

feat: add support for README in FUSE mode #1312

Merged
merged 3 commits into from
Sep 3, 2022
Merged

feat: add support for README in FUSE mode #1312

merged 3 commits into from
Sep 3, 2022

Conversation

enocom
Copy link
Member

@enocom enocom commented Aug 13, 2022

This PR adds:

  • CLI flags for fuse and fuse-temp-dir
  • A check if the OS supports FUSE
  • a FUSE server that serves a README
  • Support for closing the FUSE server

There are four FUSE libraries for Go:

bazil.org/fuse -- a solid library, pure Go implementation, but Linux only.
github.com/jacobsa/fuse -- a fork of the library above. Linux and Darwin are supported.
github.com/hanwen/go-fuse -- pure Go implementation, Linux and Darwin are supported.
github.com/winfsp/cgofuse -- broad OS support (Linux, macOS, Windows), but requires CGO.
What we want:

Broad OS support -- especially Linux and macOS.
No CGO -- we compile cross-platform and static binaries. CGO would introduce a lot of complexity into our build process that we'd rather avoid.
Well maintained and active project.
By the criteria above, that leaves us with:

github.com/jacobsa/fuse and
github.com/hanwen/go-fuse

Option 2 has better performance, so we are moving forward with go-fuse.

The next PR(s) will include:

  • returning a symlink to a Unix domain socket that is connected to the Cloud SQL instance
  • (maybe) support for "warming up" instance connection names in FUSE mode

@enocom enocom requested a review from a team August 13, 2022 23:19
@enocom enocom deleted the branch fuse-support August 23, 2022 02:09
@enocom enocom closed this Aug 23, 2022
@enocom enocom reopened this Aug 23, 2022
internal/proxy/fuse.go Outdated Show resolved Hide resolved
internal/proxy/fuse.go Show resolved Hide resolved
@enocom enocom merged commit 8be22aa into fuse-support Sep 3, 2022
@enocom enocom deleted the step-1 branch September 3, 2022 02:02
enocom added a commit that referenced this pull request Sep 7, 2022
enocom added a commit that referenced this pull request Sep 7, 2022
* feat: add support for README in FUSE mode (#1312)

* feat: add support for FUSE connections (#1373)

This commit also ensures that closing the proxy.Client blocks until all
listeners are closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants