SDK Packages

All packages are published under the @xiboplayer scope on npm.

Core

@xiboplayer/core

Platform-independent orchestration — the central brain that wires everything together.

  • Collection cycle management (RegisterDisplay, RequiredFiles, Schedule, etc.)
  • Offline cache with IndexedDB fallback
  • CRC32 skip optimization
  • Data connector management
  • Command execution

npm · GitHub

@xiboplayer/renderer

XLF layout renderer — parses Xibo layout XML and renders it to the DOM.

  • Element reuse (pre-create all widgets, toggle visibility)
  • Widget types: video, image, audio, PDF, text, clock, ticker, webpage, HLS, embedded
  • Transitions: fade, fly (8 compass directions) via Web Animations API
  • Interactive Control server (postMessage bridge)
  • Touch/keyboard actions
  • Overlay rendering with priority-based z-index

npm · GitHub

Communication

@xiboplayer/xmds

CMS communication — dual transport with identical API surface.

  • XmdsClient: SOAP/XML transport (all CMS versions)
  • RestClient: REST/JSON transport (30% smaller payloads, ETag 304 caching)
  • All 10 XMDS v5 methods + GetWeather + BlackList
  • CRC32 change detection

npm · GitHub

@xiboplayer/xmr

Real-time push messaging — wraps the official Xibo WebSocket library.

  • 14 command handlers (collectNow, screenshot, changeLayout, overlayLayout, revertToSchedule, purgeAll, etc.)
  • Exponential backoff reconnection (10 attempts)
  • TTL/expiry checking
  • RSA key rotation via Web Crypto API

npm · GitHub

Data

@xiboplayer/cache

File and media management — parallel downloads with integrity checking.

  • 4-chunk parallel downloads with dynamic sizing
  • MD5 validation (spark-md5)
  • Font CSS URL rewriting
  • Bad cache detection and auto-cleanup
  • Queue barriers for offline resilience

npm · GitHub

@xiboplayer/schedule

Schedule management — parses CMS schedule XML into a playback timeline.

  • Dayparting (daily, weekly, monthly recurrence)
  • Campaign scheduling with cycle playback
  • Interrupt/share-of-voice interleaving
  • maxPlaysPerHour with even distribution
  • Overlay scheduling with priority
  • Geo-fencing and weather criteria

npm · GitHub

@xiboplayer/stats

Statistics and logging — proof-of-play tracking with CMS submission.

  • Per-layout and per-widget duration tracking
  • Event stats (touch, webhook) with tags
  • Hour-boundary splitting for correct CMS aggregation
  • Log batching (capped at 50 per CMS spec)
  • Fault reporting with 5-minute dedup cooldown
  • IndexedDB persistence with auto-prune

npm · GitHub

Configuration

@xiboplayer/settings

Display settings — parses and manages CMS-pushed settings.

  • EventEmitter for reactive updates
  • Download window enforcement
  • Screenshot interval configuration
  • Log level from CMS
  • CMS tag config parsing

npm · GitHub

@xiboplayer/utils

Shared utilities — the foundation used by all packages.

  • Logger (level-based with CMS sink)
  • EventEmitter base class
  • fetchWithRetry (configurable retry with backoff, HTTP 429 Retry-After)
  • Config (hardware key generation, CMS address, localStorage)
  • CMS API client (77 methods for CMS v4 management API)

npm · GitHub

Platform

@xiboplayer/sw

Service Worker helpers — media serving and caching strategies.

  • Progressive chunk streaming with Range requests
  • XLF-driven media resolution
  • Layout-ordered download barriers
  • Font CSS URL rewriting
  • Cache-first with network fallback

npm · GitHub

@xiboplayer/crypto

Cryptography — RSA key pair management.

  • RSA-1024 key generation via Web Crypto API
  • Public key export for CMS registration
  • Key rotation support (XMR rekey command)

npm · GitHub

@xiboplayer/sync

Multi-display synchronization — video wall support across tabs and devices. Major update in v0.7.0.

  • <8ms sync precision across all displays on LAN
  • 12 choreography effects: diagonal cascade, wave sweep, center-out, and more (v0.7.0)
  • Token-authenticated WebSocket relay — secure LAN sync using CMS key (v0.7.0)
  • syncGroupId isolation — multiple video walls share one relay safely (v0.7.0)
  • Lead/follower model with pluggable transports
  • BroadcastChannel for same-machine sync (cross-tab)
  • WebSocket transport for cross-device LAN sync
  • Synchronized layout transitions and coordinated video start
  • Stats/logs delegation through the lead
  • Offline LAN sync with persisted config (v0.7.0)
  • Auto-reconnect with exponential backoff and automatic group re-join

npm · GitHub

@xiboplayer/proxy

CORS proxy — development, Electron/Chromium support, and sync relay.

  • Express-based proxy server
  • CORS header management
  • WebSocket sync relay for cross-device video walls with group isolation
  • Standalone relay CLI (xiboplayer-relay --port=9590) for dedicated deployments
  • Used by Electron and Chromium wrappers

npm · GitHub

Players

@xiboplayer/pwa

PWA rendering engine — the complete browser-based player.

  • Bundles core, renderer, cache, schedule, xmds, xmr, stats, settings
  • Service Worker for offline operation
  • Setup screen for CMS registration
  • Debug overlays (timeline, download progress)

npm · GitHub

@xiboplayer/player

Player meta-package — installs the complete SDK with all dependencies.

npm · GitHub