Skip to content

Code Organization

James Fantin-Hardesty edited this page Oct 13, 2023 · 1 revision

Cloudfuse code is organized into a small number of directories with the majority of critical code in the component directory.

  • cmd - all cloudfuse CLI commands
  • common - code common to the project
    • cache_policy - lru caching
    • config - parsing yaml configuration files
    • log - logging to files and syslog
  • component - define parts of the cloudfuse pipeline
    • attr_cache - caches attributes about files and folders to improve performance
    • azstorage - connects to Azure Blob and Datalake storage
    • block_cache - caches files in blocks as they are being read to improve read performance of large files
    • file_cache - caches files when downloaded to improve local performance
    • libfuse_cache - routes calls from FUSE
    • loopback - used exclusively in testing
    • s3storage - connects to S3 storage
    • stream - streams files and only read part of object being requested to improve read of large files
  • docs - documentation generated by cobra for the CLI commands
  • docker - defines setup for cloudfuse in docker container
  • gui - cloudfuse gui in python using QT
  • internal - code internal to project that is more specialized than code in common
    • convertname - handles conversion of special characters on Windows
    • handlemap - map of file handles
    • stats_manager - managers statistics used for health monitor
    • winservice - connects to Windows services
  • setup - information to setup config file or systemd service on linux
  • test - detailed end to end tests and performance testing
  • test-scripts - scripts to easily run end to end tests on local system
  • test-data - config files used for CI/CD
  • tools - supported tools for cloudfuse
    • health-monitor - monitors cloudfuse system and resource utilization
    • windows-event-logging - registers cloudfuse with Windows Event Viewer