SSE transport for Gerbil
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-27 21:43:42 -07:00
.gitignore add readme, license, gitignore 2026-07-27 18:42:51 -07:00
build.ss namespace package as gerbil-sse 2026-07-27 21:43:42 -07:00
gerbil.pkg namespace package as gerbil-sse 2026-07-27 21:43:42 -07:00
LICENSE add readme, license, gitignore 2026-07-27 18:42:51 -07:00
README.md namespace package as gerbil-sse 2026-07-27 21:43:42 -07:00
sse-test.ss namespace package as gerbil-sse 2026-07-27 21:43:42 -07:00
sse.ss namespace package as gerbil-sse 2026-07-27 21:43:42 -07:00

SSE Gerbil

A minimal Server-Sent Events transport for Gerbil v19's :std/net/http/server.

(import :gerbil-sse/sse)

The module exports three procedures:

  • call-with-sse begins an SSE response and manages its lifetime.
  • sse-send! writes and flushes one preframed SSE string.
  • sse? recognizes SSE sessions.
(def (events-handler request response)
  (call-with-sse
   response
   (lambda (session)
     (sse-send! session "event: ping\ndata: hello\n\n"))))

call-with-sse closes the response when its callback returns normally. Frames are serialized so concurrent sends cannot interleave. Event construction and application-level framing remain the caller's responsibility.

Development

gerbil build
gerbil test -v 0 ./sse-test.ss

License

MIT