# Simple DirectMedia Layer 3.0 This is the SDL3 wiki. SDL2 is [over here](/SDL2)! ## Try it right now! SDL3 has [officially released](https://github.com/libsdl-org/SDL/releases) and is ready for you to start using now. Need some motivation? Here's a list of [New Features](NewFeatures) that you can enjoy today in SDL3! If you're coming from SDL2 check out the [2 to 3 Migration Guide](README-migration). ## What is it? Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL/Direct3D/Metal/Vulkan. It is used by video playback software, emulators, and popular games including [Valve](https://valvesoftware.com)'s award winning catalog and many [Humble Bundle](https://www.humblebundle.com) games. SDL officially supports Windows, macOS, Linux, iOS, and Android, and [several other platforms](README-platforms.md). SDL is written in C, works natively with C++, and has bindings available for several other languages, including C#, Python, and [Rust](https://crates.io/crates/sdl3). SDL 3.0 (often shortened to "SDL3") is distributed under the [zlib license](https://www.libsdl.org/license.php). This license allows you to use SDL freely in any software. This is the SDL wiki. SDL's main website is [libsdl.org](https://libsdl.org/). ## Getting Started | | | | ------------------------------------------------| --------------------------------------------| | [Source Code](SourceCode) | How to download the source code to SDL. | | [Installation](https://github.com/libsdl-org/SDL/blob/main/INSTALL.md) | How to install SDL on your platform of choice and link your program against it. | | [API by Category](APIByCategory) | Reference documentation for all of SDLs Subsystems can be found here. | | [Tutorials](Tutorials) | Take a look at some tutorials to guide you through learning SDL. | | [Examples](https://examples.libsdl.org/SDL3/) | Small programs that each demonstrate a feature of the library. | | [Demos](https://examples.libsdl.org/SDL3/demo/) | Simple but complete games and apps. | | [Frequently Asked Questions](FAQDevelopment) | Questions developers often ask when using SDL. | | [SDL Communities](FAQCommunities) | Communities you can follow to help and get help with SDL | ## API Documentation - [API by category](APIByCategory) - [API quick reference](QuickReference) - [Complete API index](CategoryAPI) ## Other sources of information - [Articles and Videos](Articles) - [SDL 2.0 Migration Guide](README-migration) - [READMEs](READMEs) covering more advanced topics - [Libraries](Libraries) to extend SDL functionality - [Forums/mailing lists](https://discourse.libsdl.org/) and of course [a Discord server](https://discord.gg/BwpFGBWsv8). Both are great places to keep up with the latest news, help other users out, and ask questions. ## Satellite libraries There are other libraries that are developed by the SDL team, but aren't part of SDL itself. They are also documented on this wiki: - [SDL_image](/SDL3_image): Load image files (bmp, gif, jpg, many others) into an SDL_Surface or SDL_Texture. - [SDL_ttf](/SDL3_ttf): Load font files (ttf, etc) and render text with them. - [SDL_mixer](/SDL3_mixer): Load audio files (wav, mp3, ogg, many others), mix multiple sounds, apply effects to them. - [SDL_net](/SDL3_net): A fairly low-level wrapper over common networking tasks. ## Other stuff We hope you find everything you are looking for and enjoy using SDL! If anything is not addressed somewhere here, feel free to [open an issue](https://github.com/libsdl-org/SDL/issues) or [submit a pull request](https://github.com/libsdl-org/SDL/pulls). **Enjoy!**