Skip to content

kio: rename conducer crate to kio#1547

Merged
kixelated merged 1 commit into
mainfrom
claude/bold-engelbart-10c833
May 29, 2026
Merged

kio: rename conducer crate to kio#1547
kixelated merged 1 commit into
mainfrom
claude/bold-engelbart-10c833

Conversation

@kixelated
Copy link
Copy Markdown
Collaborator

Summary

Renames the conducer crate (producer + consumer) to kio, a shorter name that fits the moq/tokio ecosystem aesthetic. The crate is the generic async primitive behind moq-net and moq-mux: a Producer/Consumer pair sharing mutex-protected state with waker-based notification.

  • rs/conducer/rs/kio/ (git-tracked as renames, history preserved)
  • Crate name = "kio", version reset to 0.3.0
  • All conducer:: paths, doc links, and prose comments in moq-net and moq-mux updated to kio::
  • Workspace member + dependency renamed (re-sorted alphabetically by just fix)
  • Cargo.lock regenerated

Why 0.3.0

An unrelated kio 0.2.0 was published to crates.io years ago, so the new crate starts at 0.3.0 to leapfrog it. The API is unchanged. only the crate name differs.

Notes for reviewers

  • The historical line in rs/moq-net/CHANGELOG.md ("Replace mpsc with conducer ...") is left as-is, since it's an accurate record of a past release.
  • rs/kio/CHANGELOG.md was reset to a clean 0.3.0 entry; the old conducer-v* entries were dropped because they reference old git tags and would be misleading under the new name.
  • Targeting main: this is a mechanical rename with no wire/API behavior change. Redirect to dev if you'd rather batch the crate-name churn there.

Test plan

  • cargo check -p kio -p moq-net -p moq-mux
  • cargo clippy -p kio -p moq-net -p moq-mux
  • cargo fmt --check

(Written by Claude)

The producer/consumer shared-state primitive was named `conducer`
(producer + consumer). Rename it to `kio`, a shorter name that fits the
moq/tokio ecosystem aesthetic.

Starts fresh at 0.3.0 since an unrelated `kio` 0.2.0 was published years
ago; the new version leapfrogs it. The API is unchanged, only the crate
name and all `conducer::` paths in moq-net and moq-mux.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 29, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ab63fcce-9cbb-420a-9677-ac14f582019a

📥 Commits

Reviewing files that changed from the base of the PR and between 414a10b and f958341.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (31)
  • Cargo.toml
  • rs/conducer/CHANGELOG.md
  • rs/kio/CHANGELOG.md
  • rs/kio/Cargo.toml
  • rs/kio/README.md
  • rs/kio/src/consumer.rs
  • rs/kio/src/lib.rs
  • rs/kio/src/lock.rs
  • rs/kio/src/producer.rs
  • rs/kio/src/waiter.rs
  • rs/kio/src/weak.rs
  • rs/moq-mux/Cargo.toml
  • rs/moq-mux/src/catalog/hang/consumer.rs
  • rs/moq-mux/src/catalog/hang/container.rs
  • rs/moq-mux/src/catalog/msf/consumer.rs
  • rs/moq-mux/src/container/consumer.rs
  • rs/moq-mux/src/container/fmp4/export.rs
  • rs/moq-mux/src/container/fmp4/mod.rs
  • rs/moq-mux/src/container/legacy/mod.rs
  • rs/moq-mux/src/container/loc/mod.rs
  • rs/moq-mux/src/container/mkv/export.rs
  • rs/moq-mux/src/container/mod.rs
  • rs/moq-mux/src/container/source.rs
  • rs/moq-net/Cargo.toml
  • rs/moq-net/src/lib.rs
  • rs/moq-net/src/model/bandwidth.rs
  • rs/moq-net/src/model/broadcast.rs
  • rs/moq-net/src/model/frame.rs
  • rs/moq-net/src/model/group.rs
  • rs/moq-net/src/model/origin.rs
  • rs/moq-net/src/model/track.rs
💤 Files with no reviewable changes (1)
  • rs/conducer/CHANGELOG.md

Walkthrough

This pull request migrates the moq ecosystem from the conducer synchronization primitives to the kio crate. The workspace dependency declarations are updated to replace conducer with kio, and the crate itself is renamed from conducer to kio with a version bump from 0.3.7 to 0.3.0. All downstream consumers in moq-mux and moq-net are systematically updated: conducer::Producer, conducer::Consumer, and conducer::Waiter types are replaced with their kio equivalents, and all conducer::wait(...) calls are changed to kio::wait(...). The functional behavior of producer/consumer polling patterns and async-blocking wrappers remains unchanged.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'kio: rename conducer crate to kio' accurately and concisely summarizes the main change in the pull request, clearly indicating the crate rename operation.
Description check ✅ Passed The description is comprehensive and directly related to the changeset, explaining the rename rationale, version decision, changelog handling, and testing approach.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch claude/bold-engelbart-10c833

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@kixelated kixelated enabled auto-merge (squash) May 29, 2026 20:56
@kixelated kixelated merged commit cf5dfd6 into main May 29, 2026
1 check passed
@kixelated kixelated deleted the claude/bold-engelbart-10c833 branch May 29, 2026 20:58
This was referenced May 29, 2026
kixelated added a commit that referenced this pull request May 30, 2026
Reconcile main into dev. Key conflict resolutions:

- conducer crate renamed to kio (main #1547): applied across all of dev's
  newer code; dropped the stale conducer path-dep, kept dev's new flate2 dep.
- moq-mux: kept dev's thiserror Result (#1495); dropped main's CatalogSource
  as dead code since dev's catalog::Consumer already unifies Hang/MSF.
- moq-net: kept dev's OriginConsumer/AnnounceConsumer split (#1434) and the
  TrackConsumer end_at cap; kept dev's non-optional auto-created origins on the
  lite session/publisher (#e770).
- stats: combined main's StatsConfig + liveness retention (#1537, #1548) with
  dev's AnnounceConsumer usage.
- libmoq + moq-native: kept main's auto-reconnect (#1544), terminal-callback
  contract (#1546), and consume_announced (#1552), adapted to dev's
  AnnounceConsumer and OriginProducer connect API. Restored the InitFailed
  error variant and made moq-rtc handle the now-fallible Log::init.

cargo check/clippy/test all pass on the merged workspace.
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.

1 participant