project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

WalrusSDK for iOS

iWalrusSDK is an iOS SDK for interacting with Walrus decentralised storage service in iOS

WalrusSDK for iOS

Created At

ETHGlobal Cannes

Winner of

Walrus

Walrus - Best developer tool for Walrus

Project Description

iWalrusSDK is an iOS SDK crafted to deliver smooth uploading, downloading, secure publisher authentication, and streaming of binary blobs, all while leveraging advanced caching to boost performance and efficiency. Designed to work seamlessly with Walrus—a decentralized blob storage service—it uses configurable publisher and aggregator services through the Walrus HTTP API to enable robust and resilient data transfer workflows. At its core is the versatile and secure WalrusClient, which manages interactions with backend APIs by intelligently handling data transfers and caching, with optional support for insecure (non-SSL-validated) connections when required. Compatible with iOS 15.0+ and macOS 12.0+, the SDK offers flexible uploading from memory or file with metadata, automatic and customizable local blob caching to minimize redundant network requests, efficient streaming for large files without overwhelming device memory, and precise publisher authentication to ensure secure data exchange. Additional features include metadata retrieval via HTTP HEAD requests, configurable timeouts for all network operations to handle unreliable connections gracefully, and seamless integration into decentralized storage environments for fault-tolerant and distributed data storage.

How it's Made

I built iWalrusSDK in Swift, using URLSession for HTTP networking, Combine for streaming support and real-time progress updates, and FileManager for efficient local blob caching. These components are organized behind a clean and ergonomic WalrusClient interface, making the core API intuitive and straightforward to use. One slightly unconventional part was adding an option to bypass SSL validation by injecting a custom URLSessionDelegate, which proved useful for testing against non-production or self-signed servers. Bringing in Combine allowed for seamless integration of aggregation logic and responsive streaming workflows, and wrapping everything into a modular framework made the SDK easy to embed in projects or add via Swift Package Manager.

background image mobile

Join the mailing list

Get the latest news and updates