NZBFS Porting and GUI Development

Job ID: 39365427

Budget: $250 – $750 USD

1. Porting NZBFS to Windows
NZBFS relies on FUSE (Filesystem in Userspace), which is POSIX-centric. On Windows, you’ll need:

WinFsp: A Windows FUSE-compatible library.
Adapt the existing code to work with WinFsp’s API, potentially via Dokan or directly using winfsp-python if sticking with Python.
2. Building a GUI
You’ll want an interface that does the following:

Accepts and stores Usenet credentials and download folder.
Lets the user pick and load an .nzb file.
Mounts the .nzb as a virtual file (streaming if possible).
Logs progress/errors and allows for unmounting.
Options for GUI frameworks:

PyQt / PySide6: Full-featured, native-feeling GUIs.
Tkinter: Simpler but basic.
Electron (Node.js): Web-based GUI but can be heavier.
DearPyGui or custom Windows Forms (via C#) for deeper native integration.
3. Handling Streaming & Resume
You’d need to enhance NZBFS to:

Support partial reads from Usenet in a block-wise fashion.
Handle interruptions and resume where left off.
Possibly cache partially downloaded segments locally (temporary block cache?).
This may mean rethinking some of the low-level NZBFS behavior to work more like a virtual streaming block device.

4. Packaging for End-Users
End goal: A user-friendly Windows installer that:

Installs WinFsp if not present.
Installs your GUI app.
Can optionally register file associations (.nzb) with your GUI.
You could use PyInstaller, cx_Freeze, or NSIS/Installer toolkits to package your app with dependencies.