Added macos client

This commit is contained in:
Ultradesu
2026-03-11 00:11:00 +00:00
parent dc4fbd7407
commit 80bfc69c0b
2 changed files with 5 additions and 4 deletions

View File

@@ -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)

View File

@@ -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-bind>/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