Skip to content

house-of-vanity/mus-fuse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MusFuse

Build Status

MusFuse is a FUSE filesystem over HTTP for music. It is using playongo media library. It's completely written in Rust stable.

Features

  • Using self hosted media library.
  • Security relies on HTTPS.
  • Any player can be used. (tested on Cmus)
  • Using cache.
  • Leverages Rust correctness.

How to use

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

Dependencies

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.

Linux

[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