Skip to main content

wasm-opt for Rust Maintenance

  • Team Name: Common Orbit LLC
  • Payment Address: (Ethereum DAI) 0x2de31E52E24Df0588C64B27657D4F75e5462adEf
  • Level: 3

Project Overview 📄

This is a followup to the wasm-opt for Rust grant, which completed successfully on November 11.

Overview

wasm-opt for Rust is a project to create Rust bindings to Binaryen's wasm-opt tool. It allows creators of WebAssemly toolchains written in Rust to directly optimize their WebAssembly output instead of calling a 3rd-party non-Rust binary.

It has been integrated into

This grant will primarily provide funding to update the wasm-opt crate following new releases of Binaryen, after which we will also upgrade cargo-contract and wasm-builder.

We will also fix some outstanding issues that were out of scope for the previous grant, and respond to new bug reports and feature requests as they arrive.

This project should continue to be supported because it is part of the Substrate and Ink! toolchains; the underlying Binaryen code receives approximately six new releases yearly; and it will take effort to maintain the wasm-opt bindings as the Binaryen code changes.

Maintenance list

Please provide a list of the repo(s) that need maintenance and further development:

Team 👥

Team members

Contact

  • Registered Address: 16192 Coastal Highway, Lewes, Delaware 19958
  • Registered Legal Entity: Common Orbit LLC

Team's experience

The team lead is one of the original authors of the Rust programming language, with 12 years of Rust experience. They have performed Rust work for Mozilla, Reddit, PingCAP, Solana, MobileCoin, Parity, Nervos, and the Web3 Foundation. Both team members are maintainers of the Rust in Blockchain newsletter.

The team has previously completed the wasm-opt for Rust grant under the same legal entity.

Team Code Repos

Team LinkedIn Profiles (if available)

N/A

Development Status 📖

The project is functionally complete and is expected to continue in maintenance-mode. Its development was documented in a blog post.

Progress is tracked on the issue tracker.

Maintenance Responsibilities 🔩

The primary need for a maintenance grant is to update the crate following new releases of Binaryen.

In both 2021 and 2022 there were six releases of Binaryen. We already have experience with one upgrade that required approximately 10 hours of work.

Note that there has been a new release of Binaryen since the completion of the previous grant. Upgrading to that release will be performed under this maintenance grant.

Our responsibilities:

  • Update and publish new versions of the wasm-opt crate when new versions of Binaryen are released.
  • Submit PRs to upgrade wasm-opt in cargo-contract and wasm-builder when new versions are published.
  • Fix reported bugs if possible and within budget.
  • Implement minor feature requests if disirable and within budget.

Issues we want to fix:

Overview

  • Start Date: 2022/12/01
  • Sprint/Period Duration: 4 weeks
  • Total Duration: 1 year
  • Full-Time Equivalent (FTE): 0.1
  • Max budget per sprint/period: 6000 USD
  • Hourly rate: 300 USD

We expect this project to require light maintenance, that most months the full budget will not be required, that some months may require no work. The first few months will likely have above-average activity as we resolve outstanding issues.

The monthly budget is calculated based on the following:

  • 10 hours to upgrade Binaryen
  • 300 USD / hour
  • x2 for unforseen obstacles

This implies that a particularly difficult upgrade could exceed the monthly budget. In such a case the work would spill over across multiple months, and we might forego other maintenance work.

Future Plans

We intend to upgrade the wasm-opt crate following new releases of Binaryen for as long as the project remains funded.

We expect minor bug reports and feature requests, but do not intend to make major changes to the project, or introduce major new features.

We expect to continue to be involved in the Substrate / Ink! ecosystems, and to make additional grant proposals related to WebAssembly, Ink!, and Substrate in the future.

Additional Information ➕

How did you hear about the Maintenance Grants Program? personal recommendation