syncweb_core/lib.rs
1//! # syncweb-core
2//!
3//! Core library for `syncweb`, enabling delay-tolerant web surfing and decentralized synchronization.
4//!
5//! This crate provides the foundational building blocks for the syncweb application, including:
6//! - Decentralized folder synchronization and package management.
7//! - Network and node management using the Iroh stack.
8//! - File system scanning, filtering, and statistical analysis.
9//! - Delay-tolerant networking capabilities.
10//!
11//! ## Modules
12//!
13//! - `allocation`: Deterministic, capacity-aware storage allocation.
14//! - `error`: Common error types and `Result` aliases.
15//! - `filter`: Tools for filtering files during synchronization and scanning.
16//! - `folder`: Management of synchronized folders, collections, and packages.
17//! - `fs`: File system utilities, including parallel scanning.
18//! - `indexing`: Opt-in SQLite/FTS5 indexing for synchronized folders.
19//! - `net`: Network management and routing configurations.
20//! - `node`: Iroh node integration and identity management.
21//! - `search`: Find engine for querying synchronized assets.
22//! - `sync`: The core synchronization engine and session management.
23//!
24pub mod allocation;
25pub mod bandwidth_stats;
26pub mod constants;
27pub mod daemon;
28pub mod error;
29pub mod filter;
30pub mod folder;
31pub mod fs;
32pub mod indexing;
33pub mod init;
34pub mod media;
35pub mod net;
36pub mod node;
37pub mod parsing;
38pub mod pins;
39pub mod schedule;
40pub mod search;
41pub mod signature;
42pub mod snapshot;
43pub mod sort;
44pub mod stat;
45pub mod storage;
46pub mod sync;
47pub mod transfer_limits;
48pub mod uri;
49pub mod verify;
50
51pub use error::{Result, SyncwebError};
52pub use folder::archive_export::{DropExportOptions, DropExportResult, DropExporter, export_archive};
53pub use folder::archive_import;
54pub use folder::archive_import::{DropImportOptions, DropImportResult, DropImporter, import_archive};
55pub use folder::archive_verify::{
56 DropVerificationResult, DropVerifier, DropVerifyResult, verify_archive, verify_drop_reader,
57};
58pub use sync::{ActiveSession, cancel_session, is_active};