vach
, pronounced like "puck" but with a "v", is an archiving and resource transmission format. It was built to be secure, contained and protected. It was, in fact, designed by the SCP to keep your anomalous assets compact and secure during transmission. A big benefit of vach
is the fine grained control it grants it's users, as it allows for per-entry independent configuration. vach
also has in-built support for multiple compression schemes (LZ4, Snappy and Brolti), data signing, leaf bitflags, encryption and some degree of archive customization. Check out the vach
spec at spec.txt. Any and all help will be much appreciated, especially proof reading the docs and code review.
```rust use std::fs::File; use vach::prelude::{Archive, Resource, Flags};
let source = File::open("sounds.vach")?;
let mut archive = Archive::new(source)?; let resource: Resource = archive.fetch_mut("footstep.wav")?;
// By default all resources are flagged as NOT secure assert!(!resource.authenticated);
// Use the data use mycrate::Sound; println!("{}", Sound::new(resource.data.asslice())?);
// Read data directly into an io::Write
stream
let mut buffer = Vec::new();
let (flags, contentversion, issecure) = archive.fetch_mut("ftstep", &mut buffer)?;
```
For more information on how to use the crate, read the documentation or pass by the repository. Maybe also check out the CLI, for a more user-friendly use of
vach