#![deny(clippy::all)] #![deny(unsafe_code)] #![allow(unused_imports)] //! Keep library for managing temporary files with compression and metadata. //! //! This library provides core functionality for the Keep application, including //! database operations, compression engines, item services, and plugin systems //! for metadata and filtering. It supports CLI modes, server APIs, and plugin //! registration via ctors. //! //! # Usage //! //! Add to Cargo.toml and use re-exported types: //! ```toml //! [dependencies] //! keep = "0.1" //! ``` //! //! ```rust //! use keep::Args; //! let args = Args::parse(); //! ``` //! //! # Features //! //! - `server`: Enables Axum-based HTTP server. //! - `gzip`, `lz4`: Built-in compression support. //! - `magic`: File type detection via libmagic. // Re-export modules for testing pub mod common; pub mod compression_engine; pub mod config; pub mod services; pub mod db; #[cfg(feature = "server")] pub mod meta_plugin; pub mod modes; pub mod plugins; pub mod args; pub mod parser; pub mod filter_plugin; // Re-export Args struct for library usage pub use args::Args; // Re-export PIPESIZE constant pub use common::PIPESIZE; // Import all filter plugins to ensure they register themselves #[allow(unused_imports)] use filter_plugin::{ head, tail, skip, grep, strip_ansi }; // Import all meta plugins to ensure they register themselves #[allow(unused_imports)] use meta_plugin::{ cwd, text, user, shell, shell_pid, keep_pid, digest, read_time, read_rate, hostname, exec, env }; #[cfg(feature = "magic")] #[allow(unused_imports)] use meta_plugin::magic_file; /// Initializes plugins at library load time. /// /// Ensures all filter and meta plugins are registered via their ctors. /// Call this early in application startup if needed (though ctors handle most cases). /// /// # Examples /// /// ``` /// keep::init_plugins(); /// ``` pub fn init_plugins() { // This will be expanded in Step 3 implementation // For now, the ctors handle registration } #[cfg(test)] mod tests;