Back to browse
GitHub Repository

A memory-safe Rust reimplementation of curl and libcurl.

13 starsRust

Urlx – an agent-made Rust replacement for curl/libcurl

by jawiggins·Mar 23, 2026·5 points·1 comment

AI Analysis

●●●BangerWizardryBig Brain

1,300+ curl tests pass — succeeded where curl's own 4-year Rust effort failed.

Strengths
  • Zero unsafe code in core library — genuine memory safety without FFI compromises
  • Drop-in libcurl C ABI compatibility means existing C programs work unchanged
  • rustls for TLS eliminates OpenSSL dependency and its CVE history
Weaknesses
  • HTTP/3 support listed as untested despite claiming full QUIC implementation
  • Smaller ecosystem and community compared to curl's decades of adoption
Target Audience

Systems programmers, DevOps engineers, security-conscious teams

Similar To

curl · hyper · reqwest

Post Description

Recently several AI labs have published experiments where they tried to get AI coding agents to complete large software projects.

- Cursor attempted to make a browser from scratch: https://cursor.com/blog/scaling-agents

- Anthropic attempted to make a C Compiler: https://www.anthropic.com/engineering/building-c-compiler

A few weeks ago I posted xmloxide, an agent-made Rust replacement for libxml2 made by pointing Claude code at the libxml2 test suite: https://news.ycombinator.com/item?id=47201816

curl is arguably the most widely deployed software in the world. It's 180,000 lines of C with a history of memory safety CVEs. The curl project itself tried to address this by adding a rust-based HTTP backend using hyper, but after four years of work, they abandoned the effort in December 2024. Daniel Stenberg wrote that, "there simply were no users asking for it and there were almost no developers interested or knowledgeable enough to work on it".

- Daniel Stenberg's blog post on dropping hyper: https://daniel.haxx.se/blog/2024/12/21/dropping-hyper/

- Hacker News discussion: https://news.ycombinator.com/item?id=42478911

The key insight from my xmloxide work was that an agent can iterate very quickly when given a comprehensive test suite as a specification. The majority of the development for urlx was done in two ~16 hour long iteration loops where claude code would implement some features, run the tests, and then plan what to do next. Towards then end I took a more manual approach telling it to analyze the remaining failures, make issues, and submit them to teams of subagents to fix.

urlx now passes 1,300 of 1,300 applicable curl tests (100% pass rate). It supports HTTP/1.0-1.1, HTTP/2, HTTP/3 (QUIC), FTP/FTPS, SFTP/SCP, WebSocket, SMTP, IMAP, POP3, MQTT, DICT, TFTP, Gopher — with 261 CLI flags, authentication (Basic, Digest, NTLMv2, SCRAM-SHA-256, AWS SigV4), cookies, HSTS, proxy support (HTTP/SOCKS4/5/HTTPS tunnel), and a libcurl-compatible C ABI. There are some features still left to do that I might come back to.

- GitHub: https://github.com/jonwiggins/urlx

- crates.io: https://crates.io/crates/urlx-cli

- Install: cargo install urlx-cli or brew install jonwiggins/tap/urlx

The same lesson from xmloxide applies here: when a project has a good test suite, an agent can use it as a specification and converge on a working implementation surprisingly fast. curl's test suite turned out to be an excellent spec, the hard part was already done by the curl contributors over 25 years.

I don't expect anyone to replace curl with this, but I think there's something worth paying attention to in the pattern: take a well-tested project, point an agent at the test suite, and get a fast reimplementation. I think this also points to a need to adopt test-driven-development when using AI coding tools, as it allows them to iterate autonomously before needing human input. I also think this changes the economics of software development, what used to be a multi-year, multi-engineer commitment is becoming a task you can meaningfully attempt in days by setting up an agent to rapidly iterate on it alone.

Similar Projects

AI/ML●●Solid

Kremis – Deterministic memory graph for AI agents (Rust)

Deterministic graph memory vs. embeddings is clever, but fragmentation of AI memory ecosystems is already painful.

Big BrainWizardry
M2Dr3g0n
103mo ago
AI/ML●●Solid

Gliding Horse – a Rust Agent OS with CPU-Like Memory Architecture

MESI coherence for agent memory is clever, but LangGraph and AutoGen already own this space.

Big BrainBold Bet
doiito
1017d ago