Available on
docs
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
Accessor
,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 Accessor
or their own
Layer
.
In this section, we will talk about the following components:
Accessor
: to connect underlying storage services.Layer
: middleware/interceptor between storage services.
The relation between Accessor
, Layer
and Operator
looks like the following:
┌─────────────────────────────────────────────────┬──────────┐
│ │ │
│ ┌──────────┐ ┌────────┐ │ │
│ │ │ │ ▼ │ │
│ s3──┐ │ │ │ Tracing Layer │ │
│ │ │ │ │ │ │ │
│ gcs──┤ │ │ │ ▼ │ │
│ ├──►│ Accessor ├──┘ Metrics Layer ┌───►│ Operator │
│ azblob──┤ │ │ │ │ │ │
│ │ │ │ ▼ │ │ │
│ hdfs──┘ │ │ Logging Layer │ │ │
│ │ │ │ │ │ │
│ └──────────┘ └──────┘ │ │
│ │ │
└─────────────────────────────────────────────────┴──────────┘