Skip to content

Releases: winfsp/cgofuse

v1.6.0

13 Jan 13:28
v1.6.0
Compare
Choose a tag to compare
  • Rename import path to github.com/winfsp/cgofuse.

  • Convert package to module.

  • Support FUSE3 on Linux and FreeBSD. By default, cgofuse will link with FUSE2. To link with FUSE3 add -tags=fuse3 to your go build flags. (PR #87; thanks @jfantinhardesty)

  • Support FUSE-T on macOS. (PR #73, #74; thanks @djdv)

  • Preliminary support for Windows on ARM64.

  • Support Linux distributions that place fusermount in /usr/bin.

  • Add FileSystemChmod3 interface. Chmod3 is similar to Chmod except that it includes a file handle that is available only under FUSE3.

  • Add FileSystemChown3 interface. Chown3 is similar to Chown except that it includes a file handle that is available only under FUSE3.

  • Add FileSystemUtimens3 interface. Utimens3 is similar to Utimens except that it includes a file handle that is available only under FUSE3.

  • Add FileSystemRename3 interface. Rename3 is similar to Rename except that it includes flags that are available only under FUSE3. These flags include RENAME_NOREPLACE and RENAME_EXCHANGE.

  • Add FileSystemGetpath interface. A case-insensitive file system can use Getpath to report the correct case of a file path on Windows.

  • Add FileSystemHost.SetCapDeleteAccess. A file system can use this capability to deny delete access on Windows. Such a file system must:

    • Implement the Access file system operation and handle the new fuse.DELETE_OK mask to return -fuse.EPERM for files that should not be deleted. An example implementation might look like:
      func (fs *filesystem) Access(path string, mask uint32) int {
          if "windows" == runtime.GOOS {
              if 0 != mask&fuse.DELETE_OK {
                  if "/nounlink" == path {
                      return -fuse.EPERM
                  }
              }
              return 0
          } else {
              return -fuse.ENOSYS
          }
      }
    • Return -fuse.EPERM from Unlink / Rmdir for files that should not be deleted.
  • Add FileSystemHost.SetCapOpenTrunc. A file system can use this capability to inform the host that it can handle the O_TRUNC flag.

  • Add FileSystemHost.SetDirectIO. A file system can use this capability to disable page caching on FUSE3.

  • Add FileSystemHost.SetUseIno. A file system can use this capability when it wants the host to use the ino values reported by Getattr and other operations on FUSE3.

v1.5.0

09 Mar 02:13
v1.5.0
11da055
Compare
Choose a tag to compare
  • Add FileSystemHost.Notify API which allows file change notification to be issued from the user mode file system [Windows only].
  • Add notifyfs file system to showcase the new API functionality [Windows only].

v1.4.0

24 Jul 04:34
v1.4.0
Compare
Choose a tag to compare
  • The FUSE library is demand-loaded on all platforms.
    • Prior to this version only the Windows FUSE library (WinFsp) was demand loaded.
    • This introduces a behavior change for programs that use FUSE when FUSE is not present. Prior to this version such programs would not start at all. In this new version such programs will start, but will fail with a panic in FileSystemHost.Mount if FUSE is not present.

v1.3.0

08 May 04:51
v1.3.0
f414e61
Compare
Choose a tag to compare
  • Add FileSystemOpenEx interface.
  • Miscellaneous other fixes and improvements.

v1.2.0

11 Sep 04:49
v1.2.0
aee49c8
Compare
Choose a tag to compare
  • Cgo and !cgo variants for Windows port.
  • FreeBSD, NetBSD and OpenBSD ports.

v1.1.0

25 Apr 22:02
Compare
Choose a tag to compare
  • OptParse function parses FUSE options.
  • fmt.Stringer and fmt.GoStringer implementation for fuse.Error.

v1.0.4

25 Apr 03:19
Compare
Choose a tag to compare
  • Implement BSD flags, chflags, setcrtime, setchgtime.
  • Improve documentation.

v1.0.3

25 Apr 03:19
Compare
Choose a tag to compare
  • Windows XP compatibility (eliminate RegGetValueW).

v1.0.2

25 Apr 03:18
Compare
Choose a tag to compare
  • Windows XP compatibility (eliminate slim R/W lock).

v1.0.1

25 Apr 03:18
Compare
Choose a tag to compare
  • Cross-compilation Dockerfile.
  • CircleCI integration.
  • Do not catch SIGHUP.
  • Improve documentation.