I've been really wanting to write software to speak AppleTalk to my various LocalTalk (and sometimes EtherTalk) systems. I've found the C API for Netatalk isn't super pleasant, at least coming from the Rust world with async/await everywhere.
This is a little milestone from my own fully userspace Rust AppleTalk stack that provides a no_std (i.e suitable for embedding on micros) parser and encoder for every AppleTalk packet type, and a Linux/Mac/Windows stack that uses raw sockets so has no reliance on the kernel itself to build on top of it. No code reuse from Netatalk either, all built with Rust + Tokio in mind. It exposes high level async APIs with Tokio for all of the protocols as well, so to look up a LaserWriter and print to it via NBP is trivial.
Not meant to be a super serious project, but the eventual goal is to have most all the usual functionality that Netatalk provides working, including AFP so I can transfer files easily from my Linux machine to any of the older Macs. Thought I'd post it here in case there was any other Rust interest
.
Picture is from my userspace stack printing the Rust logo from my Linux tablet, with LLAP, NBP, DDP, ATP and PAP all working in harmony
This is a little milestone from my own fully userspace Rust AppleTalk stack that provides a no_std (i.e suitable for embedding on micros) parser and encoder for every AppleTalk packet type, and a Linux/Mac/Windows stack that uses raw sockets so has no reliance on the kernel itself to build on top of it. No code reuse from Netatalk either, all built with Rust + Tokio in mind. It exposes high level async APIs with Tokio for all of the protocols as well, so to look up a LaserWriter and print to it via NBP is trivial.
Not meant to be a super serious project, but the eventual goal is to have most all the usual functionality that Netatalk provides working, including AFP so I can transfer files easily from my Linux machine to any of the older Macs. Thought I'd post it here in case there was any other Rust interest
Picture is from my userspace stack printing the Rust logo from my Linux tablet, with LLAP, NBP, DDP, ATP and PAP all working in harmony
