OpenArc is a media archiver for photo and video folders with both interactive and command-line workflows. Point it at one or more folders, and it will convert standard images to BPG, recompress videos when that helps, preserve camera RAW files losslessly, and bundle the result into a single archive with manifests and hashes.
media/: converted images and processed videosraw.arc: preserved camera-source files packed with FreeArcmisc.arc: other preserved files packed with FreeArcOPENARC_METADATA.json: image restoration metadataMANIFEST.txt: user-facing archive contentsHASHES.sha256: integrity hashes
git clone https://github.com/LegeApp/OpenArc.git
cd OpenArc
cargo distThat builds the codec C/C++ sources in-tree and produces a self-contained binary at dist/openarc.exe (Windows) or dist/openarc (Linux). See BUILDING.md for prerequisites (MSYS2 packages on Windows, -dev packages on Linux).
./dist/openarc create -o archive.oarc ~/Pictures ~/Videosopenarc
openarc interactive
openarc create -o my-archive.oarc ~/Pictures ~/Videos
openarc extract -i my-archive.oarc -o restored
openarc list my-archive.oarcRunning openarc with no arguments launches interactive mode. Use openarc create, openarc extract, and openarc list for non-interactive runs.
At the end of archive creation, the CLI prints how many RAW files were preserved separately and their total size.
Single command: cargo dist. See BUILDING.md for prerequisites.
OpenArc/
├── src/ # CLI and archive orchestration
├── crates/
│ ├── arcmax/ # FreeArc implementation (C++ compiled by build.rs)
│ ├── codecs/ # BPG + FFmpeg wrappers (compiled by build.rs)
│ ├── zune-image/ # vendored image workspace
│ └── winmtp/ # Windows MTP helper
├── native/ # bundled native components, including BPG and jp2lam
├── zenzstd/ # Rust Zstandard implementation
├── xtask/ # `cargo dist` helper
└── dist/ # build output: openarc.exe