Cgofuse

Cgofuse is a cross-platform Go binding for FUSE (Filesystem in Userspace). It allows you to develop user-mode filesystems in Go that can be mounted on Linux, macOS, Windows, FreeBSD, NetBSD, and OpenBSD.

Features

  • FUSE 3 Support: Opt-in support for FUSE 3 features on Linux and FreeBSD by using the fuse3 build tag.
  • Cross-Platform: Works on a wide range of operating systems.
    • Linux: FUSE 2 and FUSE 3.
    • macOS: macFUSE.
    • Windows: WinFsp.
    • FreeBSD: FUSE 2 and FUSE 3.
    • NetBSD: librefuse.
    • OpenBSD: FUSE.
cgo !cgo FUSE FUSE3
Windows - - Winfsp
macOS
Linux
FreeBSD
NetBSD
OpenBSD

Prerequisites

Before using Cgofuse, you need to install Go, a C compiler, and the FUSE development libraries for your operating system.

Linux

For FUSE 2:

  • Debian/Ubuntu: sudo apt-get install build-essential libfuse-dev
  • Fedora/RHEL: sudo dnf install fuse-devel
  • Arch: sudo pacman -Sy fuse

For FUSE 3:

  • Debian/Ubuntu: sudo apt-get install build-essential libfuse3-dev
  • Fedora/RHEL: sudo dnf install fuse3-devel
  • Arch: sudo pacman -Sy fuse3

macOS

Install macFUSE and Command Line Tools.

brew install --cask macfuse

Windows

Just need WinfSP installed, no require copiler, as DLL is used directly.

Manual installtion: Download Winget: winget install WinFsp.WinFsp

FreeBSD

  • For FUSE 2: pkg install fusefs-libs
  • For FUSE 3: pkg install fusefs-libs3

NetBSD

  • pkgin install librefuse

OpenBSD

The fuse library is included in the base system, but you will need a compiler.

Build fuse3

To use FUSE 3 on supported platforms (Linux, FreeBSD), use the fuse3 build tag:

go build -tags fuse3

Usage

get go module

go get -u sirherobrine23.com.br/Sirherobrine23/cgofuse

fs (recomend)

fs implements and manages a file system based on the os and syscall go, it is much faster to implement because it is not necessary to use direction fuse or winfsp

License

Cgofuse is licensed under the MIT License. See the LICENSE file for details.

Original author is Bill Zissimopoulos (Winfsp).

Description
Cross-platform FUSE library for Go - Works on Windows, macOS, Linux, FreeBSD, NetBSD, OpenBSD
Readme MIT 672 KiB
Languages
Go 99.4%
Shell 0.6%