2020-04-19 04:16:03 +03:00
2020-04-17 19:02:25 +03:00
2020-04-19 03:41:03 +03:00
2020-04-17 21:01:16 +03:00
2020-04-19 02:47:13 +03:00

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.

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

How to use

Here is a binary release or compile it yourself.

# Compile
$ cargo build --release
# And run
# to baypass Basic Auth set 
# $HTTP_USER and $HTTP_PASS 
# environment variables before run.
$ ./target/release/musfuse <mountpoint> <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

Description
Experimental FUSE filesystem for my music over HTTP
Readme WTFPL 108 KiB
Languages
Rust 95.9%
Shell 4.1%