S5 v1: Rewrite it in Rust (Large Grant Proposal)

Progress Report (September)

What progress was made on your grant this month?

Milestone Tasks Progress

Can be validated by running cargo test in the s5_fs subdirectory

Can be validated by running cargo test in the s5_core subdirectory

Other process

Remaining Tasks

  • Migrate the TypeScript library to the new file system

Jules has been busy with migrating most of s5.js to the new CBOR-based directory metadata structures, in October we will work together on upstreaming his changes to the official s5.js repository (see GitHub - julesl23/s5.js: TypeScript/JS Library for S5 · GitHub)

  • specs impl: accounts, identity

instead of implementing a completely custom identity solution, s5 now simply uses iroh ed25519 public keys for node identity and will likely use atproto’s did:plc for public identities covering multiple nodes.

What will you be working on next?

  • Work with Jules on upstreaming his changes to s5.js so they are properly migrated to be compatible with s5-rs and S5 v1

  • Extending the config format to allow configuring trusted third-party nodes and upload+pinning targets

  • Implement Sia RHP4 uploads and downloads in S5 using indexd

  • Make the RHP4 WASM-based blob proxy production ready, so devs can easily use files streamed directly from Sia hosts in their web apps

  • Release a stable v1 version of all S5 libraries and code

1 Like