Ada/SPARK

Awesome



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

Long live Ada/SPARK.



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

Click to expand 1. [Presentation](#Presentation) 2. [Education](#Education) 1. [Tutorials](#Tutorials) 3. [Books](#Books) 3. [Community](#Community) 1. [Questions and Answers](#Questions-and-Answers) 2. [News and Resources](#News-and-Resources) 3. [Competition](#Competition) 4. [Compilers](#Compilers) 1. [Open source](#Open-source) 4. [Online](#Online) 5. [Editors](#Editors) 1. [Integrated Development Editors](#Integrated-Development-Editor) 2. [Text Modes](#Text-Modes) 6. [Deployment](#Deployment) 1. [Build and Package](#Build-and-Package) 2. [Continuous Integration](#Continuous-Integration) 7. [Runtimes](#Runtimes) 8. [OS and Kernels](#OS-and-Kernels) 9. [Games](#Games) 10. [Frameworks](#Frameworks) 1. [Components](#Components) 2. [Distributed](#Distributed) 3. [Graphical User Interface](#Graphical-User-Interface) 4. [3D](#3D) 5. [Web](#Web) 6. [Unit Test](#Unit-Test) 11. [Tools](#Tools) 1. [Verification](#Verification) 12. [Libraries](#Libraries) 1. [Math](#Math) 2. [Algorithms, Containers and Protocols](#Algorithms-Containers-and-Protocols) 3. [Patterns](#Patterns) 5. [Parsers, Scanners, Linters, Analysers, Interpreters and Prettyprinters](#Parsers-Scanners-Linters-Analysers-Interpreters-and-Prettyprinters) 6. [Format Readers and Writers](#Format-Readers-and-Writers) 7. [Network](#Network) 8. [Web](#Web) 9. [Multimedia](#Multimedia) 10. [Localization](#Localization) 11. [Utilities](#Utilities) 13. [Hardware and Embedded](#Hardware-and-Embedded) 1. [Frameworks](#Frameworks) 2. [Firmwares](#Firmwares) 3. [Drivers](#Drivers) 4. [Controllers](#Controllers) 6. [Libraries](#Libraries) 7. [Applications](#Applications) 8. [Bindings](#Bindings) 14. [Applications](#Applications) 1. [Office](#Office) 2. [Web](#Web) 3. [Multimedia](#Multimedia) 4. [Automation](#Automation) 5. [Simulation](#Simulation)

Presentation

Education

Entry Point

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

Tutorials

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 2012 - Comprehensive.
Beginning Ada Programming: From Novice to Professional - Introduction.
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.

Reference

  • iso-standard - The 2012 revision to the Ada Standard, usually known as Ada 2012.
  • adalib - Standard Ada library specification as defined in Reference Manual.

Community

Questions and Answers

News and Resources

  • adacore-blog - An insight into the AdaCore ecosystem.
  • ada-europe - Ada-Europe is 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.

Competition

Compilers

Open source

GPL (no linking exception)
  • gnat-ce - 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 (with linking exception)
  • 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.
Other / unknown licence
  • hac - Experimental Ada compiler fully in Ada.
  • byron - The Byron project is a community-driven Ada compiler, toolchain, and IDE-system.

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.
  • xgc - XGC provide GCC-based bare-metal toolchains with Ada95 support for aerospace-specific targets such as MIL1750, ERC32 and LEON. As well as a legacy M68000 toolchain.

Online

Edit

Integrated Development Editor

The GNAT Programming Studio - ada-visual - Ada language integration for Visual Studio 2017.

Editors

  • lea - 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

Text Modes

VSCode Extensions

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.
  • 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).

Continuous Integration

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 WASM and bindings for Web API

OS and Kernels

  • 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.
  • 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.
  • cxos - Ada Operating System development example.
  • havk - x86-64 security-focused OS being created with SPARK.

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.
  • 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.
  • pasta - Pasta! is a game of the "match-3" genre.
  • buttons - A simple Gtkada Button Mania game.
  • mine-detector - Mine Detector: a mine-finding game that never requires guessing.

Frameworks

Components

  • simple-components - B-trees, Chebyshev series, Cryptography, Doubly-linked webs and lists, Blackboards (lock-free), ELV/eQ-3 MAX! client, Events (plain, pulse, array of), GNUTLS bindings, Graphs (directed, weighted, acyclic, trees), HTTP implementation, FIFO (lock-free), IEEE 754, Inter-process communication, MODBUS client, MQTT client-server/broker, TCP, Mutexes, Objects, ODBC bindings, Parsers, Persistent objects, Persistent storage, Pools, Sets, Maps, SMTP client, SQLite bindings, Stacks, Streams, Strings editing, Tables (maps of strings), 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 - Gneiss is 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.

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 - 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 5 framework.
  • vtk-ada - Ada-2012 port to VTK 8.1 (Visualization Toolkit).

3D

  • globe-3d - GL Object Based Engine for 3D.
  • orka - The OpenGL 4.6 Rendering Kernel in Ada 2012.
  • 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.

Web

  • 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.
    • 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 - Ada Wiki is a small library that provides a Wiki engine.
    • ada-security - OAuth 2.0 client and server framework to secure web applications.
    • ada-el - This library provides the support for a simple Expression Language close to the Java Unified Expression Language (EL).
    • 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 - Ada Servlet allows to create web applications using the same pattern as the Java Servlet (See JSR 154, JSR 315).
  • 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.
  • 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.

Unit Test, Testing

  • 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.
  • gnatbdd - Behavior Driven Development in Ada.
  • scripted-testing - Supports functional testing using Tcl scripts.

Logging

  • alog - Alog is a stackable logging framework for Ada.

Machine Learning

  • fuzzyml - Fuzzy machine learning framework.

Tools

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 - 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.

UML

  • ada-ml - Ada-tailored UML Modeling Language.
  • coldframe - ColdFrame generates Ada framework code and documentation from UML models.

Libraries

Math

  • math-packages - Collection of basic math routines in Ada.
  • mathpaqs - Mathpaqs is a collection of mathematical, 100% portable, packages in the Ada programming language.
  • polynomials - This package allows formal manipulation of polynomials of several variables.
  • 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.
  • mandelbrot-ascii - Mandelbrot renderer in "ASCII" (unicode actually, but text nonetheless).

Algorithms, Containers and Protocols

  • 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.
  • libadacrypt - 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.
  • 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.
  • sip-hash - A pure Ada implementation of the SipHash PRF.
  • ada-lsp - Language Server Protocol for Ada.
  • ada-lsp-client - Prototype implementation of LSP client - Visual Studio 2017.
  • 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.
  • lib-anne - Large collection of Ada packages. This is sort of meant to be a "new standard library". Who's Anne? Ada's daughter.
  • 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.
  • hungarian-algorithm - Hungarian Algorithm implementation in Ada.
  • hungarian - Ada wrapper for the fast Stachniss' Hungarian solver.
  • stotp - Timed One-Time-Pad (RFC 6238) implementation in SPARK.
  • sal - SAL (Stephe's Ada Library).
  • nb-ada - NBAda : An Ada library of lock-free data structures and algorithms.
  • xxhash-ada - Extremely fast non-cryptographic Hash algorithm, xxhash is working at speeds close to RAM limits.
  • base58-ada - Base58 encoding and decoding in Ada.
  • paraffin - A suite of Ada 2012 generics to facilitate iterative and recursive parallelism for multicore systems.
  • deepend - Deepend is a storage pool with subpool capabilities for Ada 2012, Ada 2005, and Ada 95.
  • charles - Charles is an Ada 95 container library, precursor to Ada 2005+ standard containers.
  • simple-blockchain - Simple blockchain in Ada.
  • fletcher - Trivial implementation of fletcher_16 checksum computation algorithm.
  • adagio - Gnutella2 (G2) network server leaf.
  • agpl - Ada General Purpose Library (Miscellaneous utilities, with a robotic flavor).
  • increment - This package provides incremental analysis algorithms and related data structures.

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.

Parsers, Scanners, Linters, Analysers, Interpreters and Prettyprinters

  • 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.
  • wisitoken - WisiToken is 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.
  • 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.
  • aforth - Embeddable Forth interpreter written in Ada.
  • ada-toml - TOML parser for Ada.
  • parser-tools - Tools for writing lexers / parsers in Ada.
  • xia - An Ada implementation of XPath 1.0.

Format Readers and Writers

  • 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.
  • 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.
  • 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.

Network

  • anet - Anet is a networking library for the Ada programming language.
  • adhcp - ADHCP is an implementation of the DHCP protocol in Ada.

Web

Multimedia

  • 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.
  • ada-synth-lib - Simple audio synthesis library.
  • scala - Scala is 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.

Localization

  • translator - An Ada package to write language independent messages.
  • zany-blue - An Ada package allowing the externalization of application messages into a properties file.

Utilities

  • 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.
  • 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 MacOSX, Linux and Windows.
  • macos-sdks-vs-gcc - Provides GCC 'specs' files to cope with SDK policy changes.

Hardware and Embedded

Frameworks

Firmwares

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

Drivers

  • 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.
  • 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

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.

Libraries

  • 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.
  • sancta - SANCTA multi-robot task allocation library.

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-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.
  • etherscope - Ethernet traffic monitor on a STM32F746 board.

Bindings

  • 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.

Applications

Office

  • 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.
  • 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

  • eagle-lander - Apollo 11 lunar lander simulator (Ada/Gtk/Cairo).
  • ada-3ds - A simple 3DS Max model renderer.

Automation

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

Simulation

  • parallel-sim - Distributed Simulation of Transport Networks.

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.
  • cvsweb2git - This tool imports CVS repository shared on Ada Conformity Assessment Authority into the Git repository.
  • j2ada - Translator for a Java valid source code in Ada source code.
  • a2js - Ada2JS is experimental open source compiler, component of Matreshka.
  • adamagic - 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.

Shells, Interpreters and Emulators

  • sparforte - 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 - GSH is non interactive POSIX shell for Windows, aimed at GNU software builds. 2-3 times faster than Cygwin.
  • gnatcoll-scripts-shell - GNATCOLL.Scripts.Shell is a simple embeddable scripting language, part of GNATCOLL Core.
  • analytical-engine - An Ada 2012 emulation of Charles Babbage’s Analytical Engine.

Programming Languages

  • gnat-spitbol - GNAT.SPITBOL is an implementation of SNOBOL text-oriented programming language, now part of GNAT library.
  • 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.

Bindings

  • libsodium-ada - libsodium-ada is a set of thick Ada bindings to libsodium.
  • curses - Advanced UNIX Terminal UI Ada Binding Package.
  • 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.
  • ada-net-framework-core - Ada bindings for the Microsft NetFramework Api.
  • ada-net-framework - Ada bindings for the Microsft NetFramework Api (Wrapper over NetFrameworkCore).
  • ada-winrt - Ada bindings for the Microsft WinRT Api.
  • ada-win32 - Ada bindings for the Microsoft Win32 Api.
  • adasockets - IPv4 socket library (TCP, UDP, and multicast).
  • areadline - Ada interface to the readline library.
  • oto - Ada binding to OpenAL which tries to mimic original API while using Ada types.
  • tp7-ada-gtkada - Implementation of Turbo Pascal 7.0 units with GTKAda.
  • tp7-ada-gnoga - Implementation of Turbo Pascal 7.0 units with Gnoga.
  • ada-lzma - Ada binding for liblzma compression library.
  • ada-libsecret - Ada Binding for the libsecret library.
  • ada-bfd - Ada BFD is an Ada binding for the GNU Binutils BFD library. It allows to read binary ELF, COFF files by using the GNU BFD.
  • boehmgc-ada - Ada binding to the Boehm-Demers-Weiser conservative garbage collector.
  • player-ada - Ada bindings for the player robotic platform.
  • dl-ada - Minimal binding to libdl.
  • ada-nanovg - Ada bindings to NanoVG.
  • free-type-ada - FreeType binding for Ada 2005.
  • opencl-ada - An Ada binding for the OpenCL host API.
  • coreland-lua-ada - Ada bindings to the Lua language.
  • libsodium-ada - A secure cryptographic library (libsodium for Ada).
  • adagl - Multiplatform Ada/OpenGL bindings (ported to native/OpenGL, A2JS/WebGL and WASM/WebGL)

License

CC0