Files
furumi-ng/README.md
2026-03-10 15:59:14 +00:00

1.8 KiB

Furumi-ng

Remote filesystem over gRPC. Mount a directory from a remote server as a local folder via FUSE.

Designed for streaming media (video, music) over the network.

Architecture

furumi-server (gRPC)  ←→  furumi-client-core (library)  ←→  furumi-mount-linux (FUSE)
  • furumi-server — exposes a directory over gRPC with optional Bearer token auth and Prometheus metrics
  • furumi-client-core — cross-platform gRPC client library with attribute caching
  • furumi-mount-linux — mounts the remote directory locally via FUSE (read-only)

Quick Start

# Build
cargo build --release --workspace

# Server
./target/release/furumi-server \
  --root /path/to/media \
  --bind 0.0.0.0:50051 \
  --token mysecrettoken

# Client (on another machine)
mkdir -p /mnt/remote
./target/release/furumi-mount-linux \
  --server http://server-ip:50051 \
  --token mysecrettoken \
  --mount /mnt/remote

# Use it
ls /mnt/remote
mpv /mnt/remote/video.mkv

Configuration

All options can be set via CLI flags or environment variables.

Server

Flag Env Default Description
--bind FURUMI_BIND [::1]:50051 gRPC listen address
--root FURUMI_ROOT . Directory to expose
--token FURUMI_TOKEN (empty, auth off) Bearer token
--metrics-bind FURUMI_METRICS_BIND 0.0.0.0:9090 Prometheus metrics endpoint

Client

Flag Env Default Description
--server FURUMI_SERVER http://[::1]:50051 Server address
--token FURUMI_TOKEN (empty) Bearer token
--mount FURUMI_MOUNT Mount point directory

Requirements

  • Linux with libfuse3-dev (for client)
  • Rust 2024 edition

License

MIT