Which platforms and programming languages does SFML support?

Updated

SFML runs on Windows, Linux, macOS, and on Android and iOS with limitations. For programming languages, it has official bindings for C and .NET languages, and community bindings extend it to Java, Ruby, Python, Go, and more. Pre-compiled SDKs for common operating systems are available from the download page.

Platforms

According to the sfml-dev.org home page, SFML applications can compile and run out of the box on the most common operating systems:

Platform Support level
Windows Supported
Linux Supported
macOS Supported
Android Supported with limitations
iOS Supported with limitations

The site notes that pre-compiled SDKs for your favorite OS are available on the download page, so you do not necessarily need to build the library from source to get started.

Programming languages

SFML is described as multi-language, with two categories of bindings:

  • Official bindings: C and .NET languages.
  • Community bindings: Java, Ruby, Python, Go, and more, maintained by an active community.

If your language is not in the official list, the bindings page is the place to check whether a community binding exists for it.

What this means for choosing SFML

  • If you target Windows, Linux, or macOS with C or a .NET language, SFML is a direct fit with official support on both axes.
  • If you target Android or iOS, plan around the stated limitations rather than assuming full parity with desktop.
  • If you use Java, Ruby, Python, or Go, you depend on community bindings, so verify their current state before committing.

SFML itself provides a simple interface to PC components for games and multimedia applications, organized into five modules: system, window, graphics, audio, and network. Details on each are in the tutorials and API documentation linked from the site.