Caddy-snake v0.4.0: CGo removed, standalone binaries, 2-3x faster than standard reverse proxy setups

Continuing the discussion from Python plugin with support for WSGI:

Hey all, sharing a big update to caddy-snake!

A lot has changed since the original post. The biggest news in v0.4.0: CGo is completely gone. The WSGI/ASGI bridge has been rewritten in pure Python, communicating with Go over worker processes. This means no C compiler required at build or runtime, and a much simpler setup overall.

Other highlights:

  • Standalone app binaries (embed-app): package your Python app + Caddy + Python interpreter into a single self-contained executable, similar to FrankenPHP.
  • Benchmarks: Flask + caddy-snake hits 3,782 req/s vs 1,592 with Gunicorn+Caddy. FastAPI + caddy-snake hits 5,730 req/s vs 3,537 with Uvicorn+Caddy.
  • Go 1.26, minimum Python 3.12.

Full release notes: Release v0.4.0 · mliezun/caddy-snake · GitHub

Thanks for the kind reception back when this started.

4 Likes

Very cool!! Thanks for the great work, I shared it on a cursed social media site :slight_smile:

1 Like

Thank you!

Very nice!

I’d be curious to see how it performs versus Caddy+Granian, as far as I understand that’s currently the go-to for performance. (I’m not a Python dev though, just sitting here on the sidelines)