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
//! # Xorion IPFS — Decentralized Storage
//!
//! IPFS-backed filesystem with client-side encryption:
//! - **IPFS client** — upload, download, pin files via the IPFS HTTP API
//! - **AES-256-GCM encryption** — client-side encrypt/decrypt with Argon2 key derivation
//! - **Virtual filesystem** — directory tree mapped to IPFS CIDs
//! - **Pinning service** — track and manage pinned content
//! - **Local cache** — LRU-style disk cache with configurable size limits
//!
//! ## Example
//!
//! ```rust
//! use xorion_ipfs::Encryption;
//!
//! let enc = Encryption::from_password("secret", b"salt_at_least_8b").unwrap();
//! let ciphertext = enc.encrypt(b"hello world").unwrap();
//! let plaintext = enc.decrypt(&ciphertext).unwrap();
//! assert_eq!(plaintext, b"hello world");
//! ```
/// Disk-backed LRU file cache with configurable size limits.
pub use FileCache;
/// AES-256-GCM encryption with Argon2id key derivation.
pub use Encryption;
/// Async IPFS HTTP API client for add, cat, and pin operations.
pub use IpfsClient;
/// Pin management service for tracking pinned IPFS content.
pub use PinningService;
/// Virtual filesystem that maps paths to IPFS CIDs.
pub use VirtualFs;
use Error;
pub type Result<T> = Result;