/congo

bikeshed for various utilities

Primary LanguageCGNU Affero General Public License v3.0AGPL-3.0

Congo

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.

Utilities

This is a short list of the utilities currently provided.

congo-bench-net

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.

congo-proxy

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.

congo-fuzzer

This is just an example to go about how to write a network protocol fuzzer. Please add more fuzzers if you can.

congo-ping

A simple utility to repeatedly ping a server using the wire-protocol and command {"ping": 1}.

congo-stat

Dump high-performance counters from shared memory as recorded by congo processes.