mirror of
https://github.com/logos-messaging/logos-delivery-rust-bindings.git
synced 2026-07-30 06:53:29 +00:00
examples/ is its own cargo workspace and only examples/basic is a member of the root one, so nothing built from the repo root ever compiled these two. They still used waku_new, set_event_callback, WakuEvent and the WakuNodeHandle typestate, none of which exist any more. Both collapse their App<State> typestate: the node no longer carries one, so neither can the app wrapping it. Event handling shrinks to a single add_on_received_message_listener -- the filter on content topic stays, but the enum match, the JSON parse and the panics on unexpected variants go, since a listener only receives what it registered for. Payloads are base64-decoded by the caller now. The store DTOs (StoreQueryRequest, StoreResponse, StoreWakuMessageResponse) come back as general/store.rs: they are plain serde shapes, and deleting node/store.rs took them out along with the FFI call they sat next to. toy-chat needs them to build the store query JSON and read the response. CI gains a check over examples/Cargo.toml. Without it these rot silently on the next API change, which is exactly how they got here. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
This is a tic-tac-toe example that aims to show how to deal with a Waku node in an app with UI. The example is very naïve and it assumes only two tic-tac-toe instances are running globally. Therefore, the game messages might collide with other plays.
The game board is shown within a Rust eframe.
What it does
- Instantiates one Waku node
- Starts the Waku node
- Registers the node to waku events (messages, connection change, topic health, etc.)
- Subscribes de node to the game_topic
How to run
From within the examples/tic-tac-toe/ foder run:
cargo run
Another player can start their instance in either another terminal or another machine.