# The Data and FS Provider module

The D/FS Module is responsible for exposing the actual Forest containers and their data to the user. In a typical implementation, this is expected to be done via a Filesystem-like UI, such as mountable or synchronizable Filesystems on desktop platforms.

This module is also responsible for the data transfer from/to the actual remote storage backends on which the container data are kept (using protocols such as S3, sftp, Dropbox API, etc).

The D/FS module can be considered as a client of the CoreX module. It relies on CoreX to obtain two kinds of information:

  1. Where each container's data is kept (i.e. storage backend access credentials and endpoints),
  2. How each of the container's data maps onto the user's namespace, i.e. under which path within the Forest should they be exposed to the user.

See Client Software Architecture Overview for the big picture of the client architecture and where this module fits in.

# CoreX interactions

CoreX is responsible for parsing Forest and container manifests, decrypting and verifying them, contacting the Forest catalog backend, etc. CoreX, when requested by D/FS while IO operation, and serves information about the location of the data and how to access it.