Available on
docsrs
only.Expand description
The internal implement details of OpenDAL.
OpenDAL has provides unified abstraction via two-level API sets:
- Public API like
Operator
provides user level API. - Raw API like
Access
,Layer
provides developer level API.
OpenDAL tries it’s best to keep the public API stable. But raw APIs
may change between minor releases from time to time. So most users
should only use the public API. And only developers need to implement
with raw API to implement a new service Access
or their own
Layer
.
In this section, we will talk about the following components:
Access
: to connect underlying storage services.Layer
: middleware/interceptor between storage services.
The relation between Access
, Layer
and Operator
looks like the following:
┌─────────────────────────────────────────────────┬──────────┐
│ │ │
│ ┌──────────┐ ┌────────┐ │ │
│ │ │ │ ▼ │ │
│ s3──┐ │ │ │ Tracing Layer │ │
│ │ │ │ │ │ │ │
│ gcs──┤ │ │ │ ▼ │ │
│ ├──►│ Accessor ├──┘ Metrics Layer ┌───►│ Operator │
│ azblob──┤ │ │ │ │ │ │
│ │ │ │ ▼ │ │ │
│ hdfs──┘ │ │ Logging Layer │ │ │
│ │ │ │ │ │ │
│ └──────────┘ └──────┘ │ │
│ │ │
└─────────────────────────────────────────────────┴──────────┘