Skip to content
IceBerg-coderPublic

About

Modern, open-source PowerISO replacement for creating, mounting, editing, and extracting disc images, DAA format unpacking, and Audio CD mastering.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

OpenISO

OpenISO App Icon

Next-Generation Open-Source Disc Image & Virtual Drive Suite
The definitive modern, open-source PowerISO replacement for Windows, Linux, and macOS.


🌟 Key Features

  • Direct Access Archive (DAA / GBI) Native Decompression:
    • Full native unpacking of PowerISO's proprietary .daa and gBurner .gbi compressed disc image archives into standard .iso format without requiring PowerISO installed.
    • Transparent in-memory / temporary expansion when opening .daa images directly via GUI or CLI.
  • Red Book Audio CD Studio:
    • Master Audio CDs: Combine multiple 44.1kHz 16-bit stereo .wav audio tracks into standard Red Book compliant disc images (album.bin + album.cue) with 2352-byte sector alignment.
    • Sample-Accurate Ripping: Parse complex .cue sheets and rip lossless audio tracks directly to RIFF .wav files with full track metadata preservation.
  • Disc Image Creation & Editing: Create new ISO images from local files and folders. Add, delete, rename, and reorganize files in memory before saving.
  • ISO 9660 & Joliet Support: Full support for standard ISO 9660 and Joliet extensions (supporting Unicode file names up to 64/103 characters and deep directory hierarchies).
  • UDF Image Reading: Inspect and extract files from modern UDF (Universal Disk Format) disc images.
  • El Torito Bootable Disc Engine: Configure bootable discs for PC BIOS, UEFI, and custom bootloaders with configurable emulation modes (No-Emulation, 1.44MB Floppy, 2.88MB Floppy, Hard Disk) and load segments.
  • Cross-Platform Virtual Drive Mounting:
    • Windows: Seamlessly mount ISO images directly to native Windows drive letters (e.g. E:\, F:\), browse them in Windows File Explorer, and dismount with one click.
    • Linux: Loop-device setup via udisksctl loop-setup and xdg-open.
    • macOS: Native disk arbitration mounting via hdiutil attach and open.
  • Bootable USB Flash Drive Creator: Burn bootable ISOs directly to USB flash drives for Windows and Linux OS installations (with built-in drive safety locks to protect internal OS disks).
  • Image Format Conversion: Convert proprietary and raw disc formats (DAA, GBI, BIN/CUE, IMG, RAW) into standard 2048-byte sector ISO files.
  • Cryptographic Hashes: Rapid multi-threaded calculation of MD5, SHA-1, and SHA-256 checksums with quick-copy clipboard buttons.
  • Physical Disc Burning: Optical burning simulation and CD/DVD/BD writing integration via Windows IMAPI2.
  • Interactive Disc Capacity Bar: Visual disc gauge with real-time indicators for standard media types:
    • CD (700 MB)
    • DVD-5 (4.7 GB)
    • DVD-9 (8.5 GB)
    • BD-25 (25 GB)
    • BD-50 (50 GB)
    • Unlimited / Custom

🛠️ Programming Language Analysis & Rationale

When creating software like PowerISO, selecting the right language and ecosystem is critical. Here is an in-depth comparison of suitable candidates:

Language & Tech Stack Performance UI Native Quality Low-Level System / OS APIs Development Velocity Verdict
C# (.NET 10 + WPF / Avalonia) ⚡⚡⚡ High (Native AOT / JIT) 🌟🌟🌟 Native Fluent & Cross-Platform 🌟🌟🌟 Full P/Invoke, virtdisk, IMAPI2, POSIX 🚀🚀🚀 Ultra Fast Best Overall Choice (Chosen for OpenISO)
C++ (Qt 6 / Win32 / MFC) ⚡⚡⚡ Maximum 🌟🌟 Good (Qt) / Classic (MFC) 🌟🌟🌟 Direct Kernel / Driver access ⏳ Slower / Manual memory Classic choice for low-level SCSI drivers
Rust (Tauri / Slint) ⚡⚡⚡ Maximum 🌟🌟 Modern Web/Native 🌟🌟🌟 Direct Win32 via windows-rs 🚀 Good safety, maturing UI Excellent modern systems choice
Go (Fyne / Wails) ⚡⚡ Fast 🌟 Acceptable 🌟🌟 Limited direct driver COM hooks 🚀 Fast CLI, average GUI Great for CLI tools, suboptimal for Windows UI
Python (PyQt / PySide) ⚡ Moderate 🌟🌟 Good 🌟 Slower binary sector manipulation 🚀 Fast prototype Heavy distribution size, slower on multi-GB ISOs

Why C# / .NET 10 was Chosen for OpenISO:

  1. First-Class Desktop Integration: WPF provides hardware-accelerated, high-DPI scaling, smooth animations, and a modern Fluent dark theme.
  2. Zero-Overhead Interop: Direct P/Invoke into Windows Virtual Storage API (virtdisk.dll), PowerShell command pipelines, and Windows Optical Burning API (IMAPI2).
  3. Pure Streaming Engine: Leverages high-performance streaming pipelines for processing multi-gigabyte ISOs and DEFLATE chunks sector-by-sector without excessive RAM usage.
  4. Single-File Native Compilation: Compiles to a single, self-contained native .exe with zero external runtime prerequisites.

📁 Solution Architecture

d:\openiso\
├── OpenIso.slnx                  # Solution configuration file (.NET 10)
├── build-all.ps1                 # Single-click build for portable binaries & installer
├── src\
│   ├── OpenIso.Core\             # Core disc imaging engine library (Cross-Platform)
│   │   ├── Audio\
│   │   │   ├── CueSheet.cs       # CueTimecode (MM:SS:FF), CueTrack, and CueSheet models
│   │   │   ├── CueParser.cs      # CUE sheet parsing and generation engine
│   │   │   ├── AudioCdMaster.cs  # Red Book BIN/CUE CD mastering engine
│   │   │   └── AudioCdRipper.cs  # Sample-accurate track extraction to 16-bit 44.1kHz WAV
│   │   ├── Common\               # Byte formatters, progress reporting models
│   │   ├── Engine\
│   │   │   ├── IsoManager.cs     # ISO 9660/Joliet/UDF creation, reading & extraction
│   │   │   ├── DaaConverter.cs   # PowerISO DAA & GBI decompression engine
│   │   │   ├── FormatConverter.cs# DAA/BIN/CUE/IMG to ISO converter
│   │   │   ├── VirtualDriveManager.cs # Cross-platform virtual drive mounter (Win/Linux/macOS)
│   │   │   ├── UsbDriveWriter.cs # Cross-platform bootable USB writer & safety locks
│   │   │   ├── HashCalculator.cs # Multi-threaded MD5, SHA-1, SHA-256 hasher
│   │   │   └── DiscBurner.cs     # Optical drive detection & burn simulator
│   │   └── Models\               # IsoEntry, IsoDiscInfo, BootSpecification, Presets
│   │
│   ├── OpenIso.Gui\              # Modern WPF Desktop GUI Application
│   │   ├── Views\                # Audio CD Studio, Convert, Mount, USB, Burn, Hash, Properties
│   │   ├── MainWindow.xaml       # Dual-pane explorer, toolbar, capacity gauge
│   │   └── App.xaml              # Fluent dark theme and vector styles
│   │
│   └── OpenIso.Cli\              # Command-Line Utility (`openiso-cli.exe`)
│       └── Program.cs            # CLI command parser and execution handlers
│
└── tests\
    └── OpenIso.Tests\            # Unit test suite (xUnit)
        └── IsoTests.cs           # ISO, DAA decompression, Audio CD mastering & hash tests

💻 CLI Usage Guide

Run OpenISO CLI directly from PowerShell or Command Prompt:

# Display help and commands
openiso-cli --help

# Decompress a PowerISO .daa or .gbi archive to standard ISO
openiso-cli convert -i mydisc.daa -o mydisc.iso
# (or use the dedicated alias)
openiso-cli daa2iso -i mydisc.daa -o mydisc.iso

# Master a Red Book Audio CD from WAV tracks
openiso-cli audiocd master -o album.cue -b album.bin --title "Synthwave Memories" --artist "Retro Band" track01.wav track02.wav track03.wav

# Rip all Audio CD tracks from a CUE sheet to 16-bit 44.1kHz stereo WAVs
openiso-cli audiocd rip -i album.cue -o C:\Music\RippedAlbum\

# Create a new ISO from local files or directories
openiso-cli create -o mydisc.iso -v "MY_DISC" folder1 folder2 file.txt

# Create a bootable ISO with El Torito boot image
openiso-cli create -o bootable.iso -v "BOOT_DISC" -b boot.bin sources\

# List files and directories inside an ISO or DAA image
openiso-cli list -i mydisc.iso -r

# Extract entire ISO or DAA image to a local folder
openiso-cli extract -i mydisc.daa -o extracted\

# Mount ISO to a virtual drive letter
openiso-cli mount -i mydisc.iso

# Dismount a virtual drive
openiso-cli unmount -i mydisc.iso

# Calculate MD5, SHA-1, and SHA-256 hashes
openiso-cli hash -i mydisc.iso

# Create bootable USB drive (requires admin)
openiso-cli usb -i installer.iso -d E: --format

📦 Packaging & Distribution

1. Standalone Portable Executable (No .NET required)

Run OpenISO immediately on any 64-bit Windows system without installing .NET or any runtimes:

  • Portable GUI: publish\portable\OpenIso-Portable.exe
  • Portable CLI: publish\portable\openiso-cli.exe

2. Windows Setup Installer

A full Windows installer generated with Inno Setup:

  • Installer Path: publish\installer\OpenIso-Setup-v1.0.0.exe
  • Features included in the Setup Package:
    • Installs to Program Files ({autopf}\OpenISO)
    • Start Menu shortcuts and Desktop icon
    • File associations for .iso, .bin, .img, .daa, .gbi, .cue
    • Windows File Explorer right-click context menu ("Open with OpenISO", "Mount to Virtual Drive", "Decompress DAA to ISO")
    • Full uninstaller registered in Windows Settings / Apps

3. One-Click Rebuild Script

To regenerate both the portable packages and installer at any time:

.\build-all.ps1

🧪 Running Unit Tests

Run the complete test suite:

dotnet test

Test Results (9/9 Passed):

  • CreateReadAndExtractIso_ShouldMatchOriginalFiles: PASSED
  • BootableIso_ElTorito_ShouldPersistBootableFlag: PASSED
  • HashCalculator_ShouldComputeAccurateHashes: PASSED
  • FormatConverter_RawSectorConversion_ShouldExtract2048UserData: PASSED
  • ByteSizeFormatter_ShouldFormatUnitsCorrectly: PASSED
  • DiscCapacityPresets_ShouldContainStandardSizes: PASSED
  • CueSheetAndParser_ShouldParseAndGenerateAccurately: PASSED
  • AudioCdMasterAndRipper_ShouldCreateAndExtractWavTracks: PASSED
  • DaaConverter_ShouldDecompressDaaArchiveToOriginalIso: PASSED

📄 License

MIT License. Open-source software designed for high performance, preservation, and reliability.

About

Modern, open-source PowerISO replacement for creating, mounting, editing, and extracting disc images, DAA format unpacking, and Audio CD mastering.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages