HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
tylertreat
comcast
Go2014–2024
tylertreat / comcast

comcast

Simulating shitty network connections so you can build better systems.

26Distinct people
27Mentions
1Explicit recommenders
10.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Simulating shitty network connections so you can build better systems.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

On a similar note, my favorite-named network testing tool: https://github.com/tylertreat/comcast

Arubis used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year27 dated mentions

Observed mentions: 2014-11-13 03:09:17 UTC to 2024-01-16 14:32:25 UTC.

0123452014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC211
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC413
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC303
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC312
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC404
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC312
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC505
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Comcast Testing distributed systems under hard failures like network partitions and instance termination is critical, but it's also important we test them under less catastrophic conditions because this is what they most often experience. Comcast is a tool designed to simulate common network problems like latency, bandwidth restrictions, and dropped/reordered/corrupted packets. It works by wrapping up some system tools in a portable(ish) way. On BSD-derived systems such as OSX, we use tools like ipfw and pfctl to inject failure. On Linux, we use iptables and tc. Comcast is merely a thin wrapper around these controls. Windows support may be possible with wipfw or even the native network stack, but this has not yet been implemented in Comcast and may be at a later date. Installation $ go install github.com/tylertreat/comcast@latest Path addition may be needed In unix-like systems, after installing comcast with go, it may be needed to add it to the PATH. Go installs by default in $HOME/go/bin. $ export PATH=$PATH:$HOME/go/bin Usage On Linux, Comcast supports several options: device, latency, target/default bandwidth, packet loss, protocol, and port number. $ comcast --device=eth0 --latency=250 --target-bw=1000 --default-bw=1000000 --packet-loss=10% --target-addr=8.8.8.8,10.0.0.0/24 --target-proto=tcp,udp,icmp --target-port=80,22,1000:2000 On OSX, Comcast will check for pfctl support (as of Yosemite), which supports the same options as above. If pfctl is not available, it will use ipfw instead, which supports device, latency, target bandwidth, and packet-loss options. On BSD (with ipfw), Comcast currently supports only: device, latency, target bandwidth, and packet loss. $ comcast --device=eth0 --latency=250 --target-bw=1000 --packet-loss=10% This will add 250ms of latency, limit bandwidth to 1Mbps, and drop 10% of packets to the targetted (on Linux) destination addresses using the specified protocols on the specified port numbers (slow lane). The default bandwidth specified will apply to all egress traffic (fast lane). To turn this off, run the following: $ comcast --stop By default, comcast will determine the system commands to execute, log them to stdout, and execute them. The --dry-run flag will skip execution. I don't trust you, this code sucks, I hate Go, etc. If you don't like running code that executes shell commands for you (despite it being open source, so you can read it and change the code) or want finer-grained control, you can run them directly instead. Read the man pages on these things for more details. Linux On Linux, you can use iptables to drop incoming and outgoing packets. $ iptables -A INPUT -m statistic --mode random --probability 0.1 -j DROP $ iptables -A OUTPUT -m statistic --mode random --probability 0.1 -j DROP Alternatively, you can use tc which supports some additional options. $ tc qdisc add dev eth0 root netem delay 50ms 20ms distribution normal $ tc qdisc change dev eth0 root netem reorder 0.02 duplicate 0.05 corrupt 0.01 To reset: $ tc qdisc del dev eth0 root netem BSD/OSX To shape traffic in BSD-derived systems, create an ipfw pipe and configure it. You can control incoming and outgoing traffic separately for any specific host or network. $ ipfw add 1 pipe 1 ip from me to any $ ipfw add 2 pipe 1 ip from any to me $ ipfw pipe 1 config delay 500ms bw 1Mbit/s plr 0.1 To reset: $ ipfw delete 1 Note: ipfw was removed in OSX Yosemite in favor of pfctl. Network Condition Profiles Here's a list of network conditions with values that you can plug into Comcast. Please add any more that you may come across. Name Latency Bandwidth Packet-loss GPRS (good) 500 50 2 EDGE (good) 300 250 1.5 3G/HSDPA (good) 250 750 1.5 DIAL-UP (good) 185 40 2 DSL (poor) 70 2000 2 DSL (good) 40 8000 0.5 WIFI (good) 40 30000 0.2 Starlink 20 - 2.5
Read the full README on GitHub

What Hacker News says

27 sources
I knew GitHub is not a tiny website, but I didn't imagine how big it actually is. Each of those dots are giant parts of someone's life. There are a lot of interests that I didn't know exist. For example https://github.com/cat-milk/Anime-Girls-Holding-Programming-... - someone collects anime girls holding programming books. https://github.com/tylertreat/Comcast - and here is someone who is amazing at coming up with funny project names =)
In Hundreds of millions of stars turned into a map of GitHub projects

Showing the 15 most recent of 27 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.