Hello World!
I've been vibe-coding this backup tool since around January of this year and figured it might be mostly ready for prime time now that I've integrated CHD natively into many parts of the app!
This tool aims to be the swiss-army knife of all things hard drive & images related. Initially I wrote the software just to be able to backup my vintage PCs and/or switch whatever CompactFlash / SDCard I had installed without having to perform complete re-installations. I quickly realized that since I live between physical and emulation worlds, I thought it would be super advantageous to be able to have one tool which handles "all" my needs. While I'm not done this application by any means, I believe it is working well enough.
The app is written in Rust, and I have also created some rust crates which I'm also consuming as part of this app (feel free to adopt anything, this is all GPL3). The joke is that in the vintage computer world hard disks are referred to as spinning rust, and this app is also written in Rust.
What are some of my favorite use cases?
- Change the size of the SDCard/CompactFlash I've installed a physical computer with (it can expand and shrink, depending on filesystem and available space)
- Shink/Expand the size of a VHD without using built-in Windows tools and CLI-fu without having to copy files within a virtualized OS
- Browse and extract the contents of an unsupported filesystem on your computer without installing crazy amounts of applications, i.e. open HFS on Windows, or ext4 on Mac.
- Inject files into an HFS filesystem from any platform, including MacOS Tahoe
- Convert files to / from CHD (bulk support included also)!
CHD Support:
I created a "rust wrapper" for the native CHD handling portions of MAME and am exposing different parts of said library. The wrapper is called libchdman-rs (link is in my github profile) because it integrated almost all of the features of chdman (aside from a couple of things like .gdi extraction) as well as being able to alter chd files, extract contents inside of them (if it's on a supported filesystem), it's also possible to create MiSTer optimized CHD files with a single click. This is all based on the latest release of MAME 0.287 and I expect to update the library once the new version releases, even if there are no changes to the CHD format.
Optical Disk Support:
I created another library called opticaldiscs-rs (link is in my github profile) which allows rusty backup to access CD / DVD images, both ISO, bin/cue, as well as CHD formatted disks. It supports a number of filesystems and formats of CDROMs, including mixed-mode discs, where you are also able to extract contents from those CDs using a nifty browse button and everything.
Please check out the project here at the github!
https://github.com/danifunker/rusty-backup
Contributions are always welcome, just be aware I'm actively working on extending HFS+ support.
I've been vibe-coding this backup tool since around January of this year and figured it might be mostly ready for prime time now that I've integrated CHD natively into many parts of the app!
This tool aims to be the swiss-army knife of all things hard drive & images related. Initially I wrote the software just to be able to backup my vintage PCs and/or switch whatever CompactFlash / SDCard I had installed without having to perform complete re-installations. I quickly realized that since I live between physical and emulation worlds, I thought it would be super advantageous to be able to have one tool which handles "all" my needs. While I'm not done this application by any means, I believe it is working well enough.
The app is written in Rust, and I have also created some rust crates which I'm also consuming as part of this app (feel free to adopt anything, this is all GPL3). The joke is that in the vintage computer world hard disks are referred to as spinning rust, and this app is also written in Rust.
What are some of my favorite use cases?
- Change the size of the SDCard/CompactFlash I've installed a physical computer with (it can expand and shrink, depending on filesystem and available space)
- Shink/Expand the size of a VHD without using built-in Windows tools and CLI-fu without having to copy files within a virtualized OS
- Browse and extract the contents of an unsupported filesystem on your computer without installing crazy amounts of applications, i.e. open HFS on Windows, or ext4 on Mac.
- Inject files into an HFS filesystem from any platform, including MacOS Tahoe
- Convert files to / from CHD (bulk support included also)!
CHD Support:
I created a "rust wrapper" for the native CHD handling portions of MAME and am exposing different parts of said library. The wrapper is called libchdman-rs (link is in my github profile) because it integrated almost all of the features of chdman (aside from a couple of things like .gdi extraction) as well as being able to alter chd files, extract contents inside of them (if it's on a supported filesystem), it's also possible to create MiSTer optimized CHD files with a single click. This is all based on the latest release of MAME 0.287 and I expect to update the library once the new version releases, even if there are no changes to the CHD format.
Optical Disk Support:
I created another library called opticaldiscs-rs (link is in my github profile) which allows rusty backup to access CD / DVD images, both ISO, bin/cue, as well as CHD formatted disks. It supports a number of filesystems and formats of CDROMs, including mixed-mode discs, where you are also able to extract contents from those CDs using a nifty browse button and everything.
Please check out the project here at the github!
https://github.com/danifunker/rusty-backup
Contributions are always welcome, just be aware I'm actively working on extending HFS+ support.
