Expand description
Implementation of the VMGS file format.
§Implementation Notes
This particular implementation of the VMGS file format began life as a line-by-line port of the existing C++ VMGS code in Hyper-V. This kind of rote-porting was fairly common in the early days of the HvLite project (when folks were still getting a feel for Rust), though as time has gone on, most instances of rote-ported code have been refactored/rewritten to follow idiomatic Rust patterns.
Unfortunately, the VMGS code is pretty complex, and giving it a proper “deep clean” would require a non-trivial amount of developer effort, which as is often the case - not particularly easy to come by.
Sure, there’s been lots of incremental improvements to the code over the years, and the implementation is in much better shape today than it was in its early days… but the code still has plenty of echoes from that initial C++ port, which really ought to get ironed out.
Modules§
- logger
- Expose the
VmgsLogger
trait The definition ofVmgsLogger
trait that enables VMGS implementation to send log events to an external logger. - save_
restore - vmgs_
helpers - VMGS helper functions
Structs§
- Encryption
Algorithm - Encryption algorithm used to encrypt VMGS file
- FileId
- VMGS fixed file IDs
- Vmgs
- Implementation of the VMGS file format, backed by a generic
Disk
device. - Vmgs
File Info - Info about a specific VMGS file.
Enums§
- Error
- VMGS errors.