RTCForge API Reference v1.1.1
    Preparing search index...

    Module rtcforge-core

    rtcforge-core

    ⚠️ Internal package. This is a building block of rtcforge. Unless you need advanced/custom wiring, install rtcforge and import from rtcforge/client, rtcforge/server, rtcforge/media, or rtcforge/filetransfer instead.

    Zero-dependency foundation for RTCForge — shared primitives plus the building blocks for shared-nothing multi-node scale-out.

    📖 Full API reference →

    The base package every other rtcforge-* package depends on. Two kinds of primitives:

    • SharedEventEmitter, Logger/MetricsCollector interfaces (+ noopLogger, consoleLogger), typed errors, IdGenerator, Clock.
    • Scale-outHashRing (consistent hashing), GossipMembership + GossipNetwork (SWIM-style cluster membership), Membership, StateStore, MessageBus, Lock. These let RTCForge cluster across nodes without Redis or etcd.

    Real-time clustering usually drags in external coordination services. RTCForge keeps coordination in-process: a consistent-hash ring decides which node owns a room, gossip spreads membership. core is that toolkit, dependency-free so it runs anywhere.

    coresignaling, sdk, sfu, adapter-udp, media   (everything builds on core)
    

    You rarely install it directly — it arrives transitively with any other package.

    import { HashRing, GossipMembership } from "rtcforge-core";

    // consistent-hash routing: which node owns a room?
    const ring = new HashRing(["node-a", "node-b", "node-c"]);
    const owner = ring.get("room-42"); // → stable node id

    ring.add("node-d"); // ring rebalances minimally
    ring.remove("node-a");

    Gossip membership pairs with a transport (e.g. rtcforge-adapter-udp) to track live nodes across a cluster.


    Part of RTCForge — build real-time apps without reinventing the infrastructure. See docs/PUBLISHING.md.

    Classes

    EventEmitter
    GossipMembership
    GossipNetwork
    HashRing
    InMemoryGossipTransport
    InvalidArgumentError
    LocalMessageBus
    ManualClock
    MembershipReconciler
    MemoryLock
    MemoryMembership
    MemoryStateStore
    RtcForgeError
    SequentialId

    Interfaces

    Clock
    GossipEntry
    GossipMembershipOptions
    GossipMessage
    GossipTransport
    IdGenerator
    Lock
    Logger
    Membership
    MembershipReconcilerHandlers
    MessageBus
    MetricsCollector
    NetworkStats
    NodeInfo
    RingNode
    StateStore

    Type Aliases

    LogLevel
    MediaKind
    Metric
    Unsubscribe

    Variables

    Metric
    noopLock
    noopLogger
    noopMetrics
    randomId
    systemClock

    Functions

    consoleLogger
    isRtcForgeError
    toError