4 ms·
Show HN: Crapify, a proxy for simulating slow, spotty HTTP connections
- BenjaminCoe 12y agoAt work we've been running into problems performing npm installs over a VPN. I'm suspicious that it relates to executing too many concurrent HTTP requests. This motivated me to create crapify, a tool which lets us experiment with throttling connection speed and concurrency.
- semi-extrinsic 12y agoNice! There was a different tool in the same category, aptly named "Comcast", featured on HN a few weeks ago: https://github.com/tylertreat/Comcast https://github.com/tylertreat/Comcast
- tuananh 12y agoi thought u were being sarcastic but then you put the github's repo link there. LOL
- youngtaff 12y agoWhy not use DummyNet, Clumsy or Network Link Conditioner (depending on your OS of choice)? If you really need a HTTP proxy there are tools like Charles (although the low RTT to a proxy may change the nature of the testing)
- BenjaminCoe 12y agoMy main use-case is programmatically throttling the outbound concurrent connections to a VPN. Writing a small proxy server in Node.js seemed like a reasonable approach for this.
- spacemanmatt 12y agoBack in my network engineering days there were iptables rules to crapping up the packets. Was very useful for simulating dialup connections.
- Rygu 12y agoIf you simply need to test a website on a simulated slow connection, then Chrome Devtools. For all other purposes, this looks great!
- taf2 12y agoOn OS X you can achieve something similar using ipfw For example, sudo ipfw pipe 1 config bw 500KByte/s Limits all network on your box to 500kb/s sudo ipfw add 1 pipe 1 src-port 443 To direct all traffic through port 443 through your slow pipe sudo ipfw delete 1 When you are all done delete
- imjared 12y agoI (and folks I work with) have had really great success using Charles Proxy for per-machine bandwidth throttling. Also has some handy features like AJAX debugging. http://www.charlesproxy.com/overview/about-charles/ http://www.charlesproxy.com/overview/about-charles/
- JonnieCache 12y agoDon't the OSX devtools have a GUI for doing this? Can't remember what its called, I don't have XCode installed these days, but I remember it being pretty nifty. EDIT: its called the Network Link Conditioner and apparently you install it from within xcode now. EDIT2: I have just learned that ipfw is gone in yosemite? How distressing. Did they replace it with something?
- tylertreat 12y agoI think pfctl is the suggested replacement for ipfw, which was deprecated in Mavericks. I wrote the Comcast tool someone linked in this thread. Haven't had a chance to dive through the pfctl man pages to add support for Yosemite yet unfortunately.
- apinstein 12y agoI have Network Link Conditioner installed on my Yosemite Mac OS X box and it works fine (though it was installed prior to the Yose upgrade). I learned about it here: http://nshipster.com/network-link-conditioner/ http://nshipster.com/network-link-conditioner/
- taf2 12y agoYou are right http://apple.stackexchange.com/questions/24066/how-to-simulate-slow-internet-connections-on-the-mac http://apple.stackexchange.com/questions/24066/how-to-simula... Is a good thread to follow
- hippich 12y agoFor linux there is tool 'tc'
- Spooky23 12y agoThis is cool. If it could add random NATing between various VLANs and occasionally not open firewall ports as configured, it would be a simulation of my work environment!
- hrjet 12y agoA more complete version of this: https://github.com/lightbody/browsermob-proxy https://github.com/lightbody/browsermob-proxy * captures performance data in the HAR format. * blacklisting and whitelisting certain URL patterns * simulating various bandwidth and latency * remapping DNS lookups * flushing DNS caching * controlling DNS and request timeouts * automatic BASIC authorization * REST API