Changes for version 0.04 - 2026-03-29

  • Chandra::Socket::Hub - IPC server with Unix domain socket and TCP transport
  • Chandra::Socket::Client - IPC client with auto-reconnect and request/response
  • Chandra::Socket::Connection - length-prefixed JSON wire protocol
  • App: hub(), client() methods with integrated poll loop
  • Channel-based message routing, broadcast, send_to
  • on_connect/on_disconnect lifecycle hooks
  • Security: token-based handshake authentication
  • Security: socket path in $XDG_RUNTIME_DIR with 0600 permissions
  • Security: token file (0600) written alongside socket for client auth
  • Security: max frame size (16 MB) and buffer overflow protection (64 MB)
  • Security: malformed JSON frame warnings
  • Security: duplicate client name collision handling
  • TCP transport: opt-in TLS via IO::Socket::SSL (tls_cert, tls_key, tls)
  • Examples: socket_ipc_example.pl, chat_hub.pl, chat_window.pl

Modules

Perl bindings to webview-c for creating cross-platform GUIs
High-level application wrapper for Chandra
JavaScript to Perl function binding
JavaScript bridge code for Perl communication
In-browser developer tools for Chandra applications
Native dialog boxes for Chandra applications
DOM-like element construction for Chandra
Error handling with stack traces for Chandra
Event object for element handlers
File watching and hot reload for Chandra applications
Custom URL protocol handlers for Chandra applications
IPC client for connecting to a Chandra Hub
Wire protocol and connection wrapper for Chandra IPC
IPC server for coordinating Chandra instances