pm/draft-roadmap/streamline_dev_ex_local_dev_rust.md
2025-06-10 22:00:20 +10:00

4.4 KiB

Streamline DevEx: Mobile, Rust and Web dev

Estimated date of completion: {Enter date} TODO

Resources Required for 2025H2:

  • {roles and % application to it}
  • {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

TODO: Clarify with Leonard

FURPS

TODO

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: {Feature Name (only 1)} TODO

FURPS:

  • {F1. copy-paste full furps statement}

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: {Feature Name (only 1)} TODO

FURPS:

  • {F1. copy-paste full furps statement}

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: {Feature Name (only 1)} TODO

FURPS:

  • {F1. copy-paste full furps statement}

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 RLN Dev Harness

Owner: ? (nwaku? core-research?) TODO

Feature: {Feature Name (only 1)}

FURPS:

  • {F1. copy-paste full furps statement}

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

TODO: update milestone 1 js-waku engineer, 70% cap allocated; start 1st Sep, end 19th Sep;

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)