
Why We're Rewriting Astropad in Rust - mronge
https://blog.astropad.com/why-rust/
======
rvz
For those who haven't heard, Astropad allows illustrators, artists and
animators to turn their existing iPad into a professional graphics tablet for
macOS.

Choosing Rust to meet the cross-platform requirements for Astropad is a great
choice and a interesting one. I have read the previous article [0] on how
Astropad was unfortunately Sherlocked by Apple [1] in the Catalina + iPadOS
Sidecar feature and given that Astropad works only on macOS, it makes sense to
become cross-platform to bring Astropad onto platforms like Windows or Linux
since Apple only cares about its walled-garden. So I'm very happy to see
Astropad take this move into trying Rust.

[0] - [https://blog.astropad.com/sherlocked-by-
apple/#more-6368](https://blog.astropad.com/sherlocked-by-apple/#more-6368)

[1] - [https://www.apple.com/newsroom/2019/06/apple-previews-
macos-...](https://www.apple.com/newsroom/2019/06/apple-previews-macos-
catalina/)

------
pnako
I'm curious what they use for the GUI. C++ with Qt might have been a safer
choice. Like most Rust advocacy articles, it says it rejects "C/C++" because
of the flaws of C.

~~~
mronge
That's a great question. Our UI is pretty light on the desktop side and most
of the complex UI is on the iPad which we don't have to rewrite (yet). So we
will most likely use the native UI APIs and use Rust's excellent FFI support.

C++ would have been a safe choice, but then well... we'd be stuck using C++.
We still do use C++, a lot of our video codec is in C/C++ but parts outside of
that will be Rust.

~~~
pnako
Oh, I see. I thought you wanted to recreate the whole thing on Windows, but it
looks like you just stream the iPad screen onto the desktop. In which case you
can indeed probably just use Win32 and DirectX.

