Menu

Other Integrations

Relevant source files

This page documents OpenDAL's ecosystem integrations beyond the object_store crate. These integrations enable OpenDAL to work with various data access patterns, protocols, and platform-specific APIs. For information about the object_store integration specifically, see object_store Integration.

Integration Architecture Overview

OpenDAL provides several specialized integration crates that bridge OpenDAL's unified storage API with different data access paradigms and protocols.

Integration Architecture Overview
Sources: integrations/fuse3/Cargo.toml18-42 integrations/dav-server/Cargo.toml18-42 integrations/parquet/Cargo.toml18-48 bin/ofs/Cargo.toml47-56 bin/oay/Cargo.toml42-48

FUSE Integration

The fuse3_opendal crate provides FUSE (Filesystem in Userspace) integration, allowing any OpenDAL storage service to be mounted as a local filesystem on Unix-like systems.

Implementation Details

The FUSE integration implements the FUSE protocol to translate filesystem operations into OpenDAL operations:

FUSE Integration Flow
Sources: integrations/fuse3/Cargo.toml30-39 bin/ofs/Cargo.toml47-51

Usage in ofs Application

The ofs application uses fuse3_opendal to mount storage services as filesystems:

PlatformIntegrationPurpose
Linux, FreeBSD, macOSfuse3_opendalFUSE-based filesystem mounting
Windowscloud_filter_opendalWindows Cloud Filter API support

Sources: bin/ofs/Cargo.toml47-56

WebDAV Integration

The dav-server-opendalfs crate implements a WebDAV server backend using OpenDAL, enabling access to storage services through the WebDAV protocol.

WebDAV Implementation

WebDAV Integration Architecture
Sources: integrations/dav-server/Cargo.toml18-42

Usage in oay Gateway

The oay application uses dav-server-opendalfs to expose storage services via WebDAV:

oay WebDAV Integration
Sources: bin/oay/Cargo.toml36-48

Parquet Integration

The parquet_opendal crate provides integration with Apache Parquet, implementing async I/O traits for reading and writing Parquet files through OpenDAL.

Parquet I/O Implementation

The integration implements Parquet's async I/O traits:

TraitPurposeOpenDAL Mapping
AsyncFileReaderReading Parquet filesMaps to Operator.reader()
AsyncFileWriterWriting Parquet filesMaps to Operator.writer()

Integration Features

Parquet Integration Components
Sources: integrations/parquet/Cargo.toml30-48

Example Use Cases

The Parquet integration enables:

  • Reading columnar data from any OpenDAL-supported storage
  • Writing Parquet files to cloud storage services
  • Integration with Apache Arrow and DataFusion
  • Efficient analytics workloads over distributed storage

Sources: integrations/parquet/Cargo.toml49-56

Platform-Specific Integrations

Windows Cloud Filter

For Windows systems, OpenDAL provides cloud_filter_opendal integration that uses the Windows Cloud Filter API for more native filesystem integration:

Windows Cloud Filter Integration
Sources: bin/ofs/Cargo.toml53-56

Integration Dependencies

The integration crates have the following dependency relationships:

IntegrationCore DependenciesExternal Dependencies
fuse3_opendalopendal, tokiofuse3, libc
dav-server-opendalfsopendal, bytesdav-server, futures
parquet_opendalopendal, bytesparquet, arrow
cloud_filter_opendalopendalcloud-filter

Sources: integrations/fuse3/Cargo.toml30-39 integrations/dav-server/Cargo.toml30-36 integrations/parquet/Cargo.toml30-39 bin/ofs/Cargo.toml53-56