A curated list of awesome resources and other links related to the Ada and SPARK programming language.
- learn - Interactive learning platform designed to teach the Ada and SPARK programming languages
- gems - Ada Gem Archive
- ada-wikibook - Ada Programming tutorial at Wikibooks
- iso-standard - The 2012 revision to the Ada Standard, usually known as Ada 2012
Programming in Ada 2012 - Comprehensive
Introduction to Ada Programming, 2nd Edition - Introduction
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
- spark-by-example - Collection of verified functions and data types in SPARK
- comp-lang-ada - Ada Google forum
- stack-overflow-ada-tag - Ada at Stack Overflow
- adacore-blog - An Insight Into the AdaCore Ecosystem
- ada-programming - Ada Google Plus Community
- 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 2012, Ada 2005, Ada 95 and Ada 83
- gnat-ce - Adacore compiler for the Ada programming language which forms part of the GNU Compiler Collection. It supports all versions of the language, i.e. Ada 2012, Ada 2005, Ada 95 and Ada 83
- janus-ada - Compiler supporting the complete syntax and features of the Ada 95 programming 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
- hac - Experimental Ada compiler fully in Ada
- 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.
- gps - The GNAT Programming Studio.
- gnu-emacs-ada-mode - Gnu Emacs major-mode for editing Ada sources
- vim-ada-bundle - Ada Bundle : Complete Ada-Mode as Vim-Ball or Tar.bz2
- ada-tmbundle - TextMate support for Ada
- ada-vscode - VisualStudio Code support for Ada
- gnat-coverage - GNATcoverage is a tool to analyze and report program coverage
- adacontrol - Ada constructs lint tool
- spark-2014 - SPARK formal verification toolset
- fmt - Formal Methods Toolkit is a set of extension packages for Mathematica, supporting software engineering activities related to modeling, verification and Ada code generation
- gprbuild - Adacore multi-language software build tool
- ravenadm - Administration tool for Ravenports http://www.ravenports.com
- 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
- synth - Next D/Ports build tool for live systems (Alternative for Portmaster and Portupgrade tools)
- continuous-verification - SPARK formal verification automated with Travis CI
- generic-ada-runtime - A downsized Ada runtime which can be adapted to different platforms
- bb-runtimes - GNAT bare metal board support package (BSP)
- embedded-runtimes - Runtimes that add support for various boards to the GNAT GPL compiler for ARM
- avr-ada - GNAT for 8-bit AVR 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 - EwoK is a microkernel targeting micro-controllers and embedded systems
- bare-bones - An Ada port of the osdev.org minimal 32-bit x86 kernel.
- 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
- terminal-apps - Fun puzzle games that run on any terminal on any OS
- co-terminal-apps - Retro Games that run in a terminal on any platform.
- mini-pacman - MiniPac is a kid friendly ascii character version of Pacman that plays in a commandline terminal
- world-cup-sokerban - This is a soccer-themed, 3D sokoban puzzle game that runs on Windows, Mac OS-X and GNU Linux
- simple-components - Implementation of various algorithm, containers or protocols
- 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
- poly-orb - PolyORB provides a uniform solution to build distributed applications relying either on middleware standards
- gnoga - The GNU Omnificent GUI for Ada
- gnavi - GNU Ada Visual Interface
- claw - CLAW, a High Level, Portable, Ada 95 Binding for Microsoft Windows
- gtkada - Ada graphical toolkit based on Gtk3 components
- globe-3d - GL Object Based Engine for 3D
- orka - The OpenGL 4.6 Rendering Kernel in Ada 2012
- ada-ogl - Ada OpenGL Framework
- aws - AWS 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.
- matreshka - Matreshka is an Ada framework to develop information systems. It consists of five major components: League, XML processor, Web framework, SQL access, and the Modeling framework.
- ahven - Ahven is a simple unit test library and framework for the Ada programming lanugage. It is loosely modelled after JUnit and some ideas from AUnit.
- aunit - Ada unit testing framework
- testing - Ada unit testing and measuring framework
- alog - Alog is a stackable logging framework for Ada
- math-packages - Collection of basic math routines in Ada
- mathpaqs - Mathpaqs is a collection of mathematical, 100% portable, packages in the Ada programming language
- amatrix - Matrix implementation in Ada
- polynomials - This package allows formal manipulation of polynomials of several variables
- numerics - Provides numerous improvements to numerical handling in Ada, mostly through additional types
- mathematics - Collection of Ada packages for mathematics, includes things like distributive algebra, angular algebra, and more
- ada-traits-containers - Generic Ada Library for Algorithms and Containers
- pragmarc - PragmAda Reusable Components (PragmARCs) from PragmAda S/W Engineering
- libadacrypt - This is a crypto library for Ada with a nice API and is written for the i386 and x86_64 hardware architecture
- booch95 - The Ada 95 Booch components are a port of Grady Booch's C++ components.
- gnatcoll - GNAT Component Collection from Adacore
- 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
- sip-hash - A pure Ada implementation of the SipHash PRF
- ada-lsp - Language Server Protocol for Ada
- ada-language-server - prototype implementation of the Microsoft Language Server Protocol for Ada/SPARK
- smart-pointers - A package providing a reference-counted access type Smart_Pointer
- marsaglia-random-number-generator - Ada implementation of the algorithm developed by George Marsaglia, Supercomputer Computations Research Institute, Florida State University.
- containers - Collection of containers for Ada
- libsparkcrypto - A cryptographic library implemented in SPARK
- 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
- reqrep-task-pools - Task pool system for jobs
- hungarian-algorithm - Hungarian Algorithm implementation in Ada
- landscape - A library to plot functions of two real variables
- si-units - A set of Ada packages to compute with dimensioned items in full generality
- libadalang - Libadalang is a 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 - Ada95 scanner and parser generators
- opentoken - Lexical analyser and parser for the Ada language
- gela - Ada code analyzer
- anagram - Grammar handling and parser generation Ada library
- ada-pretty - Pretty printing library for Ada
- increment - Incremental analysis in Ada
- ada-lexer - A lexical analyzer written in Ada, which transforms a stream of characters representing an Ada program into a stream of language specific tokens
- parse-args - Simple command-line argument parsing
- ini-file-manager - The Ini file manager consists of a package, Config, which can read and modify informations from various configuration files known as "ini" files.
- 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
- zip-ada - Zip-Ada is a programming library for dealing with the Zip compressed archive file format.
- apdf - 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
- anet - Anet is a networking library for the Ada programming language.
- adasockets - IPv4 socket library (TCP, UDP, and multicast)
- adhcp - ADHCP is an implementation of the DHCP protocol in Ada
- template-parser - AWS templates engine.
- opengl-ada - Thick Ada binding for OpenGL and GLFW
- ada-synthetizer - Sound Synthetizer Library implemented in Ada
- engine-3d - A 3D engine for DOS-talgics
- translator - An Ada package to write language independent messages
- split-n-join - An Ada package Ada.Strings.Unbounded.Lists to split and join Strings similar to Perl
- make-body - From a given Ada package spezification, create a body template
- colorize - Presentation of tokens of an Ada program in different colors
- lines-of-code - Count the lines of code of an Ada program
- auto-counters - Reference counting approaches to resource management
- ada-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.
- robotics-with-ada - Robotics with Ada, ARM, and Lego
- certiflie - Source code for the full Ada + SPARK Crazyflie 2.0 firmware
- ada-drivers-library - Ada drivers for various MCU and sensors
- embrick - 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
- solenoid-engine-controller - Software controller for solenoid engines (Ada/STM32F4)
- giza - Giza is trying to be a simple widget tool kit for embedded platforms
- ada-synth-lib - Simple audio synthesis library
- geste - GESTE is a sprite and tile 2D render engine designed to run on micro-controllers
- 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-temp-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.
- fsm-edit - FSMedit is an editor for finite state machines. It is written in Ada with the graphical user's interface by alternatively Claw or GtkAda.
- svd2ada - An Ada binding generator from SVD descriptions for bare board ARM devices.
- ada-time - Ada binding for the Pebble Time smartwatch
- wiring-pi-ada - Ada bindings for wiringPi
- azip - A free, portable Zip Archive Manager
- texcad - TeXCAD is a program for drawing or retouching {picture}s in LaTeX.
- cbsg - The Corporate Bullshit Generator
- STOTP - Time based one time pad (TOTP) written in SPARK
- ironsides - Authoritative DNS server verified by SPARK/Ada
- eagle-lander - Apollo 11 lunar lander simulator (Ada/Gtk/Cairo)
- acnc - A G-code parser and CNC controller (in Ada)
- parallel-sim - Distributed Simulation of Transport Networks
- adabrowse - HTML generator for Ada95 library unit specs
- coldframe - ColdFrame generates Ada framework code and documentation from UML models
- p2ada - A Pascal to Ada translator
- tiled-code-gen - Code generator for Tiled the map editor
- cvsweb2git - This tool imports CVS repository shared on Ada Conformity Assessment Authority into the Git repository
- adacurses - Ada95 bindings for ncurses
- florist - POSIX Ada binding, IEEE Standards 1003.5(b,c)
- sdlada - Ada 2012 bindings to SDL 2
- 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.
- ada-lua - Ada binding for Lua
- ada-base - Thick database bindings for MySQL, PostgreSQL and SQLite written in Ada.
- apq-base - APQ is a database interface library written in Ada95
- cuda-ada - CUDA/Ada is an Ada binding to NVIDIA’s CUDA parallel computing platform and programming model
- dbus-ada - The D_Bus/Ada library provides an Ada binding to the D-Bus message bus system.
- opus-ada - Ada 2012 bindings for the Opus audio codec.
- opengl-ada - Thick Ada binding for OpenGL and GLFW
- opencl-ada - Ada binding for the OpenCL host API
- rclada - Ada client library for ROS2/RCL
- ada-v4l2 - Ada Posix Binding to Video 4 Linux, used for RPI
- ada-nanovg - Ada bindings to NanoVG
- ada-soundio - Ada bindings for libsoundio
- win32ada - Ada API to the Windows library
- wposix - Ada Windows POSIX binding
- lalg - Interface to dense linear algebra packages
- zeromq-ada - Binding to the ZeroMQ comunications-library.