Serving a half billion requests per day with Rust + CGI

In my previous post Serving 200 million requests per day with a cgi-bin, I did some quick performance testing of CGI using a program written in Go. Go works excellently for CGI programs, for many of the same reasons it works so well for CLI programs and system daemons. But, out of curiosity, I decided to do a bit more CGI testing with other languages. CGI is good technology, actually There’s a misconception that because CGI is old or because many CGI scripts had security vulnerabilities, CGI itself is somehow insecure or bad. ...

July 7, 2025 · @jacob.gold

Serving 200 million requests per day with a cgi-bin

In the early 2000s, we used to write a lot of CGI programs. This was the primary way to make websites dynamic at the time. These CGI programs were usually written in Perl, but sometimes in C to increase performance. The CGI mechanism is conceptually simple but powerful. When the web server receives an incoming request handled by a CGI script (e.g. GET /~jakegold/cgi-bin/guestbook.cgi), it: Sets up environment variables containing request metadata (HTTP headers, query parameters, request method, etc.) Spawns a new process to execute the CGI program Passes the request body (if any) to the program via stdin Captures the program’s stdout as the HTTP response Sends any error output from stderr to the error log The CGI program reads the environment variables to understand the request, processes it, and writes an HTTP response to stdout, starting with headers. ...

July 3, 2025 · @jacob.gold

What is atproto?

What is atproto? atproto is two things: A protocol for creating open social networks An open social network atproto, the open social network Today the atproto network has 36+ million users and powers Bluesky and a handful of other apps. Almost all atproto data is public. Content like posts, likes, follows, and photos/videos are publicly accessible to any network participant in a permissionless way. As an example of how open the network is, here’s how easy it is to stream all public data on the network using a public atproto Relay like bsky.network: ...

June 27, 2025 · @jacob.gold

What is Bluesky?

What is Bluesky? Bluesky is three things. Bluesky the social app Available on Apple’s App Store, Google Play, and the web Bluesky the atproto app Operating within the app.bsky.* atproto namespace Bluesky Social, PBC The startup company originally funded by Twitter (later by investors) that created and supports atproto.

June 27, 2025 · @jacob.gold