Show HN: Cycast – High-performance radio streaming server written in Python

Big promises, but commenters shout: “Where’s the code?”

TLDR: A Python-based radio server called Cycast promised speed and slick features, but the launch stumbled when the GitHub repo had no code. Commenters zeroed in on transparency and asked why not just use Icecast, turning the thread into a trust test until source appears.

A new “Show HN” entry, Cycast, rolled in bragging radio-station-in-a-box vibes: a Python-powered streaming server that’s Icecast-compatible, claims “3–5x faster” thanks to Cython, runs a Flask web app on Tornado, and auto-switches between live DJs and playlists. There’s a real-time web page, stats API, and easy-to-read config files, plus plug-and-play with Mixxx or VLC. Sounds slick, right?

Then one line detonated the room: “No source code in repo.” With that, the music cut. For a “Show HN,” where open code is the whole point, readers treated it like announcing a concert with no band on stage. The thread’s mood pivoted from “cool demo” to “trust, transparency, receipts—now.”

Cue the predictable culture clash this kind of post always triggers. Some wondered why reinvent Icecast at all; others were curious whether “high performance” claims stand up once code lands. A few side-eyed the Python+Cython+Flask+Tornado stack—powerful, sure, but bold to market as “production-grade” before anyone can peek under the hood. And yes, the memes wrote themselves: “fastest server is the empty repo,” and “seamless switching between hype and… silence.”

Bottom line: Cycast might be a legit modern take on DIY radio. But until the code drops, the comments are the main act—and they’re playing on repeat: show us the code.

Key Points

  • Cycast is an Icecast-compatible internet radio streaming server written in Python with Cython optimizations.
  • It supports live sources from Mixxx, VLC, Virtual DJ, and any Icecast/Shoutcast client, with automatic playlist fallback when no source is connected.
  • The architecture includes Cython modules for a high-performance circular audio buffer and multi-listener broadcaster, plus a Flask UI and Tornado WSGI deployment.
  • Configuration uses human-friendly HCL files parsed via pyhcl; a RESTful API and AJAX-powered web status page provide real-time updates and statistics.
  • Installation involves installing dependencies, building Cython extensions, configuring config.hcl, preparing a music directory, and starting the server with provided endpoints.

Hottest takes

“No source code in repo.” — iberator
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.