Congo is a set of Coroutine based class libraries to help write concurrent systems.
BSON support is provided via libbson and is bundled with this project.
This is a short list of the utilities currently provided.
A coroutine based socket client that will spawn up as many coroutines as you'd like to execute commands against an implementation of the wire protocol.
You can see a sample configuration file in examples/
for how to execute arbitrary operations in the process.
This should feel similar to apache-bench
.
congo-bench-net --help
for more information.
This is a transparent proxy server.
It is useful if you simply want to see everything going to a pariticular server.
Currently, it just does basic logging to the console.
This is a good start if you want to write something more complex.
You need to configure your clients to connect to this daemon, but in doing so it should be a lot faster than something like tcpdump
.
This is just an example to go about how to write a network protocol fuzzer. Please add more fuzzers if you can.
A simple utility to repeatedly ping a server using the wire-protocol and command {"ping": 1}
.
Dump high-performance counters from shared memory as recorded by congo processes.