haydenbleasel/files-sdk
A unified storage SDK for object and blob backends. One small, honest API. Web-standards I/O.
What it solves
It eliminates the need to write provider-specific code when working with different object and blob storage backends. Instead of managing separate integrations for S3, Google Cloud Storage, Azure, or Vercel Blob, developers can use a single, unified API to handle file operations.
How it works
The SDK provides a common interface for standard actions like uploading, downloading, and deleting files. It uses a system of adapters for different storage providers; you install the specific native SDK for the provider you need, and files-sdk wraps it in a consistent API. It uses web-standard I/O (such as Blobs and ReadableStreams) to ensure that provider-specific types do not leak into the application code. For advanced needs, it provides a "raw" escape hatch to access the underlying native client.
Who it’s for
Backend and full-stack developers who want to avoid vendor lock-in or who need their application to support multiple storage backends without rewriting their storage logic.
Highlights
- Unified API: Consistent methods (
upload,download,exists, etc.) across S3, GCS, Azure, Vercel Blob, and local filesystems. - AI Tool Integration: Includes ready-made wrappers to expose storage operations as tools for the Vercel AI SDK, OpenAI's Responses/Agents SDK, and Anthropic's Claude Agent SDK.
- Web-Standard I/O: Supports
Blob,File,ReadableStream, and other standard types. - Tree-shakeable: Adapters are separate entry points, ensuring only the necessary code is bundled.