You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: This document was generated with the help of an LLM and may contain
inaccurate or outdated information. Please verify against the actual source
code before relying on it.
This document lists standard JavaScript/Web APIs and their support status in js_of_ocaml and Brr.
Yes — Full or near-complete bindings available
Partial — Some parts of the API are bound
No — No bindings provided (use Js.Unsafe / Jv to access directly)
Dom_html (showPopover, hidePopover, togglePopover with ?force, popover attribute, popoverTargetElement/popoverTargetAction on input/button, beforetoggle/toggle events, ToggleEvent.source) · Brr: Brr.El.{show,hide,toggle}_popover (no force arg, no toggle event bindings)
Dom_html (Shadow DOM — attachShadow, shadowRoot, assignedSlot, slot); Custom Elements not bound
Web Crypto API
Yes
Yes
Crypto · Brr: Brr_webcrypto
Notifications API
Yes
Yes
Notification · Brr: Brr_io.Notification
Broadcast Channel API
No
Yes
Brr: Brr_io.Message.Broadcast_channel
AbortController / AbortSignal
Yes
Yes
Abort · Brr: Brr.Abort
Priority classification of missing APIs
APIs missing or incomplete in js_of_ocaml, ranked by importance. Criteria: how
widely used the API is in modern web development, whether an open issue exists,
whether Brr already provides it (proving OCaml ecosystem demand), and whether
other APIs depend on it.
Tier 1 — High
All previously Tier 1 APIs are now implemented: Web Crypto (Crypto),
Clipboard (Clipboard), Notifications (Notification), Service
Workers (ServiceWorker), the Cache API (Cache) and MessageChannel /
MessagePort (MessageChannel) — together enabling PWAs and structured
Worker/iframe/window communication.
Tier 2 — Medium
API
Issue
In Brr
Why
Broadcast Channel API
—
Yes
Cross-tab communication (sync auth state, shared data). Simple API.
Web Audio API
—
Yes
Audio processing, games, music apps. Large API surface but well-defined.
Media Capture (getUserMedia)
—
Yes
Video calls, camera/mic access. Growing use with remote work tooling.
Encoding API (TextEncoder/TextDecoder)
—
Partial
Needed for binary protocol work and streaming text. Small surface.
Shared Workers
—
Yes
Shared state across tabs. Niche but Brr covers it.
IndexedDB
—
No
Client-side database for offline apps. Large API but important for data-heavy PWAs.
Streams API
—
No
Modern data processing. Fetch response bodies are ReadableStreams. Increasingly foundational.
History API (upgrade to full)
—
Yes
SPA routing depends on pushState/replaceState. Current binding is limited.
HTMLMediaElement (upgrade to full)
—
Yes
Better audio/video control. Current binding only covers basic element types.