Download

Releases

Notice: clumsy only support Windows Vista, Windows 7 and above. 64bit Windows users are strongly recommanded to download the 64bit build.

0.3

Install

Extract downloaded zip file to arbitrary directory and execute clumsy.exe. clumsy is alpha quality software and does have some gotchas. Be sure to read the manual page before using it.

Build

0.3

With 0.3 we've setup clumsy to be built with Zig and it's how we build the shipping binaries.
  1. Download a copy of zig 0.9.1 here
  2. Open build.zig and check that Windows SDK path is correct on your machine.
    It's hardcoded as C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0
  3. Then you can run the commands below to build:

    # build shipping binaries
    zig build -Dconf=Ship -Darch=x64 -Dsign=A
    zig build -Dconf=Ship -Darch=x64 -Dsign=B
    zig build -Dconf=Ship -Darch=x64 -Dsign=C
    zig build -Dconf=Ship -Darch=x86 -Dsign=A
    zig build -Dconf=Ship -Darch=x86 -Dsign=B
    zig build -Dconf=Ship -Darch=x86 -Dsign=C 
                    

Acknowledgements

Here's a list of things used to build clumsy.

  • WinDivert used to handle the magical Windows packet capturing/reinjecting. It installs network drivers at runtime and removes it when closing, encapsuled the underdocumented Windows Filtering Platform, does a bunch of things that non Windows developers can hardly figure out how in years. WinDivert jam all these into a handful of functions for you to use for free, while similar commercial solution costs thousands.
  • IUP Portable User Interface ANSI C library to build native cross platform GUI. It's so wonderfully designed and you can pick it up in a single day, and it's a full funcion GUI toolkit in C. Think about it.
  • LICEcap free and open source gif capturing that just works.

Similar softwares

Here's a list of simlilar softwares aiming to solve the same problem, provided in case of looking for alternatives.

  • Network Emulator for Windows Toolkit (Windows) - network emulator provided by Microsoft.
  • ipfw or pfctl (FreeBSD/OSX) - low level packet filter.
  • wipfw (Windows) - ipfw Windows port with only a subset of functions.
  • netem (Linux) - Linux kernel supported network emulation.
  • tc (Linux) - Configure traffic control in the Linux kernel.
  • Throttle (Mac) - Simulate 3G network through shared wireless network.
  • Network Link Conditioner (Mac) - XCode bundled network conditioner.

License

The MIT License (MIT)