geezipx_core/lib.rs
1//! GeeZipX core engine — compression and decompression primitives.
2//!
3//! This crate provides the platform-independent core for archive and
4//! compression operations. It is designed to be consumed by both the
5//! CLI (`geezipx`) and future Tauri GUI.
6//!
7//! ## Roadmap
8//!
9//! - `archive/` — zip, tar, tar.gz container handling
10//! - `compress/` — gzip, zstd, xz compression algorithm wrappers
11//! - `detect/` — format detection from magic bytes / file extension
12//! - `pipeline/` — streaming read/write pipelines
13//! - `progress/` — progress event traits for caller consumption
14//! - `task/` — compression/decompression task models
15//! - `fs/` — cross-platform filesystem helpers
16//! - `error/` — unified error types
17
18pub mod archive;
19pub mod config;
20pub mod detect;
21pub mod error;
22pub mod io;
23pub mod test;
24
25pub use error::{GeeZipError, GeeZipResult};
26pub use io::{Phase, ProgressCallback, ProgressEvent, ProgressReader, ProgressWriter};
27
28/// Return the crate version at compile time.
29pub fn version() -> &'static str {
30 env!("CARGO_PKG_VERSION")
31}
32
33#[cfg(test)]
34mod tests {
35 use super::*;
36
37 #[test]
38 fn core_version_is_set() {
39 assert!(!version().is_empty());
40 }
41}