MusFuse is a FUSE filesystem over HTTP for music. It is using playongo media library. It's completely written in Rust stable.
- Using self hosted media library.
- Security relies on HTTPS.
- Any player can be used. (tested on Cmus)
- Using cache.
- Leverages Rust correctness.
Here is a binary release or compile it yourself. Anyway mind about dependencies listed below. Also there is a systemd unit file for managing service. Place it into ~/.config/systemd/user/mus-fuse.service
# Compile binary
$ cargo build --release
# Making DEB package
$ cargo install cargo-deb
$ cargo deb
# package will be appear in ./target/debian/
# And run
# to baypass Basic Auth set
# $HTTP_USER and $HTTP_PASS
# environment variables before run.
$ ./target/release/mus-fuse -m <mountpoint> -s <server>
# To get metrics
$ cat <mountpoint>/METRICS.TXT
http_requests: 1818
ingress: 243595644
hit_len_cache: 1878
hit_data_cache: 82
miss_len_cache: 11
miss_data_cache: 11
server_addr: https://mus.hexor.ru
FUSE must be installed to build or run programs that use fuse-rs (i.e. kernel driver and libraries. Some platforms may also require userland utils like fusermount
). A default installation of FUSE is usually sufficient.
To build fuse-rs or any program that depends on it, pkg-config
needs to be installed as well.
[FUSE for Linux][libfuse] is available in most Linux distributions and usually called fuse
.
Install on Arch Linux:
sudo pacman -S fuse
Install on Debian based system:
sudo apt-get install fuse
Install on CentOS:
sudo yum install fuse
To build, FUSE libraries and headers are required. The package is usually called libfuse-dev
or fuse-devel
. Also pkg-config
is required for locating libraries and headers.
sudo apt-get install libfuse-dev pkg-config
sudo yum install fuse-devel pkgconfig