Skip to content

moq-ffi: origin parity (cache pool config, requested_broadcast serving) #2151

Description

@kixelated

Two origin-level moq-net capabilities are not reachable through moq-ffi:

  1. Cache pool configuration: moq-net has a global LRU byte budget (cache::Pool, rs/moq-net/src/model/cache.rs) that flows via origin::Info { pool }. moq-ffi builds origins as Origin::random().produce() with the unbounded default (rs/moq-ffi/src/origin.rs), so a native app has no way to bound group cache memory. Proposed: an options Record on origin creation, e.g. MoqOriginOptions { cache_capacity_bytes: Option<u64> } (Record with defaults so it stays additive).

  2. Dynamic broadcast serving (requested_broadcast): Rust origin::Dynamic lets a publisher serve broadcasts on demand without announcing them (rs/moq-net/src/model/origin.rs); moq-ffi exposes the consumer side (request_broadcast) but not the serving side. Proposed: mirror the existing MoqBroadcastDynamic/MoqTrackRequest pattern one level up: MoqOriginProducer.dynamic() -> MoqOriginDynamic, requested_broadcast() -> MoqBroadcastRequest with accept()/reject(code).

Both additive. Wrappers (py/swift/kt/go) + doc/lib/* per the Cross-Package Sync table; libmoq tracked in the libmoq catch-up issue.

(Written by Claude Fable 5)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions