Common Lisp SDK for the Datastar Hypermedia Framework

Old-school Lisp meets space sims — cue fights over SSE and Fortran

TLDR: A Common Lisp SDK for Datastar launched with a slick space demo, but the comments erupted over server-sent events blocking threads in Woo and a surprise Fortran cameo. Fans love the retro charm; critics demand better async or different servers, highlighting real trade-offs in building live, streaming apps.

A new Common Lisp toolkit for the Datastar framework just dropped, bringing real-time data streaming to apps and showing off with a cosmic demo: a Cassini–Huygens mission simulation powered by NASA SPICE and the JPL Horizons API. The author, fsmunoz, calls it an attempt to make Lisp + Datastar easier, and fans cheered the retro vibes and the slick Data SPICE demo. But the party quickly turned into a thread war over how the tech handles live updates via Server-Sent Events (SSE), which keep a line open between server and browser.

The spiciest take landed fast: “Blocking the event loop… negates any benefit of async”, snapped kscarlet, claiming Woo’s worker-per-connection model is a deal-breaker and asking if anyone’s tried “wookie.” Others shot back that Hunchentoot (another server) avoids those limits and that polling is a workable fallback, turning it into an SSE vs. poll vs. “just use Hunchentoot” showdown. Then rybosome lobbed the funniest grenade: Fortran? In 2026? The example’s SPICE parsing sparked jokes about “dad-rock languages,” while pragmatists shrugged: if it works for space math, ship it. Amid the zstd compression flex and test suite bragging, the mood split cleanly: starry-eyed geeks love the vibe; infra hawks want fewer blocked threads and more modern async magic. It’s retro glam meets ops anxiety — and the comments are the show

Key Points

  • A Common Lisp SDK for the Datastar Hypermedia Framework implements core features following the Datastar ADR.
  • The SDK uses CLOS with an sse-generator class and provides subclasses for Hunchentoot and Clack.
  • SSE behavior varies by backend: Woo blocks a worker per SSE connection; Hunchentoot is recommended for many connections.
  • Compression support is added across backends, currently limited to zstd.
  • Examples and tests are provided, including Data SPICE and a Horizons JPL API explorer, with SSE edge cases covered.

Hottest takes

"Blocking the event loop... negates any benefit of async" — kscarlet
"Why does the example use Fortran to parse SPICE?" — rybosome
"makes using Common Lisp with Datastar easier" — fsmunoz
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.