GithubHelp home page GithubHelp logo

house-of-vanity / mus-fuse Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 1.0 60 KB

Experimental FUSE filesystem for my music over HTTP

License: Do What The F*ck You Want To Public License

Rust 90.26% Shell 9.74%

mus-fuse's Introduction

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

mus-fuse's People

Contributors

house-of-vanity avatar nixargh avatar

Stargazers

Björn Nilsson avatar  avatar XakPlant avatar  avatar

Watchers

James Cloos avatar  avatar

Forkers

nixargh

mus-fuse's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.