CSend is a peer-to-peer text chat application that works between Classic Macs and modern systems over a LAN. It builds on top of the PeerTalk SDK for all networking, so the application itself is a thin UI layer handling user input and message display. The POSIX version runs in a terminal. The Classic Mac version has a proper GUI built in ResEdit with a message area, input field, peer list, and send button.

Architecture

CSend is a thin layer on top of PeerTalk. The two UI frontends share the same networking code underneath.

POSIX Terminal UI C11 · pthreads · SPSC ring buffer /list · /send · /broadcast Classic Mac Toolbox UI C89 · WaitNextEvent · ResEdit message area · peer list · send button PeerTalk SDK UDP discovery · TCP mesh · reliable + fast transports clog Logging with UDP network sink BSD Sockets MacTCP Open Transport

Features

  • Five build targets: POSIX, 68k MacTCP, 68k Open Transport, PPC MacTCP, PPC Open Transport
  • Terminal commands: /list, /send, /broadcast for the POSIX version
  • Classic Mac Toolbox GUI with ResEdit resources
  • POSIX version uses C11 with pthreads and an SPSC ring buffer
  • Classic Mac version uses C89 with WaitNextEvent and PT_Poll in the idle handler

Tech Stack

C89/C11 PeerTalk SDK MacTCP Open Transport System 7 ResEdit

Screenshots

CSend running on Classic Mac OS System 7
Classic Mac OS (System 7)
CSend running on Ubuntu Linux
Ubuntu Linux

Dependency Chain

CSend sits on top of the Classic Mac networking stack. The setup.sh script bootstraps everything from scratch, cloning and building all dependencies (Retro68, clog, PeerTalk) and configuring the environment. The Classic Mac Hardware MCP handles deployment to the real hardware.

Retro68 clog PeerTalk CSend

Demo