1.8 KiB
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