HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
jamesmoriarty
forward-proxy
Ruby2021–2021
jamesmoriarty / forward-proxy

forward-proxy

Minimal HTTP(S) forward proxy using 150LOC and only standard libraries.

4Distinct people
5Mentions
0Explicit recommenders
151GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Minimal HTTP(S) forward proxy using 150LOC and only standard libraries.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

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, 12:54:37 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 3-hour interval5 dated mentions

Observed mentions: 2021-01-17 02:40:45 UTC to 2021-01-18 18:29:06 UTC.

0122021-01-17 00:00:00 UTC to 2021-01-17 03:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsJan 17, 00:002021-01-17 03:00:00 UTC to 2021-01-17 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-17 06:00:00 UTC to 2021-01-17 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-17 09:00:00 UTC to 2021-01-17 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-17 12:00:00 UTC to 2021-01-17 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-17 15:00:00 UTC to 2021-01-17 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-17 18:00:00 UTC to 2021-01-17 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-17 21:00:00 UTC to 2021-01-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJan 17, 21:002021-01-18 00:00:00 UTC to 2021-01-18 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-18 03:00:00 UTC to 2021-01-18 06:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2021-01-18 06:00:00 UTC to 2021-01-18 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-18 09:00:00 UTC to 2021-01-18 12:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-01-18 12:00:00 UTC to 2021-01-18 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-18 15:00:00 UTC to 2021-01-18 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-18 18:00:00 UTC to 2021-01-18 21:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJan 18, 18:00

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
Jan 17, 00:002021-01-17 00:00:00 UTC2021-01-17 03:00:00 UTC110
Jan 17, 03:002021-01-17 03:00:00 UTC2021-01-17 06:00:00 UTC000
Jan 17, 06:002021-01-17 06:00:00 UTC2021-01-17 09:00:00 UTC000
Jan 17, 09:002021-01-17 09:00:00 UTC2021-01-17 12:00:00 UTC000
Jan 17, 12:002021-01-17 12:00:00 UTC2021-01-17 15:00:00 UTC000
Jan 17, 15:002021-01-17 15:00:00 UTC2021-01-17 18:00:00 UTC000
Jan 17, 18:002021-01-17 18:00:00 UTC2021-01-17 21:00:00 UTC000
Jan 17, 21:002021-01-17 21:00:00 UTC2021-01-18 00:00:00 UTC000
Jan 18, 00:002021-01-18 00:00:00 UTC2021-01-18 03:00:00 UTC000
Jan 18, 03:002021-01-18 03:00:00 UTC2021-01-18 06:00:00 UTC110
Jan 18, 06:002021-01-18 06:00:00 UTC2021-01-18 09:00:00 UTC000
Jan 18, 09:002021-01-18 09:00:00 UTC2021-01-18 12:00:00 UTC202
Jan 18, 12:002021-01-18 12:00:00 UTC2021-01-18 15:00:00 UTC000
Jan 18, 15:002021-01-18 15:00:00 UTC2021-01-18 18:00:00 UTC000
Jan 18, 18:002021-01-18 18:00:00 UTC2021-01-18 21:00:00 UTC101

What Hacker News says

5 sources
Agreed. I am not at all against people learning how to do it. But if that's the purpose then it's probably better to present it as such (like the resources at your link does). But the claim that all you need is 100 LOC to make a proxy server work is a bit bogus when you rely on Ruby's standard library. Look at the code at https://github.com/jamesmoriarty/forward-proxy/blob/main/lib.... As expected, it doesn't parse headers but uses stdlib's code to do that. Good, less likely to have bugs. But that means that you can claim that you implemented an HTTP header parser in one line of code: req_headers = Hash[req.header.map { |k, v| [k, v.first] }] It's good that you figured out how to do that, and it's useful. But that is not a 1 LOC HTTP header parser. It's an invocation of an opaque header parser that you do not understand. You might not
Read the rest
even know what an HTTP header looks like and still write and use the above code. Interestingly, above that code they write headers by hand. Those at least to me don't look right: they don't escape header values or handle multi-line headers. Probably should have used stdlib to write that part of the code. I really don't mean to pick on this particular project. I just don't really get impressed with "X in Y LOC" when all it's doing is invoking the services of a standard library. I guess when you are coming from the NPM world where you need 1000 dependencies to concatenate two strings it seems really cool to only do something with the tools included. But better ecosystems allow you to do a lot more with the batteries included, which means your LOC will be really low until you do something more interesting.
In Show HN: 100 LOC Ruby forward proxy using only standard libraries

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.