Commit Graph

6 Commits

Author SHA1 Message Date
Félix Baylac Jacqué d3b7bea53b Readme: rewrite example usage 2023-08-26 13:00:51 +02:00
Félix Baylac Jacqué 28bcd319f3 Readme: add demo, remove warning 2023-08-26 12:46:17 +02:00
Félix Baylac Jacqué 162486191c Add Nix derivation 2023-08-25 23:15:10 +02:00
Félix Baylac Jacqué 9c767e4938 Backup multiple files on the same invocation
Concurently backing up the files pointed by stdin. Instead of having
to spin up a whole picobak process for each and every picture we want
to back up, we create a single process in charge of backing up the
files using all cores. This massively improves the backup speed.

We use rayon to concurently process the pictures.
2023-08-25 21:41:24 +02:00
Félix Baylac Jacqué c713e3d5a1 First semi-naive and dirty implementation
We adopt a semi-naive approach. Probably not the best performing and
most robust solution, but at least we have something functional.

We rely on a external scheduler, such as GNU parallel, to concurently
copy the files and use as much cores as possible. It makes the program
composable with the GNU userspace toolchain.

It however comes at a cost: we have to spin-up/tear-down a process for
each file. Scheduling the copy from inside the Rust program by
creating multiple threads (using rayon?) would be likely much more
performant. We'll probably come to it in the future.

The error handling also left to be desired. We're panicking with a
error message every time we encounter something unexpected.

The program is also untested. Might eat your kitten for now.
2023-08-24 13:09:51 +02:00
Félix Baylac Jacqué 456bac2e98 Init 2023-08-24 10:51:58 +02:00