- When is 0.2? Not before SDL2-v2.0.12 comes out, which is scheduled for "before the end of the year".
- Does this thing work with cross compilation? No, I'm dumb, I'll fix it in 0.2
fermium crate is raw bindings to the SDL2 C API.
For the high-level wrapper crate, please see beryllium.
Compared to the common alternative, sdl2-sys, this is has consts instead of enums, it is slightly more complete, and it works much better on windows MSVC (no special setup at all).
- There are pre-generated bindings for the following targets:
- If your platform supports SDL2 but isn't on that list, please send in a PR!
- Install the
llvmpackages for your platform. Might be under different names, depending on distro and such.
cargo install bindgen
cargo build --features="use_bindgen_bin"
- All the results go in to the
OUT_DIR, something like
- There should be a 2.0.8, 2.0.9, and 2.0.10 version of the bindings for your target, it does all three versions in a single build.
- Just PR those new files and I'll get it up on crates.io as soon as I can.
- Install the
You can dynamic link or static link.
- Dynamic linking is the default, and is the officially suggested linking style,
both by me and also by the SDL2 project.
- On Windows just grab the "Runtime Binaries" from The SDL Website or from the fermium repository. Put it in your project directory for development, and ship it with your program when you release something.
- If you're feeling lazy, you can
cargo install fermiumand then just run
fermiumand it'll dump
SDL2.dllinto the current directory. It will automatically use either the 32-bit or 64-bit version.
- On not-windows you should get SDL2 through your distro package manager (linux) or homebrew (Mac).
- Static linking is available.
- On Windows this will automatically build the static library for you. This takes some extra time, but is otherwise fully automated and you don't need to perform any special steps.
- On not-Windows please be aware that not all package managers distribute SDL2 configured for static linking, so you might have to build the library from source with static linking enabled.
The default API target level is 2.0.8, but you can enable features to add in functions from 2.0.9 or 2.0.10.
- Even without the features enabled your program will build and run with any newer version of SDL2 as well, and you'll get all relevent bug fixes and such, you just can't call the newer functions.
- Please be aware that while Windows and Mac both have easy access to 2.0.10, Most of the Linux distributions still have 2.0.8 or 2.0.9 in their package managers. Unless you really need those newer functions, you might as well stay at the 2.0.8 API level for now.
This crate uses the Zlib license, the same license that SDL2 itself uses.
old-headers-only/directory contains header files from older versions of SDL2 and its add-ons, for use by bindgen when needed.
full-source/directory contains all the source needed to potentially build SDL2 and its add-ons on windows, for use with static linking.
win32-devel-files/directory has dynamic lib files for use when building on Windows. As with the
full-source/directory, spare files have been deleted to save on space.