xiboplayer SDK
The modular foundation behind every player. 13 npm packages with clear separation of concerns, 1625 tests across 49 suites and zero framework dependencies.
Design Philosophy
🌐
Platform-independent
Core logic works across PWA, Electron, Android WebView and webOS
🔧
Browser-native APIs
Cache API, IndexedDB, Service Worker, Web Animations
🪶
No framework bloat
No React, Vue or Angular — pure TypeScript
🔄
Dual transport
SOAP and REST with identical API surfaces
📡
Offline-first
Everything works without network connectivity
Packages
npmjs.com/org/xiboplayer →| Package | Purpose | Lines |
|---|---|---|
| @xiboplayer/core | PlayerCore orchestration, collection cycle, offline cache | 982 |
| @xiboplayer/renderer | XLF renderer: element reuse, transitions, HLS, PDF, IC server | 2,119 |
| @xiboplayer/cache | CacheManager: parallel chunks, MD5, font rewriting | 729 |
| @xiboplayer/schedule | ScheduleManager: dayparting, campaigns, interrupts | 346 |
| @xiboplayer/xmds | XMDS client: SOAP + REST transports, all 10 methods | 371 |
| @xiboplayer/xmr | XMR WebSocket: 13 command handlers, exponential backoff | 359 |
| @xiboplayer/stats | StatsCollector + LogReporter: proof-of-play, IndexedDB | 633 |
| @xiboplayer/settings | DisplaySettings: CMS settings parser with EventEmitter | 352 |
| @xiboplayer/sw | Service Worker helpers: streaming, IC interception | — |
| @xiboplayer/crypto | RSA key pair generation via Web Crypto API | 75 |
| @xiboplayer/sync | Multi-display sync: BroadcastChannel + WebSocket relay | — |
| @xiboplayer/proxy | CORS proxy + WebSocket sync relay for video walls | — |
| @xiboplayer/utils | Logger, EventEmitter, fetchWithRetry, Config, CMS API | 288 |
Total source code: ~12,000 lines (excluding tests)
