← Back to Awesome

Sections

Ada/SPARK

GitHub repository ↗ synced 2026/8/9

Awesome Ada Awesome

Ada is powering satellites, aircrafts, ships, power plants, surgical robots, drones, CNCs, servers, games and coffee makers.
Ada is arguably the most { performant ∩ capable ∩ precise ∩ readable ∩ mature } programming language.
Ada is alive and kicking!

Long live Ada/SPARK.

A curated list of awesome resources related to the Ada and SPARK programming language.

Presentation

Education

Entry Point

learn

Interactive learning platform designed to teach the Ada and SPARK programming languages.

ada-lang-io

A community site for Ada.

celebrating-ada

Ada history key moments.

ada-logo-editor

The “Ada horizon” logo maker website.

Tutorials

adacore-video-tutorials

AdaCore University Video Tutorials.

ada-crash-course

Ada 2012 crash course under 50 pages from Vermont Technical College.

simple-games

Learning Ada 2012 by writing simple games.

spark-by-example

Collection of verified functions and data types in SPARK.

Online Books

ada-wikibook

Ada Programming book at Wikibooks.

ada-distilled

Ada Distilled for Ada 2005.

ada-craft

Ada 95: The Craft of Object-Oriented Programming.

ada-cpp-java

Ada for the C++ or Java Developer.

spark-guidance

Implementation Guidance for the Adoption of SPARK.

ada-safe-secure

Safe and Secure Software. An invitation to Ada 2012.

ada-95-tutorial

A book going from beginner to advanced concepts in Ada 95, complete with source files.

Books

Programming in Ada 2022 - Comprehensive.
Programming in Ada 2012 with a Preview of Ada 2022 (2nd ed.) - Comprehensive.
Programming in Ada 2012 - Comprehensive.
Beginning Ada Programming: From Novice to Professional - Introduction.
Ada 95: The Craft of Object-Oriented Programming - General, intermediate.
Ada Plus Data Structures: An Object Oriented Approach - Data Structures.
Ada for Software Engineers - Idioms, Architecture.
Concurrent and Real-Time Programming in Ada - Concurrency, Containers, Scheduling.
Data Structures and Algorithms: An Object-Oriented Approach Using Ada 95 - Data structures, Algorithms.
Building Parallel, Embedded, and Real-Time Applications with Ada - Concurrency, Distributed.
Analysable Real-Time Systems: Programmed in Ada - Scheduling.
Building High Integrity Applications with SPARK - Formal verification.
Ada and SPARK on ARM Cortex-M - Embedded.

Specialties

gems

Ada Gem Archive.

ada-composition

A collections of small nifty demos/sample code that may help better layout data or structure project.

ada-ic-learning

For additional learning resources, see the AdaIC learning section.

ada-at-rosetta-code

A collection of programming tasks and their sample solutions in Ada.

Reference

iso-standard

The 2022 revision to the Ada Standard, usually known as Ada 2022.

adalib

Standard Ada library specification as defined in Reference Manual.

Ada 2022 Reference Card

Reference Card / Cheatsheet of Ada Attributes, Aspects, Pragmas and Standard Library.

Community

Questions and Answers

ada-forum

Ada Forum at ada-lang.io.

gitter-ada

Ada channel at Gitter.

comp-lang-ada

Ada Usenet newsgroup/forum.

stack-overflow-ada-tag

Ada at Stack Overflow.

subreddit-ada

Ada at Reddit.

subreddit-spark

Spark at Reddit.

telegram-ada

Ada group at Telegram.

libera-chat-ada

Ada channel at IRC.

matrix-ada

Ada room at Gitter via Matrix.

hacker-news-ada

Ada at Hacker News.

discord-ada

Ada Discord server.

News and Resources

adacore-blog

An insight into the AdaCore ecosystem.

ada-europe

An international organization, set up to promote the use of Ada.

acm-sig-ada

The Special Interest Group on Ada.

ada-resource-association

Since 1990 the Ada Resource Association's principal mission has been “To ensure continued success of Ada users and promote Ada use in the software industry”.

ada-information-clearinghouse

News and resources for the Ada programming language.

ada-planet

News Aggregator from the Ada programming language world (v3) ([Ada-Planet v2 feed via Matrix][ada-planet-via-matrix]).

adasearch

Custom search engines for finding anything related to the Ada and SPARK programming languages, without interference from other homonymous topics.

Competition

crate-of-the-year

Yearly prize for the best Alire crate in three categories: general, SPARK and embedded.

Compilers

Open source

fsf-gnat

Free Software Foundation compiler for the Ada programming language which forms part of the GNU Compiler Collection. It supports all versions of the language, i.e. Ada 2022, Ada 2012, Ada 2005, Ada 95 and Ada 83.

hac

The HAC Ada Compiler - a small, quick Ada compiler fully in Ada.

byron

A community project to build an Ada compiler, toolchain, and IDE-system.

augusta

Ada compiler written in Scala that targets LLVM.

GPL (with linking exception)

MIT

Apache License

Commercial / Open source

gnat-pro

The GNAT Pro product line offers a comprehensive toolset (IDEs, debugger, librairies, dynamic and static analysis tools) for Ada, C and C++.

Commercial / Closed source

janus-ada

Compiler supporting all the major features of the Ada 83, Ada 95, Ada 2005 and Ada 2012 versions of the language.

object-ada

PTC ObjectAda is an extensive family of native and cross development tools and runtime environments.

apex-ada

PTC ApexAda is one of the industry's most popular development environments for Ada and mixed Ada/C/C++ applications.

greenhills-ada

Green Hills Software offers the industry's first, fully validated family of Ada Cross Compilers for real-time targets.

Online

tutorials-point-ada-compiler

Online compiler built on the CodingGround engine.

jdoodle-ada-compiler

Online compiler that provides multiple versions of GNAT to test with.

compiler-explorer

Run GNAT FSF compilers interactively from your web browser and interact with the assembly.

gnat-ce (discontinued)

GNAT Community edition. A release of AdaCore GNAT for free software developers, hobbyists, and students. The run-time libraries provided with GNAT Community are licensed under GPLv3 without linking exception. It supports Ada 2012 only.

GPL (no linking exception)

Edit

Integrated Development Editors

ada-visual

Ada language integration for Visual Studio 2017.

The GNAT Programming Studio

Editors

lea

A Lightweight Editor for Ada, aims to provide an easy, script-world-like, "look & feel" for developing Ada projects of any size and level, while enabling access to full-scale development tools like GNAT. LEA includes HAC, the HAC Ada Compiler.

Text Modes

gnu-emacs-ada-mode

Gnu Emacs major-mode for editing Ada sources.

vim-ada-bundle

Maintained Ada Bundle : Complete Ada-Mode for Vim/Neovim.

ada-tmbundle

TextMate support for Ada.

bbedit-ada-module

BBEdit support for Ada.

ob-ada-spark

Ada/SPARK support for org-babel : Evaluate source code blocks with Gnu Emacs and org files.

doom-ada

Doom Emacs Ada language module with syntax highlighting, LSP and Alire support.

VSCode Extensions

adacore-ada

Language Support for Ada. It includes [Language Server for Ada][ada-language-server].

ada-vscode

Basic syntax highlighting for Ada and GPR.

ada-utilities

VSCode extension Ada programmers which provides a few utility functions.

Deployment

Build and Package

alire

A catalog of ready-to-use Ada libraries plus a command-line tool (alr) to obtain, compile, and incorporate them into your own projects. It aims to fulfill a similar role to Rust's cargo or OCaml's opam.

alr2appimage

A tool for automatically creating an AppImage executable from an Alire crate.

aura

An integrated build and source/package management tool with a more hands-on versioning approach. Alternative to alire and gprbuild. Optimized for CI/CD pipelines.

gprbuild

Adacore multi-language software build tool.

ravenadm

Administration tool for Ravenports http://www.ravenports.com.

synth

Next D/Ports build tool for live systems (Alternative for Portmaster and Portupgrade tools).

ada4cmake

CMake macros for simple gnat project inclusion.

cmake-ada-offa

Ada language support for CMake.

cmake-ada-cho3

CMake language support for Ada, fork of [plplot]'s cross-platform support code.

tada

An opinionated package management tool for Ada.

Continuous Integration

continuous-verification

SPARK formal verification automated with Travis CI.

ada-actions

Ada Toolchains for GitHub Actions.

porion

Continuous integration server and agent that helps automate the building, testing and deployment.

Runtimes

bb-runtimes

GNAT bare metal board support package (BSP).

avr-ada

GNAT for 8-bit AVR microcontrollers.

ada-runtime

A downsized Ada runtime which can be adapted to different platforms.

cortex-gnat-rts

This package includes GNAT Ada Run Time Systems (RTSs) based on FreeRTOS and targeted at boards with Cortex-M0, M3, -M4, -M4F MCUs.

adawebpack

GNAT RTL for WebAssembly and bindings for Web API.

OS and Kernels

m2os

RTOS with simple tasking support for small microcontrollers.

marte-os

MaRTE OS is a Hard Real-Time Operating System for embedded applications that follows the Minimal Real-Time POSIX.13 subset. It provides an easy to use and controlled environment to develop Multi-Thread Real-Time applications.

muen

An x86/64 Separation Kernel for High Assurance.

ewok

A microkernel targeting micro-controllers and embedded systems.

bare-bones

An Ada port of the [osdev.org](https://wiki.osdev.org/Ada_Bare_Bones) minimal 32-bit x86 kernel.

lovelace-os

Lovelace is an effort to write a Unix like operating system using the Ada 2012 language.

ada-kalinda-os

Ada KALINDA is a sort of Mac Plus like OS written in Ada95.

Straylight

A simple monolithic RISC-V operating system developed in Ada.

havk

x86-64 security-focused OS being created with SPARK.

cubit

CuBitOS is a multi-processor, 64-bit, (partially) formally-verified, general-purpose operating system, currently for the x86-64 architecture.

ironclad

A kernel for several architectures striving for POSIX compatibility, used on several distributions like [Gloire](https://codeberg.org/Ironclad/Gloire).

hirtos

A high-integrity RTOS written in SPARK Ada.

Games

steamsky

Roguelike in sky with a steampunk setting.

unity-ada-tetris

Tetris, in Ada, for the Unity game engine.

tictactoe

A tictactoe game written and proven in SPARK/Ada.

ada-gate

AdaGate is a first-person 3D sokoban puzzle game within a Stargate / Portal fantasy setting for Windows, OS-X and Linux.

rufas-cube

RufasCube is a puzzle game for Windows, OS-X and GNU Linux (it looks like a rubic cube but it's a slider, not a twister).

ada-venture

AdaVenture is a kid-friendly retro point&click game with mazes, dragons, bats & snakes.

retro-arcade

Space Invaders, Pacman, & Frogger games that run in a terminal on Windows, OS-X & Linux.

world-cup-sokerban

This is a soccer-themed, 3D sokoban puzzle game that runs on Windows, Mac OS-X and GNU Linux.

pasta

A game of the "match-3" genre, implemented in [gnoga].

buttons

A simple [gtkada] Button Mania game.

mine-detector

A mine-finding game that never requires guessing.

play-2048

A clone of the popular 2048 game, implemented in Ada using [asfml] for graphics and [ada-toml] for saving state.

bingada

Bingo application in [gtkada].

civ-klon

Civilization-style turn-based strategy game. Requires [asfml].

eepers

A simple Turn-based Game in Ada (made with [raylib](https://github.com/raysan5/raylib)).

gade

A Game Boy emulation library in Ada.

gade-sdl

An SDL2 Game Boy emulation front end for [Gade](https://github.com/ellamosi/gade) using [SDLAda](https://github.com/Lucretia/sdlada).

Frameworks

Components

simple-components

ASN.1, MQTT client and server/broker implementation, B-trees, Multiple connection TCP servers, Chebyshev series, Mutexes, Cryptography, Objects and handles to, Doubly-linked webs and lists, ODBC bindings, Blackboards (lock-free), OpenSSL bindings, ELV/eQ-3 MAX! client implementation, Parsers, Events (plain, pulse, array of), Persistent objects and handles to, GNUTLS bindings, Persistent storage and handles to, Graphs (directed, weighted, acyclic, trees), Pools, HTTP implementation, Sets and maps, FIFO (lock-free), SMTP client implementation, IEEE 754, SQLite bindings, Inter-process communication, Stacks, Interfacing Julia language, Streams, JSON, Strings editing, LDAP, Tables (maps of strings), MODBUS client implementation, Unbounded arrays.

ada-util

A logging framework close to Java log4j framework, support for properties, serialization/deserialization framework for XML/JSON/CSV, Ada beans framework, encoding/decoding framework (Base16, Base64, SHA, HMAC-SHA), a composing stream framework (raw, files, buffers, pipes, sockets), several concurrency tools (reference counters, counters, pools, fifos, arrays), process creation and pipes, support for loading shared libraries (on Windows or Unix), HTTP client library on top of CURL or AWS.

gnatcoll-core

This is the core module of the GNAT Components Collection.

gnatcoll-bindings

This is the bindings module of the GNAT Components Collection.

gnatcoll-db

This is the DB module of the GNAT Components Collection.

gnatcoll-json

This is a set of helpers for writing JSON-intefaces it contains JSON parses for most of the Ada runtime components.

gneiss

An interface collection to be used with applications for component based systems. It aims to be easily portable/platform independent and is compatible with the [ada-runtime].

lace

A set of Ada components to allow 3D simulations, games and GUI's in Ada.

asap

A set of general libraries and thick bindings for use with the AURA package management/build tool. Includes TCP, TLS, HTTP, a high-performance JSON parser/generator, and a formally verified (SPARK) UTF-8 stream decoder.

Distributed

poly-orb

PolyORB provides a uniform solution to build distributed applications relying either on middleware standards.

Graphical User Interface

gnoga

The GNU Omnificent GUI for Ada.

gwindows

GNU Ada Visual Interface.

claw

A High Level, Portable, Ada 95 Binding for Microsoft Windows.

gtkada

Ada graphical toolkit based on Gtk3 components.

qt-ada

Ada-2012 port to Qt 6 framework.

vtk-ada

Ada-2012 port to VTK 8.1 (Visualization Toolkit).

fltk-ada

Ada-2012 binding to FLTK (Fast Light Toolkit).

ada-gui

GUI implemented on its own task, so it doesn't require that its client give up a thread of control. Derived from [gnoga].

adawebui

GUI based on [adawebpack].

imgui-ada

Ada binding of the ImGui library.

anuklear

Ada binding to the Nuklear GUI library and the Nuklear-SDL renderer.

Terminal User Interface

curses

Advanced UNIX Terminal UI Ada Binding Package.

ncurses-ada95

Ada95 bindings for ncurses.

linenoise-ada

Bindings to the Linenoise line-editing library (patched to support UTF-8).

areadline

Ada binding to the readline library.

3D

globe-3d

GL Object Based Engine for 3D.

engine-3d

A 3D engine for DOS-talgics.

ada-ogl

Ada OpenGL Framework.

ada-doom-3

Id Software's Id-tech-4-BFG in the Ada programming language.

Database

ada-ado

Ada Database Objects is an Ada05 library that provides object relational mapping to access a database in Ada05. The library supports PostgreSQL, MySQL, SQLite as databases. Most of the concepts developped for ADO come from the Java Hibernate ORM.

ada-base

Thick database bindings to MySQL, PostgreSQL and SQLite for Ada.

apq-base

APQ is a database interface library written in Ada95.

Web

aws

Ada Web Server is a complete framework to develop Web based applications in Ada.

awa

Ada Web Application is a framework to build a Web Application in Ada 2012. The framework provides several ready to use and extendable modules that are common to many web application. This includes the login, authentication, users, permissions, managing comments, tags, votes, documents, images.

swagger-ada

Ada support for Swagger codegen: OpenAPI Generator is a code generator that supports generation of API client libraries, server stubs and documentation automatically given an OpenAPI Spec.

ews

Embedded Web Server is a web server construction kit, designed for embedded applications using the GNAT Ada compiler.

matreshka

Framework to develop information systems consisting of five major components: League, XML processor, Web framework, SQL access, and the Modeling framework.

- [dynamo](https://github.com/stcarrez/dynamo) - Code generator used to generate an Ada Web Application or database mappings from hibernate-like XML description, YAML doctrine model or UML models.
- [ada-wiki](https://github.com/stcarrez/ada-wiki) - Ada Wiki is a small library that provides a Wiki engine.
- [ada-security](https://github.com/stcarrez/ada-security) - OAuth 2.0 client and server framework to secure web applications.
- [ada-el](https://github.com/stcarrez/ada-el) - This library provides the support for a simple Expression Language close to the Java Unified Expression Language (EL).
- [ada-asf](https://github.com/stcarrez/ada-asf) - Ada Server Faces allows to create web applications using the same pattern as the Java Server Faces (See JSR 252, JSR 314 and JSR 344).
- [ada-servlet](https://github.com/stcarrez/ada-servlet) - Ada Servlet allows to create web applications using the same pattern as the Java Servlet (See JSR 154, JSR 315).

Unit Test, Testing

ahven

A simple unit test library and framework for the Ada programming.

aunit

Ada unit testing framework.

bbt

Simple tool to black box check the behavior of an executable through the command line.

gnatbdd

Behavior Driven Development in Ada.

scripted-testing

Supports functional testing using Tcl scripts.

testy

Ada testing framework, part of [Tada](https://github.com/tomekw/tada).

language. It is loosely modelled after JUnit and some ideas from AUnit.

Logging

alog

Stackable logging framework for Ada.

elogs

Logging framework for embedded systems absent of runtime errors.

Machine Learning

fuzzyml

Fuzzy machine learning framework.

Automation

aicwl

Collection of packages provided for design of high-quality industrial control widgets for Ada applications.

ada-for-automation

A4A is a framework for designing industrial automation applications using the Ada language.

Tools

DevOps

septum

An interactive context-based text search tool for searching large codebases.

powerjoular

This tool allows monitoring power consumption of multiple platforms and processes.

mat

Simple memory analysis tool intended to help understand where the memory is used in a program.

Verification

gnat-coverage

GNATcoverage is a tool to analyze and report program coverage.

adacontrol

Ada constructs lint tool.

spark-2014

SPARK formal verification toolset.

acats

The Ada Conformity Assessment Test Suite, customised for GCC.

acats-grading

Tools for grading ACATS results, modified for Unix-like systems.

Generation

asn1scc

An open source ASN.1 generator to Ada type declarations and encoders/decoders.

ocarina

AADL model processor: mappings to Ada code; Petri Nets; scheduling tools (MAST, Cheddar); WCET; REAL.

fmt

Formal Methods Toolkit is a set of extension packages for Mathematica, supporting software. engineering activities related to modeling, verification and Ada code generation.

automate

Finite-state machine generator.

ajunitgen

Generator of JUnit-compatible XML reports in Ada.

record-flux

RecordFlux: Toolset for the formal specification of messages and the generation of verifiable binary parsers and message generators in SPARK.

resource-embedder

Advanced Resource Embedder to embed files in binaries by producing C, Ada or Go source files.

UML

ada-ml

Ada-tailored UML Modeling Language.

coldframe

This tool generates Ada framework code and documentation from UML models.

umbrello

Unified Modelling Language (UML) diagram program based on KDE Technology. Outputs Ada.

Encryption

ada-keystore

Ada Keystore - protect your sensitive data with secure storage.

Libraries

Math

math-packages

Collection of basic math routines in Ada.

mathpaqs

Collection of mathematical, 100% portable, packages in the Ada programming language.

mandelbrot-ascii

Mandelbrot renderer in "ASCII" (unicode actually, but text nonetheless).

lalg

Interface to dense linear algebra packages.

geo-energy-math

Software libraries for solving models described in Mathematical GeoEnergy (Wiley, 2018).

matrix-root

Compute the N-th root of a matrix.

hungarian

Ada binding to the fast Stachniss' Hungarian solver.

Science

si

Checked and unchecked SI units.

units-of-measurement

Library to manage units of measurement with dimension checking.

si-units

Utility library to pretty print physical values in proper metric units.

Algorithms, Containers and Protocols

ada-language-server

Adacore server implemention of the the Microsoft Language Protocol for Ada and SPARK.

ada-lsp

Language Server Protocol for Ada.

ada-lsp-client

Prototype implementation of LSP client - Visual Studio 2017.

ada-traits-containers

Generic Ada Library for Algorithms and Containers.

dequesterity

Deque/buffer generics that consist of building blocks that may be combined in various ways to create higher abstraction buffers.

pragmarc

PragmAda Reusable Components (PragmARCs) from PragmAda S/W Engineering.

booch95

The Ada 95 Booch components are a port of Grady Booch's C++ components.

ada-id

Simple Ada library for generating UUIDs.

ada-ga

Genetic Algorithm Implementation for Ada.

ada-sodoku

Small Library for Sodoku grid solving / finding.

sl3p

Simple Layer 3 Protocol.

smart-pointers

A package providing a reference-counted access type Smart_Pointer.

hungarian-algorithm

Hungarian Algorithm implementation in Ada.

nb-ada

NBAda : An Ada library of lock-free data structures and algorithms.

paraffin

A suite of Ada 2012 generics to facilitate iterative and recursive parallelism for multicore systems.

deepend

Storage pool with subpool capabilities for Ada 2012, Ada 2005, and Ada 95.

charles

Ada 95 container library, precursor to Ada 2005+ standard containers.

simple-blockchain

Simple blockchain in Ada.

adagio

Gnutella2 (G2) network server leaf.

agpl

Ada General Purpose Library (Miscellaneous utilities, with a robotic flavor).

az3

Ada binding for Z3.

chests

Bounded containers for embedded systems.

Cryptography

threefish

Ada Implementation of the Threefish-256 Encryption Algorithm.

fletcher

Trivial implementation of fletcher_16 checksum computation algorithm.

base58-ada

Base58 encoding and decoding in Ada.

ada-crypto-library

This is a crypto library for Ada with a nice API and is written for the i386 and x86_64 hardware architecture.

libsparkcrypto

A cryptographic library implemented in SPARK.

sip-hash

A pure Ada implementation of the SipHash PRF.

libkeccak

A SPARK implementation of the Keccak family of sponge functions and related constructions.

ascon-spark

Ada/SPARK implementation of the Ascon Authenticated Encryption with Additional Data Algorithm.

spark-sip-hash

Ada/SPARK implementation of the SipHash keyed hash function.

spark-norx

Ada/SPARK implementation of the NORX Authenticated Encryption with Additional Data Algorithm.

spark-nacl

SPARK 2014 re-implementation of the TweetNaCl crypto library.

stotp

Timed One-Time-Pad (RFC 6238) implementation in SPARK.

xxhash-ada

Extremely fast non-cryptographic Hash algorithm, xxhash is working at speeds close to RAM limits.

libsodium-ada

A secure cryptographic library (libsodium for Ada).

ada-libsecret

Ada Binding for the libsecret library.

blake2s

SPARK83 implementation of the BLAKE2s hash function.

Compression

zip-ada

Programming library for dealing with the Zip compressed archive file format.

ada-lzma

Ada binding for liblzma compression library.

dcf-ada

An Ada 2012 library for document container files (Based on [zip-ada]).

Patterns

ada-promises

Implementing promises in Ada. Type-safe, efficient, thread-safe.

reqrep-task-pools

Task pool system for jobs.

rxada

An Ada 2012 implementation of the Rx methodology.

System Modeling

ada-fuzzy

A fuzzy inference system library for Ada.

radalib

Ada library and tools for the analysis of Complex Networks and more.

Parsers, Scanners, Linters, Analysers, Interpreters and Prettyprinters

libadalang

Library for parsing and semantic analysis of Ada code. It is meant as a building block for integration into other tools (IDE, static analyzers, etc).

aflex-ayacc

Ada scanner and parser generators.

wisitoken

An LALR, LR1, and Packrat parser generator and run-time.

gela

Ada code analyzer.

anagram

Grammar handling and parser generation Ada library.

ada-pretty

Pretty printing library for Ada.

increment

Incremental analysis in Ada.

parse-args

Simple command-line argument parsing.

aforth

Embeddable Forth interpreter written in Ada.

parser-tools

Tools for writing lexers / parsers in Ada.

xia

An Ada implementation of XPath 1.0.

ada-lisp-embedded

Embeddable Lisp interpreter.

Format Readers, Writers and Checkers

ini-files

The Ini file manager consists of a package, Config, which can read and modify informations from various configuration files known as "ini" files.

protobuf-ada

Experimental Ada code generation support for Google Protocol Buffers.

protobuf

A Google Protocol Buffers implementation in Ada, using [matreshka].

ada-yaml

Experimental YAML 1.3 implementation in Ada.

json-ada

An Ada 2012 library for parsing JSON.

jwx

A formally verified JSON library in SPARK.

xmlada

The XML/Ada toolkit.

xml-ez-out

Library for emitting XML from Ada programs.

spark-xml

A formally verified XML library in SPARK.

excel-writer

Create Excel files with basic formats.

generic-image-decoder

Multi-format image decoder library for Ada.

ada-pdf-writer

Ada package for producing easily and automatically PDF files, from an Ada program, with text, vector graphics, images (JPEG).

ada-midi

Implementation of Midi / MidiFile reading and writing.

ada-bar-codes

Ada Bar Codes provides a package for generating various types of bar codes (1D, or 2D like QR codes) on different output formats, such as PDF or SVG.

ada-bin2asc

Various binary-to-ASCII codecs such as Base64.

abf-io

A library of access routines to Axon's ABF file format (electrophysiology, most common) in Ada.

ada-toml

TOML parser for Ada.

uri-ada

URI and MIME parser & manipulation library.

ada-libmagic

Magic Number Recognition Library Ada binding (libmagic (3)).

Networking and Communication Middleware

anet

Networking library for the Ada programming language.

adhcp

Implementation of the DHCP protocol in Ada.

adasockets

IPv4 socket library (TCP, UDP, and multicast).

dbus-ada

The D_Bus/Ada library provides an Ada binding to the D-Bus message bus system.

zeromq-ada

Binding to the ZeroMQ comunications-library.

tomi-4-ada

Wrappers for various client/server and pub/sub messaging protocols (AMQP, STOMP and ZeroMQ), focusing exclusively on text message communications.

mosquitto-ada

Binding for the MQTT broker Mosquitto.

tlsada

Bindings to the libtls TLS/SSL library.

kafka-ada

Binding for the C librdkafka library, allows sending and receiving from a Kafka bus.

adare-net

This is a small, portable and easy to use Ada network lib. It supports ipv4 ipv6 udp and tcp, and can 'listen' with ipv6, too.

pcsc-ada

PCSC/Ada provides a thick Ada binding to PC/SC-middleware. The library allows programs written in Ada to communicate with smart cards using the SCard API.

coap-spark

A formally verified implementation of CoAP, the Constrained Application Protocol.

Chatting and Communication

axmpp

With the AXMPP library you can connect to a Jabber server to send and receive messages.

weechat-ada

Ada 2012 library for WeeChat plug-ins.

weechat-canberra

A WeeChat plug-in written in Ada 2012 that plays sounds using Canberra.

weechat-emoji

A WeeChat plug-in written in Ada 2012 that displays emoji.

Web

template-parser

AWS templates engine.

Graphics and Multimedia

opengl-ada

Thick Ada binding for OpenGL and GLFW.

adagl

Multiplatform Ada/OpenGL bindings (ported to native/OpenGL, A2JS/WebGL and WebAssembly/WebGL).

sdlada

Ada 2012 bindings to SDL 2.

ada-nanovg

Ada bindings to NanoVG.

free-type-ada

FreeType binding for Ada 2005.

asfml

Ada binding to the Simple and Fast Multimedia Library.

plplot

Cross-platform, scientific graphics plotting library, including an Ada binding.

vulkada

A complete Vulkan 1.1 thick binding for Ada 2012.

General Purpose Computing

cuda

Support for CUDA (Compute Unified Device Architecture) from AdaCore.

cuda-ada

CUDA/Ada is an Ada binding to NVIDIA's CUDA parallel computing platform and programming model.

opencl-ada

An Ada binding for the OpenCL host API.

boehmgc-ada

Ada binding to the Boehm-Demers-Weiser conservative garbage collector.

ada-bfd

An Ada binding for the GNU Binutils BFD library. It allows to read binary ELF, COFF files by using the GNU BFD.

Sound

opus-ada

Ada 2012 bindings for the Opus audio codec.

canberra-ada

Ada 2012 bindings for libcanberra, an implementation of the XDG Sound Theme and Name Specifications.

ada-soundio

Ada bindings for libsoundio.

oto

Ada binding to OpenAL which tries to mimic original API while using Ada types.

coreland-openal-ada

Ada binding to OpenAL.

ada-synthetizer

Sound Synthetizer Library implemented in Ada.

scala

A powerful software tool for experimentation with musical tunings, such as just intonation scales, equal and historical temperaments, microtonal and macrotonal scales, and non-Western scales.

portable-openal-sound

A linux-sound-playing package for Ada apps that can asynchronously start and stop music loops, as well as initiate transient sounds.

adaogg

Complete thin interface layer that brings the Ogg, Vorbis, and Theora libraries to the Ada 2012 programming language.

AdaTracker

A MOD, XM, S3M, and IT music tracker player written in Ada, using SDL2 for audio output and UI rendering.

Localization

zanyblue

An Ada package allowing the externalization of application messages into a properties file.

ada-intl

NLS thin Ada binding (gettext (3), textdomain (3), bindtextdomain (3)).

Utilities

auto-counters

Reference counting approaches to resource management.

a-stream-tools

Stream utilities for Ada2005 and 2012.

ssprep

An extensible template engine akin to jinja but using [template-parser] and intended for command line usage.

licensing

Open Source Licenses library for Ada.

simple-logging

Easy to use logging facilities for output to console in Ada programs.

rsfile

Command-line utility that picks a file from a folder hierarchy with probability proportional to its size.

cstrings

Convenience subprograms to interact with C strings.

cvsweb2git

Tool to imports CVS repository shared on Ada Conformity Assessment Authority into the Git repository.

ada-bundler

Library and tool for transparently handling data and configuration file access in an Ada application. Supports macOS, Linux and Windows.

macos-sdks-vs-gcc

Provides GCC 'specs' files to cope with SDK policy changes.

ux-strings

Unicode extended strings.

getopt-ada

Portable implementation of getopt(3) in Ada.

Robotics

rclada

Ada client library for ROS2/RCL.

player-ada

Ada bindings for the player robotic platform.

Linux and POSIX

florist

POSIX Ada binding, IEEE Standards 1003.5(b,c).

florist-blady

A fork of Florist which is available as an Alire crate.

wposix

Ada Windows POSIX binding.

ada-v4l2

Ada Posix Binding to Video 4 Linux, used for RPI.

inotify-ada

An Ada 2012 library for monitoring filesystem events using Linux' inotify API.

dl-ada

Minimal binding to libdl.

suid-helper

Small Ada library that helps in writing safer suid programs.

Windows and .NET

win32ada

Ada API to the Windows library.

ada-net-framework

Ada bindings to the Microsoft NetFramework Api.

ada-winrt

Ada bindings for the Microsft WinRT Api.

ada-win32

Ada bindings for the Microsoft Win32 Api.

Bindings to Other Languages

tcl-ada-shell

Tcl Ada SHell (Tash) is an Ada binding to Tcl/Tk.

tashy

Tcl Ada SHell Younger (Tashy) is derivate of Tash, focused mostly on Tk binding.

tashy2

Derivate of Tashy that aims to be more idiomatic and uses a more permisive license.

ada-lua

Ada binding for Lua.

coreland-lua-ada

Ada bindings to the Lua language.

Hardware and Embedded

Frameworks

SweetAda

A lightweight development framework whose purpose is the implementation of Ada-based software systems. It supports a plethora or CPU architectures and development boards.

robotics-with-ada

Robotics with Ada, ARM, and Lego.

adamant

A component-based, model-driven framework for constructing reliable and reusable real-time software.

libgfxinit

A graphics initialization (aka modesetting) library for embedded environments, implemented in SPARK.

Firmwares

certiflie

Source code for the full Ada + SPARK Crazyflie 2.0 firmware.

Drivers

ada-drivers-library

Ada drivers for various MCU and sensors.

em-brick

emBRICK driver and support for emBRICK in Ada.

dw1000

Ada/SPARK driver for the DecaWave DW1000 ultra-wideband (UWB) radio chip.

evb1000

Ada/SPARK drivers to control the on-board peripherals of the DecaWave EVB1000 evaluation board.

multiplexed-io

This contains explorations, for AdaPilot, of implementing drivers for the AdaRacer MCU, using the Ravenscar profile of Ada 2012 from AdaCore and device bindings generated using SVD2Ada.

Controllers

solenoid-engine-controller

Software controller for solenoid engines (Ada/STM32F4).

Communication

sensortile

This project shows how to initialize a SensorTile and how to send sensor data over BLE from a SensorTile to a suitable host.

ada-enet

Embedded network stack (Ethernet driver, IPv4, UDP, DNS, DHCP, NTP) for STM32F746 or STM32F769.

Libraries

giza

This library is trying to be a simple widget tool kit for embedded platforms.

ada-synth-lib

Simple audio synthesis library that can run on bareboard devices.

geste

Sprite and tile 2D render engine designed to run on micro-controllers.

sancta

Multi-robot task allocation library.

stm32-ui

STM32 UI library and tools (graphs, images, 12 hour clock).

ada-time

Ada binding for the Pebble Time smartwatch.

wiring-pi-ada

Ada bindings for wiringPi.

Applications

coffee-clock

Waking up with a fresh cup of coffee.

noise-nugget

Square Inch Synthesizer.

spark-railway-demo

Simulated railway network in SPARK/Ada.

micro-tem-pi

Raspberry Pi using a BBC Micro:Bit as temperature sensor.

wee-noise-maker

Wee Noise Maker is an open source pocket synthesizer.

lunar-lander-rotation

Program that interacts with the AdaFruit BNO055 breakout board in order to send orientation data to a host computer.

railway-simulation

Program simulating a railway network with trains, switches and signaling. The signaling system is proven with SPARK/Ada to ensure that trains cannot collide.

etherscope

Ethernet traffic monitor on a STM32F746 board.

Generators

svd2ada

An Ada binding generator from SVD descriptions for bare board ARM devices.

Applications

Office

azip

A free, portable Zip Archive Manager.

texcad

A program for drawing or retouching {picture}s in LaTeX.

cbsg

The Corporate Bullshit Generator.

hunter

Graphical ([gtkada]) file manager for Linux.

Mail

trash-finder

Trash Finder is a mail filter that operates as a plugin for your mail server, providing filtering on dozens of criteria along with management of known good mail.

Web

ironsides

Authoritative DNS server verified by SPARK/Ada.

wasabee

A Web browser with safety focus.

yass

Yet Another Static Site Generator (like Jekyll or Hugo).

Multimedia

ada-3ds

A simple 3DS Max model renderer.

canta

A tool to help to sing in tune.

blackvideo-mini-player

A stand-alone lightweight auxiliary video player support for [``BlackVideo``](https://github.com/BlackBlazent/BlackVideo).

Automation

acnc

A G-code parser and CNC controller (in Ada).

max-home-automation

[gtkada] application to manage ELV/eQ-3 MAX! cubes for home automation.

ada4automation

A framework for designing industrial automation applications using the Ada language.

Simulation

eagle-lander

Apollo 11 lunar lander simulator ([gtkada]/Cairo).

ghdl

VHDL 2008/93/87 simulator.

parallel-sim

Distributed Simulation of Transport Networks.

covid-19-simulator

Multi engine/algorithms COVID-19 simulator. Ada, Qt code under the hood.

mars-mpl

Mars Polar Lander (Crash) Simulator ([gtkada], [aicwl]).

doppler-effect-sample2

Moving airplane causes Stereo Sound Doppler effect ([gtkada]).

Generators and Translators

adabrowse

HTML generator for Ada95 library unit specs.

pascal-to-ada

A Pascal to Ada translator.

tiled-code-gen

Code generator for Tiled the map editor.

j2ada

Translator for a Java valid source code in Ada source code.

ada-magic

SofCheck AdaMagic is ACATS validated and certified Ada compiler targeting C and/or C++ (4 command line switches for fine tuning). ObjectAda and several other commercial compilers share engine with AdaMagic. MapuSoft distributes AdaMagic as integral component of AppCOE.

cappulada

Ada binding generator for C++.

asis2xml

Converts Ada sources' ASIS representation to XML, so as to make it easier to develop reporting and transformational tools using (for example) XSLT.

winforms2gtk

Helper conversor of Visual Basic Microsoft Windows Forms applications to Gtk and Ada.

  • tp7-ada-gtkada - Implementation of Turbo Pascal 7.0 units with [gtkada].
    • tp7-ada-gnoga - Implementation of Turbo Pascal 7.0 units with [gnoga].

Shells, Interpreters and Emulators

sparforte

The SPARforte programming language is an Ada-like scripting language, previously known as business user shell (bush). Can be used as interactive UNIX shell replacement.

gsh

Non interactive POSIX shell for Windows, aimed at GNU software builds. 2-3 times faster than Cygwin.

analytical-engine

An Ada 2012 emulation of Charles Babbage's Analytical Engine.

a-shell

A component to aid in writing shell-like applications in Ada.

dashera

Data General DASHER terminal emulator using [gtkada].

yotroc

Assembler/Emulator for a fictional CPU architecture. IDE implemented in [gtkada].

Programming Languages

para-sail

ParaSail is a highly parallel experimental language, similar to Go and Erlang. Originaly owned by SofCheck (now AdaCore), it is a test project to try new ideas. Expandable pointers is a sample feature that is about to be introduced to SPARK and Ada. There are in fact 4 experimental languages: ParaSail, Sparkel, Javallel, Parython, all sharing bytecode interpreter and LLVM engine.

Misc

dhondt

Ada implementation of D'Hondt electoral result calculator.

whitakers-words

William Whitaker's WORDS, a Latin dictionary.

ada-chess

Chess engine written in Ada.

adage

An Ada/SPARK alternative to sudo and doas.