1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
//! # xtax — Facade crate for the xtax Rust infrastructure ecosystem
//!
//! `xtax` is a lightweight re-export crate. It contains no business logic of its own.
//! Instead, it re-exports selected subcrates behind Cargo feature flags, giving you
//! a single dependency with composable, opt-in functionality.
//!
//! ## Usage
//!
//! By default, the `xtax` facade enables no functionality:
//!
//! ```toml
//! [dependencies]
//! xtax = "0.1"
//! ```
//!
//! Enable only the parts you need.
//!
//! ### Blob storage with filesystem backend
//!
//! ```toml
//! [dependencies]
//! xtax = { version = "0.1", features = ["blob-storage"] }
//! ```
//!
//! ```rust,ignore
//! use xtax::blob_storage::BlobStoreBuilder;
//! ```
//!
//! ### Blob storage with S3 backend
//!
//! ```toml
//! [dependencies]
//! xtax = { version = "0.1", features = ["blob-storage-s3"] }
//! ```
//!
//! ```rust,ignore
//! use xtax::blob_storage::BlobStoreBuilder;
//! ```
//!
//! ### Encryption provider interface
//!
//! ```toml
//! [dependencies]
//! xtax = { version = "0.1", features = ["encryption"] }
//! ```
//!
//! ```rust,ignore
//! use xtax::encryption::EncryptionProvider;
//! ```
//!
//! Or depend on subcrates directly — both paths are valid:
//!
//! ```toml
//! [dependencies]
//! xtax-blob-storage = "0.1"
//! ```
//!
//! ```rust,ignore
//! use xtax_blob_storage::BlobStoreBuilder;
//! ```
//!
//! ## Feature flags
//!
//! | Feature | Crate re-exported | Description |
//! |---------------------|-------------------------|--------------------------------------------------|
//! | `blob-storage` | `xtax-blob-storage` | Blob storage with filesystem backend |
//! | `blob-storage-s3` | `xtax-blob-storage` | Blob storage with S3 backend enabled |
//! | `blob-storage-full` | `xtax-blob-storage` | Enables all blob-storage backends exposed here |
//! | `encryption` | `xtax-encryption` | Trait-only encryption provider interface |
//! | `full` | all facade features | Enables all currently exposed facade features |
//!
//! ## Subcrate documentation
//!
//! | Crate | Documentation |
//! |-------|---------------|
//! | `xtax-blob-storage` | [docs.rs](https://docs.rs/xtax-blob-storage) |
//! | `xtax-encryption` | [docs.rs](https://docs.rs/xtax-encryption) |
//!
//! ## Architecture
//!
//! - The `xtax` facade crate contains **no logic**.
//! - Each subcrate has **standalone value** and can be used **without** the facade.
//! - Subcrates **must not** depend on the facade crate.
//! - Dependency direction is always: `xtax` → subcrate, never the reverse.
pub use xtax_blob_storage as blob_storage;
pub use xtax_encryption as encryption;
/// Convenience prelude — re-exports the most commonly used items from subcrates.