Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
SFML bindings for Rust

rust-sfml Build Status

SFML bindings for Rust

This is a Rust binding for SFML, the Simple and Fast Multimedia Library, developed by Laurent Gomila.

SFML website :


You must install the SFML2.1 and CSFML2.1 libraries on your computer which are used for the binding.



Then clone the repo and build the library with the following command.

You can build rust-sfml using different version of Rust compiler:

Rust version rust-sfml
Rust master link rsfml
Rust 0.11 link rsfml
Rust 0.10 link rsfml
Rust 0.9 link rsfml
Rust 0.8 link rsfml

Rust-sfml is built with make:

> make

This command build rsfml, the examples, and the documentation.

You can also build them separatly:

> make rsfml
> make examples
> make docs

Alternatively you can use Cargo:

> cargo build

This will build rust-sfml and all the examples.

Rust-sfml works on Linux, Windows and OSX.

Windows 32 bits bug

According to the issue #10, there is problem to use rsfml on Windows. It seems to be a bug in the version of llvm used by Rust. Krzat made a patch to solve this problem, you can find it here: mozilla/rust#11198

Short example

Here is a short example, draw a circle shape and display it.

extern crate rsfml;

use rsfml::system::Vector2f;
use rsfml::window::{ContextSettings, VideoMode, event, Close};
use rsfml::graphics::{RenderWindow, RenderTarget, CircleShape, Color};

fn main () -> () {
    // Create the window of the application
    let mut window = match RenderWindow::new(VideoMode::new_init(800, 600, 32),
                                             "SFML Example",
                                             &ContextSettings::default()) {
        Some(window) => window,
        None => panic!("Cannot create a new Render Window.")

    // Create a CircleShape
    let mut circle = match CircleShape::new() {
        Some(circle) => circle,
        None       => panic!("Error, cannot create ball")
    circle.set_position(&Vector2f::new(100., 100.));

    while window.is_open() {
        // Handle events
        for event in {
            match event {
                event::Closed => window.close(),
                _             => {/* do nothing */}

        // Clear the window
        window.clear(&Color::new_RGB(0, 200, 200));
        // Draw the shape
        // Display things on screen


This software is a binding of the SFML library created by Laurent Gomila, which is provided under the Zlib/png license.

This software is provided under the same license than the SFML, the Zlib/png license.

Something went wrong with that request. Please try again.