]> git.proxmox.com Git - proxmox-backup.git/blame - src/catar.rs
/catar/encoder.rs: do not store data from virtual file systems
[proxmox-backup.git] / src / catar.rs
CommitLineData
4fa71e05
DM
1//! *catar* Implementation
2//!
3//! This is a implementation of the *catar* format used by the
4//! [casync](https://github.com/systemd/casync) toolkit. It is a file
5//! archive format defined by 'Lennart Poettering', specially defined
6//! for efficent deduplication.
7
8//! Every archive contains items in the following order:
9//! * ENTRY -- containing general stat() data and related bits
10//! * USER -- user name as text, if enabled
11//! * GROUP -- group name as text, if enabled
12//! * XATTR -- one extended attribute
13//! * ... -- more of these when there are multiple defined
14//! * ACL_USER -- one USER ACL entry
15//! * ... -- more of these when there are multiple defined
16//! * ACL_GROUP -- one GROUP ACL entry
17//! * ... -- more of these when there are multiple defined
18//! * ACL_GROUP_OBJ -- The ACL_GROUP_OBJ
19//! * ACL_DEFAULT -- The various default ACL fields if there's one defined
20//! * ACL_DEFAULT_USER -- one USER ACL entry
21//! * ... -- more of these when multiple are defined
22//! * ACL_DEFAULT_GROUP -- one GROUP ACL entry
23//! * ... -- more of these when multiple are defined
24//! * FCAPS -- file capability in Linux disk format
25//! * QUOTA_PROJECT_ID -- the ext4/xfs quota project ID
26//! * PAYLOAD -- file contents, if it is one
27//! * SYMLINK -- symlink target, if it is one
28//! * DEVICE -- device major/minor, if it is a block/char device
29//!
30//! If we are serializing a directory, then this is followed by:
31//!
32//! * FILENAME -- name of the first directory entry (strictly ordered!)
33//! * <archive> -- serialization of the first directory entry's metadata and contents,
34//! following the exact same archive format
35//! * FILENAME -- name of the second directory entry (strictly ordered!)
36//! * <archive> -- serialization of the second directory entry
37//! * ...
38//! * GOODBYE -- lookup table at the end of a list of directory entries
39
40pub mod binary_search_tree;
41pub mod format_definition;
42pub mod encoder;
0866748d 43pub mod decoder;
4fa71e05 44