Blogmarks

Apache OpenDAL

One API for every storage backend

Swap providers without touching application code. The abstraction that makes the Pod promise portable.

What is Apache OpenDAL?

Apache OpenDAL is a unified data access layer written in Rust. It provides a single Operator API for reading, writing, listing, and deleting across more than forty storage backends — including WebDAV (the protocol Solid Pods expose), local filesystem, S3-compatible stores, and in-memory backends for testing.

The value is backend portability. Application code uses one API. Switching from a local filesystem in development to a Solid Pod in production is a configuration change, not a code change. The abstraction does not leak Solid-specific concerns into application logic.

OpenDAL is feature-gated: only the backends you actually use are compiled in. This keeps the binary small and the attack surface minimal. It is a Top-Level Apache Software Foundation project — stable, audited, and governed by a foundation with a track record of long-term stewardship.

Why it matters

Every storage library that targets a specific backend creates lock-in. Code that uses the AWS S3 SDK is locked to S3-compatible stores. Code that uses the WebDAV client is locked to WebDAV. If the Pod ecosystem evolves to a different protocol, that code must be rewritten.

OpenDAL's abstraction means Blogmarks is not locked to any specific storage backend. The Solid Pod is the current implementation of the storage interface — but the interface itself is stable. If a better decentralized storage protocol emerges, Blogmarks can add an OpenDAL adapter and switch without touching the application logic.

This is the engineering complement to the Solid commitment. Solid says your data is portable. OpenDAL says the code that serves your data is portable too.

How Blogmarks uses this

Blogmarks uses OpenDAL as the storage access layer between all Rust components and the Solid Pod. The MCP server reads assets through OpenDAL. The ingestion pipeline writes through it.

In tests, the in-memory backend eliminates network dependencies entirely — the same application code runs against a local in-memory store in CI and against a real WebDAV Pod in production. No mocking, no test doubles, no conditional logic.

OpenDAL is feature-gated to include only the backends Blogmarks needs: WebDAV for production Solid Pods, local filesystem for development, and memory for testing. The compiled binary includes only what it uses.

Further reading

  1. [1]
    Apache OpenDAL Contributors. Apache OpenDAL Documentation. Apache Software Foundation, 2024(Open source project)
  2. [2]
    Joe Reis, Matt Housley. Fundamentals of Data Engineering. O'Reilly Media, 2022
  3. [3]
    James Serra. Deciphering Data Architectures. O'Reilly Media, 2024

O'Reilly titles researched via O'Reilly for Learning.