Skip to content

feat(jet1090): add /stream endpoint for live decoded messages - #538

Merged
xoolive merged 2 commits into
xoolive:masterfrom
johnletey:feat/stream-endpoint
Sep 20, 2026
Merged

xoolive merged 2 commits into
xoolive:masterfrom
johnletey:feat/stream-endpoint

Conversation

@johnletey

@johnletey johnletey commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Closes #536.

Adds a /stream route to the web API that pushes every decoded message as server-sent events, one message per event, in the same JSON as the .jsonl output and the Redis feed. Any browser can read it with EventSource. axum already ships SSE, so nothing new is pulled in.

It is a plain output next to Redis and .jsonl. It does not filter per client and keeps no state about who is listening. The global --df-filter and --aircraft-filter apply before anything reaches the stream. Messages go through a broadcast channel, so the decoder never waits on a client. A client that falls more than 4096 messages behind is moved to the live edge of the feed and misses what happened in between, instead of replaying a stale backlog.

Tested against two live Beast feeds, with two concurrent clients and with a client falling behind.

@xoolive
xoolive merged commit e636331 into xoolive:master Sep 20, 2026
37 checks passed
@xoolive

xoolive commented Sep 20, 2026

Copy link
Copy Markdown
Owner

Thank you!

@johnletey
johnletey deleted the feat/stream-endpoint branch September 21, 2026 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Live stream of decoded messages over HTTP

2 participants