Skip to content
CAI
Software that uses CAICheck a score

dominicletz/websockex

67.8

Adequate · 3 October 2026

2.2k

lines of production code

Elixir

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

WebSockex is an Elixir library that implements a WebSocket client designed to integrate into OTP supervision trees. It provides a callback-based behavior for handling connection lifecycles, frame parsing, and telemetry events, supporting both standard TCP and secure SSL transports. The system includes utilities for process registration, URL parsing, and custom close codes, along with comprehensive test infrastructure for validating connection and frame handling logic.

Features

Add new example scripts for authentication, Chrome debugging, and echo client usage

The examples directory now includes three new demonstration scripts: \auth\_headers.ex\ shows how to pass custom authorization headers when starting a connection; \chrome\_debbuger.exs\ demonstrates connecting to a Chrome DevTools remote debugging interface to capture network events; and \echo\_client.exs\ provides a complete client example that sends messages to a public echo server and handles replies and disconnections.

examples · high confidence

Initial release of WebSockex WebSocket client library

This change introduces the WebSockex library, providing a complete WebSocket client implementation for Elixir. The \WebSockex.Application\ module initializes the OTP application and registers default ports for \ws\ and \wss\ schemes. The \WebSockex.Conn\ module handles connection establishment, supporting both standard TCP (\:gen\_tcp\) and secure SSL (\:ssl\) transports, with configurable timeouts and SSL options. The \WebSockex.Frame\ module implements the WebSocket protocol frame parsing and encoding, including support for text, binary, ping, pong, and close frames, as well as fragmented messages. The \WebSockex.Utils\ module provides utilities for process registration (local, \:via\, and \:global\) and debugging. New error types in \WebSockex.Errors\ provide specific feedback for connection, URL, handshake, and frame parsing issues.

lib/websockex · high confidence

Initial release of WebSockex WebSocket client library

This entry introduces the WebSockex library, an Elixir WebSocket client designed to integrate into supervision trees. The diff establishes the project's foundational structure, including the MIT license, CI configuration via GitHub Actions, and code formatting/linting tools (Credo, Formatter). It documents the initial API surface, which includes \WebSockex.start\_link/3\ and \WebSockex.start/3\ for launching processes, a callback-based behavior (\use WebSockex\) with handlers for frames, casts, and connection lifecycle events, and support for telemetry events. The library requires Elixir 1.7+ and provides utilities for connection management, such as URL parsing and custom close codes.

(repo-wide) · high confidence

Behavioural changes

Migrate configuration syntax from Mix.Config to Config

The application's configuration file has been updated to use the modern \import Config\ macro instead of the deprecated \use Mix.Config\. This change aligns the project with recent Elixir and OTP versions, ensuring compatibility with newer language features and standard configuration practices.

config · high confidence

WebSockex module refactored with comprehensive documentation and new connection options

The main WebSockex module has been significantly expanded from a minimal application starter to a fully documented client implementation. This change introduces detailed documentation for connection lifecycle management, including graceful closing with custom codes and supervision tree integration. It also adds new configuration options for \start\_link\, such as \:async\ for non-blocking connection attempts, \:handle\_initial\_conn\_failure\ to invoke disconnect callbacks on startup errors, and \:name\ for local or global process registration. The module now defines explicit types for frames, close reasons, and connection status, providing a more robust API for users.

lib · high confidence

Test coverage

Added test coverage for WebSockex connection and frame handling; Added test support infrastructure for WebSocket client and server simulation; Expanded test coverage for WebSockex lifecycle and registration; Updated test SSL certificates and generation script.

Dependencies

Upgrade to Elixir 1.11+ and add optional Telemetry support

The WebSockex package now requires Elixir 1.11 or higher (up from 1.3) and includes optional Telemetry support for OTP 21+. This update also adds development dependencies for documentation (ExDoc), linting (Credo, Dialyxir), and testing (Cowboy, Plug), while updating the package metadata and Hex configuration.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 66 → 68 (+1.4)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 98 → 98 (+0.0)
  • Architecture 99 → 99 (+0.2)
  • Maturity 54 → 54 (+0.0)
  • Readiness 58 → 62 (+4.4)
  • Security 95 → 97 (+1.7)

Findings

  • No change — the same findings as the prior survey.

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

dominicletz/websockex was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 2ed0adaf4fd9ae87caac5098159d4f682701264d — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-8fe32cd45d00.