From 80bfc69c0bf1775f45199bd51346e85e409adda1 Mon Sep 17 00:00:00 2001 From: Ultradesu Date: Wed, 11 Mar 2026 00:11:00 +0000 Subject: [PATCH] Added macos client --- ARCHITECTURE.md | 2 +- README.md | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 5eeb89c..2daa167 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -35,7 +35,7 @@ A Rust library containing all OS-agnostic logic: #### B. OS-Specific Mount Layer Thin executable wrappers that consume the Shared Client Core and handle OS integration: - **Linux:** Uses the `fuser` crate (binds to `libfuse`) to mount and handle events from `/dev/fuse`. -- **macOS:** Can utilize `macFUSE` via the `fuser` crate initially. Future iterations may explore native Apple `FileProvider` frameworks using FFI to bypass third-party kext requirements. +- **macOS:** Acts as a lightweight local NFSv3/v4 server (`nfssrv` or similar crate). The system natively mounts `localhost:/` via the built-in NFS client, avoiding any need for third-party kernel extensions (like `macFUSE`) or complex FileProvider bindings. - **Windows (Future):** Will wrap libraries like `WinFSP` or `dokany` to integrate with the Windows internal VFS. ## API Design (Read-Only Foundation) diff --git a/README.md b/README.md index 653abac..3efbd05 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,13 @@ Designed for streaming media (video, music) over the network. ## Architecture ``` -furumi-server (gRPC + TLS) ←→ furumi-client-core ←→ furumi-mount-{linux,macos} (FUSE) +furumi-server (gRPC + TLS) ←→ furumi-client-core ←→ furumi-mount-{linux,macos} (FUSE / NFS) ``` - **furumi-server** — exposes a directory over gRPC with auto-TLS, Bearer token auth, and Prometheus metrics - **furumi-client-core** — cross-platform gRPC client library with attribute caching -- **furumi-mount-linux** / **furumi-mount-macos** — mounts the remote directory locally via FUSE (read-only) +- **furumi-mount-linux** — mounts the remote directory locally via FUSE (read-only) +- **furumi-mount-macos** — mounts the remote directory locally via a local NFS server (read-only) ## Quick Start @@ -86,7 +87,7 @@ Available at `http:///metrics`: ## Requirements - Linux with `libfuse3-dev` and `pkg-config` (for client) -- macOS with `macFUSE` installed (for macOS client) +- macOS (uses built-in NFS client) - Rust 2024 edition ## License