nwaku/examples
NagyZoltanPeter dac072f843
feat: HTTP REST API: Filter support v2 (#1890)
Filter v2 rest api support implemented 
Filter rest api documentation updated with v1 and v2 interface support.
Separated legacy filter rest interface
Fix code and tests of v2 Filter rest api
Filter v2 message push test added
Applied autoshard to Filter V2
Redesigned FilterPushHandling, code style, catch up apps and tests with filter v2 interface changes
Rename of FilterV1SubscriptionsRequest to FilterLegacySubscribeRequest, fix broken chat2 app, fix tests
Changed Filter v2 push handler subscription to simple register
Separate node's filterUnsubscribe and filterUnsubscribeAll
2023-09-14 21:28:57 +02:00
..
cbindings chore(cbindings): Thread-safe libwaku. WakuNode instance created directly from the Waku Thread (#1957) 2023-09-01 08:37:02 +02:00
nodejs Adding example on how to integrate a Waku node in NodeJs (#1751) 2023-08-02 10:45:15 +02:00
python feat(cbindings): tiny waku relay example in Python (#1793) 2023-07-31 17:54:26 +02:00
README.md chore: remove references to v2 (#1898) 2023-08-09 18:11:50 +01:00
filter_subscriber.nim feat: HTTP REST API: Filter support v2 (#1890) 2023-09-14 21:28:57 +02:00
lightpush_publisher.nim chore: remove references to v2 (#1898) 2023-08-09 18:11:50 +01:00
nim.cfg chore: remove references to v2 (#1898) 2023-08-09 18:11:50 +01:00
publisher.nim feat(discv5): topic subscriptions update discv5 filter predicate (#1918) 2023-08-23 11:50:59 -04:00
subscriber.nim feat(discv5): topic subscriptions update discv5 filter predicate (#1918) 2023-08-23 11:50:59 -04:00

README.md

Examples

Compile

Make all examples.

make example2

## basic2

TODO

## publisher/subscriber

Within examples/ you can find a publisher and a subscriber. The first one publishes messages to the default pubsub topic on a given content topic, and the second one runs forever listening to that pubsub topic and printing the content it receives.

Some notes:

  • These examples are meant to work even in if you are behind a firewall and you can't be discovered by discv5.
  • You only need to provide a reachable bootstrap peer (see our fleets)
  • The examples are meant to work out of the box.
  • Note that both services wait for some time until a given minimum amount of connections are reached. This is to ensure messages are gossiped.

Run:

Wait until the subscriber is ready.

./build/subscriber

And run a publisher

./build/publisher

See how the subscriber received the messages published by the publisher. Feel free to experiment from different machines in different locations.

resource-restricted publisher/subscriber (lightpush/filter)

To illustrate publishing and receiving messages on a resource-restricted client, examples/v2 also provides a lightpush_publisher and a filter_subscriber. The lightpush_publisher continually publishes messages via a lightpush service node to the default pubsub topic on a given content topic. The filter_subscriber subscribes via a filter service node to the same pubsub and content topic. It runs forever, maintaining this subscription and printing the content it receives.

Run Start the filter subscriber.

./build/filter_subscriber

And run a lightpush publisher

./build/lightpush_publisher

See how the filter subscriber receives messages published by the lightpush publisher. Neither the publisher nor the subscriber participates in relay, but instead make use of service nodes to save resources. Feel free to experiment from different machines in different locations.