File Monitor - Documentation Index
Welcome to the File Monitor documentation. This index provides quick navigation to all documentation resources.
Quick Linksβ
- π README.md - Start here for quick setup and examples
- π implementation-summary.md - See what was built and why
- ποΈ project-overview.md - Understand the architecture
Documentation Structureβ
Getting Startedβ
- README.md - User Guide
- Quick start examples
- Configuration options
- Basic usage patterns
- Performance characteristics
- Platform support
Architecture & Designβ
-
project-overview.md - Technical Overview
- Complete project structure
- Module responsibilities
- Design decisions
- Development workflow
- Testing strategy
-
docs/adr/001-event-processing-architecture.md - Architecture Decision Record
- Key architectural decisions
- Rationale for each choice
- Trade-offs considered
- Alternatives evaluated
- Performance targets
Operations & Deploymentβ
- docs/production.md - Production Guide
- Pre-deployment checklist
- Platform-specific configuration
- Performance tuning
- Monitoring and alerting
- Operational procedures
- Troubleshooting guide
Implementation Detailsβ
- implementation-summary.md - Build Summary
- What was created
- Critical fixes applied
- Before/after comparison
- Lines of code breakdown
- Migration path
Code Organizationβ
Source Code (src/)β
| File | Purpose | Key Features |
|---|---|---|
lib.rs | Public API | Documentation, exports |
monitor.rs | Orchestration | Lifecycle management |
processor.rs | Event pipeline | Rate limiting, debouncing |
checksum.rs | Hash calculation | Streaming SHA-256 |
rate_limiter.rs | Backpressure | Semaphore-based |
debouncer.rs | Deduplication | Time-based windows |
lifecycle.rs | Shutdown | Graceful coordination |
observability.rs | Metrics | Prometheus-compatible |
config.rs | Configuration | Validation, defaults |
events.rs | Event types | Serialization |
error.rs | Error handling | Domain errors |
Tests (tests/)β
| File | Purpose | Coverage |
|---|---|---|
integration_tests.rs | E2E tests | 15+ scenarios |
Examples (examples/)β
| File | Purpose | Features |
|---|---|---|
monitor.rs | CLI app | Rich formatting, filtering |
Development Resourcesβ
Build & Developmentβ
-
Makefile - Development commands
make help # Show all commands
make quick-check # Pre-commit checks
make test # Run all tests
make docs # Generate documentation -
cargo.toml - Dependencies and metadata
- Production dependencies
- Development tools
- Build configuration
-
.github/workflows/ci.yml - CI Pipeline
- Multi-platform testing
- Code quality checks
- Coverage reporting
- Security audits
Navigation by Roleβ
For Users (Getting Started)β
- Read README.md for quick start
- Check examples/monitor.rs for usage patterns
- Review docs/production.md for deployment
For Developers (Contributing)β
- Review project-overview.md for architecture
- Read docs/adr/001-event-processing-architecture.md for design rationale
- Check Makefile for development workflow
- Run
make quick-checkbefore committing
For Operators (Deploying)β
- Start with docs/production.md
- Review README.md configuration section
- Set up monitoring per metrics guide
- Configure alerts per operational procedures
For Architects (Evaluating)β
- Read implementation-summary.md for comparison
- Review docs/adr/001-event-processing-architecture.md for decisions
- Check project-overview.md for details
- Examine source code structure
Key Conceptsβ
Architecture Patternsβ
- Event-driven: Asynchronous event processing
- Pipeline: Multi-stage processing with gates
- Circuit breaker: Rate limiting with backpressure
- Graceful degradation: Drop events vs crash
Reliability Featuresβ
- Rate limiting: Semaphore-based concurrency control
- Debouncing: Time-window event deduplication
- Streaming: Constant-memory checksum calculation
- Graceful shutdown: Coordinated lifecycle with drain
Observabilityβ
- Metrics: Prometheus-compatible counters, gauges, histograms
- Tracing: Structured logging via
tracingcrate - Health checks: Runtime status reporting
- Error context: Rich error information
Common Tasksβ
Running Examplesβ
# Basic monitoring
cargo run --example monitor -- /path/to/watch
# With options
cargo run --example monitor -- /path/to/watch \
--recursive \
--checksums \
--debounce 1000 \
--format json
Running Testsβ
make test # All tests
make test-verbose # With logging
make test-integration # Integration only
Generating Documentationβ
make docs # Generate and open
cargo doc --no-deps # Just library docs
Checking Code Qualityβ
make quick-check # Format + lint
make ci # Full CI checks
cargo clippy # Linting only
cargo fmt # Formatting only
Related Documentationβ
External Referencesβ
- notify crate - File system watcher
- tokio - Async runtime
- tracing - Structured logging
- metrics - Metrics collection
Platform Documentationβ
- Linux: inotify(7) man page
- macOS: FSEvents framework
- Windows: ReadDirectoryChangesW API
Supportβ
- Issues: GitHub Issues tracker
- Discussions: GitHub Discussions
- Contributing: See development section in project-overview.md
- Security: Report via GitHub Security tab
Version Historyβ
- v0.1.0 (2025-01-06) - Initial production release
- Cross-platform file monitoring
- Rate limiting and debouncing
- Streaming checksums
- Graceful shutdown
- Comprehensive observability
- Full documentation suite
Licenseβ
MIT OR Apache-2.0 - See LICENSE files
Last Updated: 2025-01-06
Maintainer: File Monitor Team
Status: Production Ready