Added macos client
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user