ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
Topic Categories

📚 Detailed documentation for major subsystems

This page provides detailed information about the major subsystems in ascii-chat. Each topic covers architecture, implementation details, usage patterns, and best practices. The categories below correspond to the CMake library modules used to build ascii-chat.

🛠️ Utilities

🛠️ Core utility functions for string manipulation, paths, IP parsing, and formatting

📦 Data Structures

📦 High-performance data structures for memory and packet management

  • Buffer Pool - Pre-allocated memory buffers for efficient allocation
  • Ring Buffer - Lock-free circular buffers for audio/video
  • Packet Queue - Thread-safe per-client packet queues
  • uthash library "Hash Table" - High-performance client ID lookup

🔌 Platform Abstraction

🔌 Cross-platform abstraction for threading, sockets, and system APIs

  • Platform Abstraction Layer README - Comprehensive guide covering cross-platform threading, mutexes, sockets, terminal I/O, crash handling, static initialization, and OS portability (Windows/Linux/macOS)
  • Webcam Capture - Cross-platform webcam capture functionality

🔐 Cryptography

🔐 End-to-end encryption and secure communication

📹 Video to ASCII Conversion

📹 Video capture, ASCII conversion, and frame layout

🔊 Audio Processing

🔊 Audio capture, playback, and multi-client mixing

⚙️ Core Infrastructure

⚙️ Core functionality including error handling, logging, and configuration

🌐 Network

🌐 Network I/O, packet protocol, and audio/video streaming

💻 Client Application

💻 Client application for connecting to servers and streaming media

🖥️ Server

🖥️ ascii-chat server implementation and architecture

🔍 Discovery Service (ACDS)

🔍 ascii-chat Discovery Service for session management and NAT traversal

🔧 Development & Debugging

🔧 Build system, testing infrastructure, and debugging utilities

  • Dependencies - Third-party libraries and build requirements
  • Build System - CMake configuration, cross-platform compilation, build types
  • Testing - Test framework, test runner, Docker testing, coverage reporting
  • Debugging Utilities - Error tracking, memory leak detection, diagnostics
  • Error Handling System - Typed error codes, error context, thread-safe errors
  • Exit Codes - Exit code categories and error descriptions from asciichat_error_t
  • Lock Debugging - Lock tracking, deadlock detection, contention analysis

🧰 Tooling

🧰 Source-to-source transformation tools for debugging and code quality.