laminar 0.5.0

A simple semi-reliable UDP protocol for multiplayer games
Documentation
name: tester
version: "0.1.0"
author: Fletcher Haynes <fletcher@capitalprawn.com>
about: Testing binary for laminar

subcommands:
    - server:
        about: Starts the tester in server mode
        args:
            - LISTEN_HOST:
                help: "Which host the server bind to. 0.0.0.0/0 will bind to all"
                required: true
                takes_value: true
                long: bind-host
                default_value: "127.0.0.1:2264"
                short: h
            - SHUTDOWN_TIMER:
                help: "The number of seconds the server will remain running, then shut itself down"
                required: false
                default_value: "600"
                takes_value: true
                long: shutdown
                short: s
    - client:
        about: Starts the tester in client mode
        args:
            - CONNECT_ADDR:
                help: "Which host the client will connect to, as a hostname or IP address"
                required: true
                takes_value: true
                long: connect-host
                default_value: "127.0.0.1:2264"
                short: H
            - LISTEN_HOST:
                help: "Which host the client should bind to. 0.0.0.0/0 will bind to all"
                required: true
                takes_value: true
                long: bind-host
                default_value: "127.0.0.1:2265"
                short: h
            - TEST_TO_RUN:
                help: "Which client test to run. Run 'laminar-tester show-tests' to see all available"
                required: true
                takes_value: true
                long: test
                short: t
                default_value: "steady-stream"
            - CLIENT_TIMEOUT:
                help: "How long the client will wait on the server before it times out in seconds"
                required: true
                takes_value: true
                long: timeout
                default_value: "10"
            - TEST_DURATION:
                help: "For tests based on duration, length of time it should run in seconds"
                required: false
                takes_value: true
                long: test-duration
                default_value: "60"
            - PACKETS_PER_SECOND:
                help: "How many packets per second to send for applicable tests."
                required: false
                takes_value: true
                long: pps
                default_value: "60"
            - SHUTDOWN_TIMER:
                help: "The number of seconds the client will remain running, then shut itself down"
                required: false
                default_value: "600"
                takes_value: true
                long: shutdown
                short: s
    - show-tests:
        about: Shows all tests available
        subcommands:
            - server:
                about: Shows server tests
            - client:
                about: Shows client tests