#sdl2 #sdl

no-std bin+lib fermium

An opinionated crate of SDL2 bindings

52 releases (23 stable)

22605.0.0 Apr 21, 2023
22604.0.1 Apr 15, 2023
22604.0.0 Mar 8, 2023
22603.0.0 Mar 1, 2023
0.0.15 Jun 11, 2019

#24 in No standard library

Download history 581/week @ 2023-08-17 638/week @ 2023-08-24 583/week @ 2023-08-31 713/week @ 2023-09-07 537/week @ 2023-09-14 473/week @ 2023-09-21 560/week @ 2023-09-28 583/week @ 2023-10-05 575/week @ 2023-10-12 615/week @ 2023-10-19 691/week @ 2023-10-26 454/week @ 2023-11-02 619/week @ 2023-11-09 623/week @ 2023-11-16 666/week @ 2023-11-23 691/week @ 2023-11-30

2,696 downloads per month
Used in 13 crates (7 directly)

Zlib OR Apache-2.0 OR MIT

279K SLoC

C 228K SLoC // 0.1% comments Objective-C 14K SLoC // 0.1% comments Shell 9K SLoC // 0.2% comments Visual Studio Project 8K SLoC C++ 8K SLoC // 0.2% comments Rust 4.5K SLoC // 0.0% comments Java 3K SLoC // 0.2% comments Perl 2K SLoC // 0.1% comments GNU Style Assembly 661 SLoC // 0.2% comments Visual Studio Solution 416 SLoC JavaScript 286 SLoC // 0.4% comments Automake 168 SLoC // 0.0% comments Python 109 SLoC // 0.1% comments RPM Specfile 94 SLoC Batch 90 SLoC Prolog 15 SLoC Xcode Config 8 SLoC // 0.6% comments

Contains (Windows DLL, 2.5MB) SDL2-2.26.5-devel/SDL2.dll, (static library, 185KB) SDL2-2.26.5-devel/SDL2.lib, (JAR file, 55KB) gradle-wrapper.jar



Rust bindings to the SDL2 library.

This crate covers most of SDL2's 2.0.16 API. It can be used compatibly with any newer version of SDL2. It can also even be used with older versions of SDL2, though if you call any functions not present you'll get a link error, and if you call an older version with arguments it doesn't expect it'll generally give you a runtime error.

By default, the crate links to the system version of SDL2 (or bundled pre-built dev files on Windows MSVC). Alternately, you can have the crate build SDL2 from source and statically link to that.


The major version of this crate is basically the bundled version of SDL2 with all the dots taken out. Each new release of the crate that bundles new SDL2 source is a major version bump. There are generally no actual breaks in the crate code itself (though sometimes small updates happen). There are usually updates and fixes in how the build script runs, or raising the MSRV of the crate.


  • Lokathor, why does your crate have such a stupid name?
    • Well, this started as raw layer for a crate called beryllium, to replace its usage of sdl2-sys with something new. Since sdl2-sys was already taken, I needed another name, and I decided to pick another element name. Somewhat at random, I just decided to check out element 100 on wikipedia, and it was apparently discovered in the fallout of the first hydrogen bomb. I thought to myself, "well that's cool enough, I guess", and now we're here.