The wordcount example is perhaps the "hello world" of data processing
examples. The application here shows how to stream data from Kafka into
Redis counting the individual tokens along the way. The server provides
an endpoint for retrieving the counts for a specific topic.
# starting the server (could also be cargo run --bin wordcount-server test
$ wordcount-server test
# start the client
$ wordcount-client test-topic
<type some messages here>
# you can also pipe from stdin
# cat large-test.txt | wordcount-clinet epic-topicThen you can get the counts of the words from the server like so:
# assuming you have started wordcount-server
$ curl http://127.0.0.1:8080/counts?topic=epic-topic
# to get the top N (10 in this example) counts
$ curl 'http://127.0.0.1:8080/counts?topic=epic-topic&n=10'The required services (Redis and Kafka) can be started with the included
docker-compose file
docker-compose upThe two executables can be built with cargo as you would expect
$ cargo build <--release>Then started accordingly
$ target/<debug|release>/wordcount-server <topic-name> <topic-name> ..
$ target/<debug|release>/wordcount-client <topic-name>