Skip to content
Tech News
← Back to articles

TailTalk: A modern async user space AppleTalk stack with Rust and Tokio

read original get Programming Rust, 2nd Edition (O'Reilly) → more articles
Why This Matters

TailTalk is a from-scratch, fully user-space AppleTalk stack in Rust that lets modern Linux, macOS and Windows machines talk to vintage Macs and printers without Netatalk or kernel drivers. That matters because legacy networking support has been steadily stripped from modern OSes, leaving retrocomputing and archival users with shrinking options for moving files off old hardware. It also bridges eras practically, exposing old LocalTalk printers as AirPrint devices and vice versa.

Key Takeaways
Worth a Look

Programming Rust, 2nd Edition (O'Reilly) — TailTalk shows off what modern Rust and async Tokio can do — even resurrecting AppleTalk for vintage Macs. This O'Reilly guide is a thorough hands-on reference for ownership, traits, concurrency and async Rust, so you can go from reading projects like this to writing your own. A great desk companion for anyone tinkering with systems-level networking code.

See Programming Rust, 2nd Edition (O'Reilly) on Amazon → Affiliate link — we may earn a commission on purchases, at no extra cost to you. Product picked by AI based on this article; it is not a tested recommendation.

TailTalk

TailTalk is designed as a "toolkit" for building fully userspace AppleTalk implementations on Linux, Mac OS and Windows systems via EtherTalk or LocalTalk networks. It is built from scratch with zero dependencies on Netatalk or any kernel drivers - All it needs is a raw socket and/or TashTalk compatible device (for LocalTalk) and patience for grumpy old computers. It provides a complete AppleTalk stack, with multiple copies of it able to run on the same machine at the same time.

I started this project to be able to copy files to/from my old Macs, print to LaserWriters, ImageWriters and networked StyleWriters, and be able to write modern async software to communicate with them. Currently TailTalk only works in a routerless setup - work is in progress to make it gracefully join router present networks but it is not yet in the mainline code.

Each part of the stack is meant to be as "zero config" as possible, just like running on a Mac of the era. Just plug it in, launch and things should just work without any fuss.

This project is very much a work in progress prototype, so expect bugs and missing features.

TailTalk GUI

This is the current user facing program for use with TashTalk USB. It includes an AFP server which should work with just about every Mac that shipped with a LocalTalk port. It also can import Stuff-It archives and floppy disk images and load them in to the share path preserving the resource forks and make them available to remote clients.

It additionally supports sharing LocalTalk capable LaserWriters, ImageWriters and StyleWriters to modern networks as AirPrint / IPP printers, and sharing modern printers to classic Macs. The latest release can be found here:

https://github.com/FeralFirmware/TailTalk/releases/latest

Features

... continue reading