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

72 points by zdw a day ago on hackernews | 13 comments

rrr_oh_man | 13 hours ago

> AppleTalk is a discontinued proprietary suite of networking protocols developed by Apple Computer for their Macintosh computers.

Wut? Can you explain for dumb people?

gregsadetsky | 13 hours ago

AppleTalk is a protocol that was used on classic/vintage Macs (think: early/late 1980s, 1990s) to create local networks. The wikipedia page [0] has a good historical overview, including the parallel rise of ethernet / tcp/ip (which won).

[0] https://en.wikipedia.org/wiki/AppleTalk

rrr_oh_man | 13 hours ago

How does TailTalk relate to this? Does it re-implement it?

gregsadetsky | 13 hours ago

Yep, looks like it - it's a from-scratch reimplementation that you can use in your own software to talk to devices on AppleTalk networks.
Using TailTalk on my modern Mac, I can expose a file share accessible to my Macintosh Plus, which has a simulated SCSI Ethernet adapter bridged to a Pi Pico 2W's wireless connection via a BlueSCSI.

nxobject | 12 hours ago

If this comparison helps: before deprecation, the last practical use for AppleTalk was file sharing, e.g. legacy Time Machine. Apple dropped it, and encourages SMB and WebDAV.

codepoet80 | 13 hours ago

Have been waiting for something like this so I could decommission my old Raspberry Pi Netatalk solution. Thank you!

gregsadetsky | 13 hours ago

Also, just learned of GlobalTalk ie people bridging their AppleTalk network to the Internet! https://marchintosh.com/globaltalk.html

yjftsjthsd-h | 13 hours ago

In light of https://www.phoronix.com/news/Linux-Drops-AppleTalk , I'm a big fan of replacing the functionality in userspace:) (I've similarly thought that it would be helpful to port as many of Linux's filesystems to FUSE so when they get dropped users can just switch to that)

nxobject | 12 hours ago

FUSE is great for portability, too – with some work you get macOS, Haiku, the BSDs...

paulfurtado | 10 hours ago

Fwiw, if performance isn't paramount, you can have a lot of fun with LKL (linux kernel library) and UML (user mode Linux).

UML is full Linux running as a userspace process. Tools like guestfish use it to modify disk images. UML can only run on Linux though.

LKL lets you use the linux kernel as a library. However, only single threaded. But this allows you to use linux's tcp stack from userspace, or its filesystems, etc. LKL also works on non Linux platforms.

These are definitely a different shape than what you're looking for, but they could help you keep the real linux implementations alive from userspace far into the future.

Arctessa | 12 hours ago

Oh hey cool, didn't expect to see my project make Hacker News! I also develop little hardware devices to go with this stack if anyone is interested in embedded AppleTalk too. One is to connect your modern machine directly to LocalTalk networks, and the other is to emulate the now hard to find Apple network adapters for their 80s/90s printer line.

I have a long discussion thread here which chronicles the development of this stack, and the two little hardware projects that go with it: https://68kmla.org/bb/threads/tashtalk-usb-tailtalk-and-inkt....