Expand description
rsenv: Unified development environment manager
This library provides the core functionality for rsenv, consolidating:
- Hierarchical environment variable management (rsenv v1)
- File guarding with symlinks (confguard)
- File swap-in/out (rplc)
§Architecture
The crate follows clean architecture with layered error types:
domain: Core entities and business rulesapplication: Services orchestrating domain logicinfrastructure: I/O implementations and DI containercli: Command-line interface
§Example
use rsenv::config::Settings;
use rsenv::infrastructure::di::ServiceContainer;
let settings = Settings::load(None).unwrap();
let container = ServiceContainer::new(settings);Re-exports§
pub use config::Settings;pub use domain::EnvFile;pub use domain::GuardedFile;pub use domain::Project;pub use domain::SwapFile;pub use domain::SwapState;pub use domain::Vault;pub use infrastructure::di::ServiceContainer;
Modules§
- application
- Application layer: services and use cases
- cli
- CLI layer: argument parsing and command dispatch
- config
- Configuration management with layered loading
- domain
- Domain layer: entities and business logic
- exitcode
- Standard exit codes (BSD sysexits.h compatible)
- infrastructure
- Infrastructure layer: I/O implementations and DI container