lusl
is a library that serializes a directory containing multiple files into a single file and also deserializes it, like a tarball.
The encryption is done using XChaCha20-Poly1305 and the compression is done using zlib.
See documents.
```rust use lusl::{Serializer, Deserializer, SerializeOption}; use std::path::PathBuf;
// Serialize a directory into a file. let original = PathBuf::from("tests"); let result = PathBuf::from("serialized.bin"); let mut serializer = Serializer::new(&original, &result).unwrap(); serializer.serialize().unwrap();
// Deserialize the file into a directory. let restored = PathBuf::from("deserialized_dir"); let mut deserializer = Deserializer::new(&result, &restored).unwrap(); deserializer.deserialize().unwrap();
assert!(&result.isfile()); assert!(&restored.isdir()); ```
```rust use lusl::{Serializer, Deserializer, SerializeOption}; use std::path::PathBuf;
// Serialize a directory into a file. let original = PathBuf::from("tests"); let result = PathBuf::from("serialized.bin"); let mut serializer = Serializer::new(&original, &result).unwrap();
// Set the encryption key and compression option. serializer.setoption(SerializeOption::new().toencrypt("password").to_compress(true)); serializer.serialize().unwrap();
// Deserialize the file into a directory. let restored = PathBuf::from("deserialized_dir"); let mut deserializer = Deserializer::new(&result, &restored).unwrap();
// Set the encryption key and compression option. deserializer.setoption(SerializeOption::new().toencrypt("password").to_compress(true)); deserializer.deserialize().unwrap();
assert!(&result.isfile()); assert!(&restored.isdir()); ```