https://github.com/ellamosi/sdl3ada
Ada 2022 bindings to SDL 3
https://github.com/ellamosi/sdl3ada
ada ada2022 bindings game game-development gamedev linux macos sdl sdl3 windows
Last synced: 2 months ago
JSON representation
Ada 2022 bindings to SDL 3
- Host: GitHub
- URL: https://github.com/ellamosi/sdl3ada
- Owner: ellamosi
- License: zlib
- Created: 2026-04-13T01:52:19.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-15T05:26:03.000Z (2 months ago)
- Last Synced: 2026-04-18T08:37:39.897Z (2 months ago)
- Topics: ada, ada2022, bindings, game, game-development, gamedev, linux, macos, sdl, sdl3, windows
- Language: Ada
- Homepage:
- Size: 768 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://ada-lang.io/)
# SDL3Ada
SDL3Ada is a prototype variable thickness Ada 2022 binding for [SDL3](https://www.libsdl.org/).
It attempts to preserve the conventions established by [SDLAda](https://github.com/ada-game-framework/sdlada) and keep the API familiar for existing users while exposing SDL3 functionality.
Initial development of this project has been heavily AI-assisted, so the codebase should be read and validated with that in mind.
## Building
The project is set up for [Alire](https://alire.ada.dev/).
So far this repository has only been tested on macOS. It is not intended to be macOS-only, and adapting it to other supported SDL platforms should not be difficult, but that work has not yet been validated.
### Building the library
```sh
alr exec -- gprbuild -P sdl3ada.gpr
```
### Building and running an example
```sh
alr exec -- gprbuild -P examples/renderer/01-clear/clear.gpr
bin/clear
```
## Compatibility
SDL3Ada preserves familiar `SDL.*` unit names where that helps existing
`sdlada` users, but it follows SDL3 semantics rather than trying to emulate
SDL2 behavior. In particular, `SDL.RWops` remains the compatibility package
name while being implemented on top of SDL3's `SDL_IOStream` APIs.
Public-unit parity for the [intended SDL3 target version](tracked-sdl.json) is complete, although much of that surface has not yet been exercised equally in runtime validation.
Some SDL targets are intentionally excluded from scope where they do not fit this binding well or would add maintenance cost without clear benefit. For the detailed package-by-package view, see the [Public Unit Parity Matrix](docs/coverage/parity-matrix.md) and [API Coverage Report](https://github.com/ellamosi/sdl3ada/blob/main/docs/coverage/report.md).
## Examples And Validation
Examples are grouped by category under `examples/`, while smoke targets used
for baseline validation live under `examples/smoke/`. The repository-wide
validation entry point is `tools/run_release_baseline.sh`.
For a guide to the example tree, see [examples/README.md](examples/README.md).
For the full validation breakdown, including subsystem coverage and manual
follow-up areas, see
[Validation Matrix](docs/coverage/validation-matrix.md).
For repository maintenance details, tracked SDL inputs, and coverage workflow,
see [docs/development.md](docs/development.md).