rectangle "==FUSE\n//<size:12>[kernel]</size>//\n\n Delegates filesystem implementation to user space" <<container>> as fuse
rectangle "==SwhFS\n<size:12>[System]</size>" <<boundary>> as swhfs_bound {
rectangle "==swh.fuse\n//<size:12>[pyfuse3, libfuse, FUSE]</size>//\n\n Provides a filesystem view of Software Heritage objects" <<container>> as swh_fuse
database "==Cache\n//<size:12>[SQLite or in-memory]</size>//\n\n Local cache for objects and metadata" <<container>> as cache
swh_fuse - -> cache : "===Reads objects and metadata from\n//<size:12>[SQL]</size>//"
}
rectangle "==Software Heritage archive" <<external_system>> as archive
user - -> fuse : "===Accesses\n//<size:12>[Filesystem]</size>//"
fuse - -> swh_fuse : "===Calls user space daemon\n//<size:12>[FUSE API]</size>//"