Repository navigation
Releases: Zannael/PyQuark
Release list
v1.1.2 - AppImage packaging and update support
This release improves the Linux x86_64 AppImage packaging in response to the AppImage catalog review.
- Bundle UnRAR 7.3.1 and its redistribution license, so RAR staging and streaming work without installing a separate extractor.
- Bundle libusb for the PyUSB backend. USB device permissions are still required.
- Replace the legacy AppImage runtime with the current statically linked type-2 runtime, removing the host libfuse2 requirement.
- Embed AppImageUpdate metadata and publish the matching
.zsyncfile andSHA256SUMS. - Include the packaging scripts and a controlled Ubuntu 22.04 build environment in the repository, with package verification in GitHub Actions.
Requirements: Linux x86_64, glibc 2.35 or newer, and desktop graphics libraries. PyQuark still uses the host glibc; this release does not claim full independence from system libraries.
Download PyQuark-1.1.2-x86_64.AppImage, make it executable and launch it. If FUSE is unavailable, launch with APPIMAGE_EXTRACT_AND_RUN=1.
Validation: bundled UnRAR and libusb loading, RAR staging and streaming with random reads, ELF glibc requirements, update metadata, and startup of the frozen GUI under Xvfb on Ubuntu 22.04. Physical Nintendo Switch transfers were not tested during this packaging update.
v1.1.1 - Enhanced GUI and Linux executable
PyQuark 1.1.1
This release improves GUI transfer visibility, adds Linux AppImage packaging support, and hardens USB/session handling for more reliable runtime behavior.
Highlights
- Improved GUI lifecycle/status flow and clearer transfer states.
- Added live session metrics (elapsed time, requests, total data, speed, current file).
- Added session summary logging at stop/end.
- Added Linux AppImage build workflow and documentation.
- Improved stop handling in protocol loop and DBI exit flow.
- Improved USB kernel driver detach compatibility on environments where detaching is unsupported.
- Added configurable
unrarcommand handling with clearer missing-extractor errors.
Linux AppImage
- File:
PyQuark-1.1.0-3-gb9b9128-x86_64.AppImage - SHA256:
e0a9448e3332b44e7512f482f29ce644378d45049c8ed8c41e4a9c924907721f - Runtime note:
unrarmust be installed on target systems.
1.1.0 - GUI & DBI
Main New Features
- Graphical User Interface (GUI): A desktop application based on PyQt6 has been introduced, replacing the command-line workflow (you can still use it!).
- Native Support for DBI Installer: Added implementation of the
DBI0protocol, allowing users to choose whether to use Goldleaf or DBI for installations. - Integrated Log Console: System messages, errors, and commands are now displayed in real time inside the main window of the GUI.
Architectural Changes (Under the Hood)
- Dynamic Protocol Routing: The PyQuark core now reads the magic bytes of incoming packets and automatically routes communication to the Goldleaf or DBI modules.
- Optimized File Mapping: Created the
build_dbi_file_mapfunction to dynamically translate the Virtual File System tree (including files hidden inside RAR archives) into the flat format required by DBI. - Improved USB Resource Management: Added a shutdown routine that cleanly releases USB driver locks when the application closes.
Initial Release - XCI Injection & RAR VFS Support
Welcome to the first release of PyQuark, a remote file server for Nintendo Switch.
This version introduces a Virtual File System (VFS) layer, allowing users to interact with their library in ways not possible with standard Quark servers.
Key Features
- On-the-fly XCI Injection: Install games from
.xcifiles as if they were.nsp. The server builds a virtual PFS0 header in RAM and maps NCA data directly from the cartridge dump. - Transparent RAR Access: Full support for
.rarand multi-volume.part1.rararchives. Browse them as folders and install content without manual extraction. - Hybrid Staging Engine: Intelligent background extraction for large files with dynamic wait times, ensuring stable XCI parsing even during active decompression.
- Smart Cache Management: Automatic cleanup of multi-gigabyte temporary files and session-aware handle management to optimize disk space and performance.
Recent Fixes
- Robust XCI Mapping: Implemented a dynamic retry mechanism for HFS0 parsing. This solves the "buffer of 16 bytes" error when opening large XCI files inside multi-part RAR archives by waiting for the secure partition to be extracted.
- Extension Masking: Added automatic
.xci.nspmasking for files inside RAR archives to ensure compatibility with Goldleaf's installer.
Technical Notes
- Environment: Developed and tested on Pop!_OS 22.04.
- Requirements: Requires
unrarto be installed and available in the system PATH for the staging engine. - Drivers: On Linux, the transport layer automatically handles kernel driver detachment for the Switch USB interface.
If you find any bugs or have feature requests, please open an issue!