• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-swift / 41994104201
96%

Build:
DEFAULT BRANCH: main
Ran 05 Nov 2026 08:31AM UTC
Jobs 1
Files 218
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Nov 2026 08:23AM UTC coverage: 95.517% (+0.04%) from 95.478%
41994104201

push

github

web-flow
perf(realtime): route inbound frames through a per-topic channel index (#1723)

* perf(realtime): route inbound frames through a per-topic channel index

The core found the channel of each frame by scanning every channel record,
which cost about 100 ns per record: about 100 us per frame at 1,000 channels,
more than decoding the frame. A join reply scanned twice.

RealtimeCore now keeps channelsByWireTopic, the channel ids of each wire topic
in creation order. setRecord(_:for:) keeps it in step when a record is added or
dropped. Routing looks only at the records of the frame's topic, and keeps its
rules: join_ref picks the record of that join or leave, and a frame without one
goes to the live channel that is not being removed.

* refactor(realtime): keep the channel records and the topic index in one ChannelTable

The records and their topic index were two properties of RealtimeCore, and any
write to the records could skip the index. One test did: it stored a record with
a subscript write, so routing could not find it.

ChannelTable now owns both, and they are private(set). setRecord(_:for:) is the
only way to add, replace, or drop a record. update(_:_:) changes a record in
place, so its storage is not copied, but it cannot add or drop a record, and a
record's wire topic never changes. So the compiler keeps the two in step.

107 of 108 new or added lines in 7 files covered. (99.07%)

14936 of 15637 relevant lines covered (95.52%)

452766.24 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
98.13
0.01% Sources/Realtime/Core/RealtimeCore+Subscribe.swift
Jobs
ID Job ID Ran Files Coverage
1 41994104201.1 05 Nov 2026 08:31AM UTC 218
95.52
GitHub Action Run
Source Files on build 41994104201
  • Tree
  • List 218
  • Changed 7
  • Source Changed 6
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #41994104201
  • da1a2586 on github
  • Prev Build on main (#41943053452)
  • Next Build on main (#42003072579)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc