pm/draft-roadmap/streamline_dev_ex_local_dev_rust.md
2025-06-11 16:15:38 +10:00

5.0 KiB

Streamline DevEx: Mobile, Rust and Web dev

Estimated date of completion: 30 Nov

Resources Required for 2025H2:

  • nwaku 1 eng during 1 month 70% until 30 Sep - start 1st Sep
  • js-waku 1 eng 70% 1-19th Sep
  • {external services consumed (Vac/IFT)}
  • {infrastructure}

Complete the Waku API implementation in nwaku by implementing edge node mode (Status' Light Mode).

Streamline the Developer Experience by delivering a Rust SDK that implements the full Waku API and is available on crates.io. As well as building an easy-to-use local dev environment from the browser, enabling developers to build web apps without relying on external connectivity; as well as opting in and out of RLN, and include a local RLN dev environment.

Finalize the integration of nwaku in Status application by setting up nwaku-based build for Mobile platforms.

Strategic Objective

Logos Movement Community Enabling via Dev-X

FURPS

See deliverables.

Risks

Risk (Accept, Own, Mitigation)
nwaku performance Performance of nwaku in comparison to go-waku will be measured by DST during H2 and may raise issues that will become blockers for pratical usage of nwaku in Mobile.
Publishing to crates.io One of the challenge to publish libwaku on crates.io is the package size. Several strategy may be developed and tried to find a way to distribute Nim-based Rust crates.
Local dev harness Creating a local dev environment may be a challenge due to the nature of Waku and RLN, as we would need to locally coordinate bootstrap and blockchain emulation.

Deliverables

Edge Mode in Nwaku

Owner: nwaku

Feature: status-go

FURPS:

  • F2. Nwaku is the used Waku implementation for light mode.
  • S3. Light mode is supported.

Feature: nwaku

FURPS:

  • S6. libwaku support edge node functionalities.

Checklist:

  • Specs: link to specs and/or API definition
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

Nwaku in Status Mobile

Owner: nwaku

Feature: status-go

FURPS:

  • S4. Status Mobile binary for Android and iOS.

  • S5. Status Tablet binary for Android and iOS.

  • +2. Status Mobile and Tablet CI builds binaries with nwaku, alongside go-waku-based binaries.

Checklist:

  • Specs: link to specs and/or API definition
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

Waku Rust SDK

Owner: nwaku

Feature: Waku API

FURPS:

  • S4. Rust; available on crates.io.

Checklist:

  • Specs: link to specs and/or API definition
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

Local Web Dev Harness

Owner: js-waku

Feature: Local Web Dev Harness

FURPS:

  • F1. Runs local Waku node to test Web application without relying on external connectivity.

  • F2. js-waku runs in NodeJS for testing and CI purposes.

  • U1. Developer only need to run a script or preset to start local Waku node and have their web app connect to it.

  • U2. Potential WSS/HTTPS issues are worked around so that developer does need to manually generate or import SSL certificates.

  • U3. There is an easy option for the developer to bootstrap and connect to local node, instead of external peers.

  • S1. Linux and Mac development environments.

  • S2. Local network without RLN.

  • S3. Chrome and Firefox browsers.

Checklist:

  • Specs: link to specs and/or API definition
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

Local Dev RLN Harness

Owner: nwaku

Feature: Local Dev RLN Harness

FURPS:

  • F1. Runs local Ethereum environment.

  • F2. Deploys ERC-20 and RLN smart contract.

  • F3. Utility to fund wallet addresses with necessary tokens for deposit for RLN membership registration.

  • U1. Developer only need to run a script to setup local blockchain environment.

  • U2. Developers can run documented RPC calls to fund wallet addresses.

  • U3. Developers can run documented RPC calls to interact with RLN smart contract.

Checklist:

  • Specs: link to specs and/or API definition
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)\