Skip to main content

File Monitor - Documentation Index

Welcome to the File Monitor documentation. This index provides quick navigation to all documentation resources.

Documentation Structure​

Getting Started​

  1. README.md - User Guide
    • Quick start examples
    • Configuration options
    • Basic usage patterns
    • Performance characteristics
    • Platform support

Architecture & Design​

  1. project-overview.md - Technical Overview

    • Complete project structure
    • Module responsibilities
    • Design decisions
    • Development workflow
    • Testing strategy
  2. 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​

  1. docs/production.md - Production Guide
    • Pre-deployment checklist
    • Platform-specific configuration
    • Performance tuning
    • Monitoring and alerting
    • Operational procedures
    • Troubleshooting guide

Implementation Details​

  1. 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/)​

FilePurposeKey Features
lib.rsPublic APIDocumentation, exports
monitor.rsOrchestrationLifecycle management
processor.rsEvent pipelineRate limiting, debouncing
checksum.rsHash calculationStreaming SHA-256
rate_limiter.rsBackpressureSemaphore-based
debouncer.rsDeduplicationTime-based windows
lifecycle.rsShutdownGraceful coordination
observability.rsMetricsPrometheus-compatible
config.rsConfigurationValidation, defaults
events.rsEvent typesSerialization
error.rsError handlingDomain errors

Tests (tests/)​

FilePurposeCoverage
integration_tests.rsE2E tests15+ scenarios

Examples (examples/)​

FilePurposeFeatures
monitor.rsCLI appRich 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

For Users (Getting Started)​

  1. Read README.md for quick start
  2. Check examples/monitor.rs for usage patterns
  3. Review docs/production.md for deployment

For Developers (Contributing)​

  1. Review project-overview.md for architecture
  2. Read docs/adr/001-event-processing-architecture.md for design rationale
  3. Check Makefile for development workflow
  4. Run make quick-check before committing

For Operators (Deploying)​

  1. Start with docs/production.md
  2. Review README.md configuration section
  3. Set up monitoring per metrics guide
  4. Configure alerts per operational procedures

For Architects (Evaluating)​

  1. Read implementation-summary.md for comparison
  2. Review docs/adr/001-event-processing-architecture.md for decisions
  3. Check project-overview.md for details
  4. 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 tracing crate
  • 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

External References​

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