Skip to content

Supported Platforms

Ben Fry edited this page Jan 23, 2022 · 14 revisions

4.0 beta 4 includes several updates to how different operating systems and hardware are handled. This allows us to add Apple Silicon (M1) support, and also better handles other devices like the Raspberry Pi.

The final decision is that a “variant” should consist of the OS name (windows, macos, or linux) followed by a the naming from the os.arch value returned by System.getProperty(). Because those names can vary across JDK implementations, we'll be using the name used by the JDK included with the Processing download, which is currently from Adoptium.

This new {os}-{arch} helps drastically simplify the code inside the PDE, and also gets us out of the business of deciding how to rename each platform. While the naming is sometimes awkward (i.e. macos-x86_64), the alternatives are inelegant as well, so we'll err on the side of simplicity by inheriting how the platform handles naming.

As a result of these changes, the subfolders used to identify native libraries for each platform are different. Old libraries will still work, but you're strongly encouraged to use these new names for clarity.

Hardware/OS os.arch bits 4.0 library folder name old library folder name download suffix
Apple Silicon (i.e. M1) aarch64 64 macos-aarch64 macos-aarch64
Apple Intel x86_64 64 macos-x86_64 macosx macos-x64
Windows 10 (64-bit) amd64 64 windows-amd64 windows64 windows-x64
Linux (Ubuntu 64-bit) amd64 64 linux-amd64 linux64 linux-x64
Raspberry Pi OS arm 32 linux-arm linux-armv6hf linux-arm32
Raspberry Pi OS (64-bit beta) aarch64 64 linux-aarch64 linux-arm64 linux-arm64

(The “bits” column is equivalent to sun.arch.data.model)

You can also view the Supported Platforms from 3.x, though half that information will be out of date.

Clone this wiki locally