Video thumbnail

walrus-sync

A CLI tool for uploading one or multiple files to Walrus and resume uploads that are incomplete.

walrus-sync

Created At

ETHGlobal Cannes

Project Description

Walrus provides a CLI and an SDK to manage file uploads in a seamless way. The current project provides automation around the functionality that is already provided by the SDK. More specifically, the current tool aspires to be like rsync since in real systems and networks communication might be interrupted. Therefore, a CLI tool that allows multi-file uploads which can be resumed in case they are incomplete is necessary for real life applications. The current project is a proof of concept and a showcase of the capabilities of Walrus and can be extended with additional functionality.

How it's Made

The project is a TypeScript application that heavily utilizes the @mysten/sui and @mysten/walrus TypeScript SDKs which provide the necessary communication with the Sui network and the Walrus protocol for uploading and store files. Instead of using the high-level WalrusClient.writeBlob() function which is useful for building applications which use Walrus for storage, walrus-sync uses the intermediate functions that provide the step-by-step communication with Sui and Walrus to keep track of the current state of each upload and be able to resume if the upload is interrupted. The state for the upload of each file is stored in a file locally, so the user can resume the upload if necessary. In addition, the CLI uses commander to provide a nice and well documented help text to users.

background image mobile

Join the mailing list

Get the latest news and updates