2025-06-05 15:46:02 +10:00
# Streamline DevEx: Mobile, Rust and Web dev
2025-06-11 15:24:04 +10:00
**Estimated date of completion**: 30 Nov
2025-06-05 15:46:02 +10:00
**Resources Required for 2025H2**:
2025-06-12 21:40:18 +10:00
- nwaku 3 eng during 6 weeks
- js-waku 2 eng 6 Week Sep
2025-06-05 15:46:02 +10:00
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
2025-06-12 21:40:18 +10:00
relying on external connectivity. Provide a similar harness to deploy a local RLN dev environment.
2025-06-05 15:46:02 +10:00
Finalize the integration of nwaku in Status application by setting up nwaku-based build for Mobile platforms.
2025-06-12 21:40:18 +10:00
Lastly, develop a PoC protocol to demonstrate the usage of Waku as a Signal network, using WebRTC as example.
This was identified as a demanded demonstration of Waku's capabilities as part of the [Waku MVP analysis ](https://www.notion.so/Waku-MVP-1838f96fb65c8039acabf8a6a1e689e7 ).
2025-06-10 15:37:18 +10:00
## Strategic Objective
2025-06-11 15:24:04 +10:00
Logos Movement Community Enabling via Dev-X
2025-06-10 15:37:18 +10:00
## FURPS
2025-06-11 16:15:38 +10:00
See deliverables.
2025-06-10 15:37:18 +10:00
## Risks
2025-06-05 15:46:02 +10:00
2025-06-10 15:37:18 +10:00
| 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. |
2025-06-05 15:46:02 +10:00
2025-06-10 15:37:18 +10:00
## Deliverables
2025-06-05 15:46:02 +10:00
2025-06-10 15:37:18 +10:00
### Edge Mode in Nwaku
2025-06-05 15:46:02 +10:00
**Owner**: nwaku
2025-06-11 15:24:04 +10:00
#### **Feature**: [status-go](/FURPS/application/status_go.md)
2025-06-05 15:46:02 +10:00
**FURPS**:
2025-06-11 15:24:04 +10:00
- F2. Nwaku is the used Waku implementation for light mode.
- S3. Light mode is supported.
#### **Feature**: [nwaku](/FURPS/application/nwaku.md)
**FURPS**:
- S6. libwaku support edge node functionalities.
2025-06-05 15:46:02 +10:00
**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)
2025-06-10 15:37:18 +10:00
### Nwaku in Status Mobile
2025-06-05 15:46:02 +10:00
**Owner**: nwaku
2025-06-11 15:24:04 +10:00
**Feature**: [status-go ](/FURPS/application/status_go.md )
2025-06-05 15:46:02 +10:00
**FURPS**:
2025-06-11 15:24:04 +10:00
- 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.
2025-06-05 15:46:02 +10:00
**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)
2025-06-10 15:37:18 +10:00
### Waku Rust SDK
2025-06-05 15:46:02 +10:00
**Owner**: nwaku
2025-06-13 00:12:03 +10:00
**Feature**: [Waku SDK(/FURPS/core/waku_sdk.md)
2025-06-05 15:46:02 +10:00
**FURPS**:
2025-06-11 15:24:04 +10:00
- S4. Rust; available on crates.io.
2025-06-05 15:46:02 +10:00
**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)
2025-06-10 15:37:18 +10:00
### Local Web Dev Harness
2025-06-05 15:46:02 +10:00
**Owner**: js-waku
2025-06-10 16:09:35 +10:00
**Feature**: [Local Web Dev Harness ](/FURPS/application/local_web_dev_harness.md )
2025-06-05 15:46:02 +10:00
**FURPS**:
2025-06-10 16:09:35 +10:00
- 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.
2025-06-05 15:46:02 +10:00
**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)
2025-06-10 22:19:14 +10:00
2025-06-11 15:24:04 +10:00
### Local Dev RLN Harness
2025-06-10 22:19:14 +10:00
**Owner**: nwaku
2025-06-11 15:24:04 +10:00
**Feature**: [Local Dev RLN Harness ](/FURPS/application/local_dev_rln_harness.md )
2025-06-10 22:19:14 +10:00
**FURPS**:
2025-06-11 15:24:04 +10:00
- 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.
2025-06-10 22:19:14 +10:00
**Checklist**:
- [ ] Specs: link to specs and/or API definition
- [ ] Code: link to GitHub issues/PRs/Epic
- [ ] Dogfood: link to dogfooding session/artefact
2025-06-12 21:40:18 +10:00
- [ ] Docs: links to README.md or docs.waku.org (TBD)
### [Waku as a Signal Network (WebRTC) PoC](https://github.com/waku-org/pm/issues/298)
**Owner**: js-waku
**Feature**: [Waku as a Signal Network ](/FURPS/application/signal_network.md )
**FURPS**:
- F1. Establishes a direct connection between two peers using Waku as a signaling layer
- U1. Developers have access to a simple API: single entry `connect` function and event-based inbound handling.
- R1. End-to-end reliability is implemented for the signaling conversation.
- R2. No provided reliability for established connections, left to the developer (e.g. keep alive).
- S1. Developers can use this protocol in web application, imported from npmjs.com.
- S2. Developers can use this protocol to initiate WebRTC connections.
- +1. Signaling payloads are end-to-end encrypted.
- +2. STUN and TURN servers may be required for WebRTC usage.
**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)