---
visibility: public
---

# Ada/SPARK

**repo:** [ohenley/awesome-ada](https://github.com/ohenley/awesome-ada)  
**category:** [[programming-languages|Programming Languages]]
**related:** [[security|Security]]

---

# Awesome Ada [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

<br/><br/>
<div align="center">
	<img width="260px"  src="https://github.com/ohenley/files/blob/master/awesome-ada/logo_ada_awesome.svg" alt="Awesome"/>
</div>

<br/><br/>

> <font size="7">[Ada is powering satellites, aircrafts, ships, power plants, surgical robots](https://www2.seas.gwu.edu/~mfeldman/ada-project-summary.html), drones, CNCs, servers, games and coffee makers.</font>
> Ada is arguably the most { <b>performant</b> &cap; <b>capable</b> &cap; <b>precise</b> &cap; <b>readable</b> &cap; <b>mature</b> } programming language.
> Ada is alive and kicking!
>
> Long live Ada/SPARK.

<br/><br/>

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

## Contents
<details>
<summary>Click to expand</summary>

1. [Presentation](#presentation)
2. [Education](#education)
	1. [Entry Point](#entry-point)
	2. [Tutorials](#tutorials)
	3. [Online Books](#online-books)
	4. [Books](#books)
	5. [Specialties](#specialties)
	6. [Reference](#reference)
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)
	2. [Commercial / Open source](#commercial--open-source)
	3. [Commercial / Closed source](#commercial--closed-source)
	4. [Online](#online)
5. [Edit](#edit)
	1. [Integrated Development Editors](#integrated-development-editors)
	2. [Editors](#editors)
	3. [Text Modes](#text-modes)
	4. [VSCode Extensions](#vscode-extensions)
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. [Terminal User Interface](#terminal-user-interface)
	5. [3D](#3d)
	6. [Database](#database)
	7. [Web](#web)
	8. [Unit Test, Testing](#unit-test-testing)
	9. [Logging](#logging)
	10. [Machine Learning](#machine-learning)
	11. [Automation](#automation)
11. [Tools](#tools)
	1. [DevOps](#devops)
	2. [Verification](#verification)
	3. [Generation](#generation)
	4. [UML](#uml)
	5. [Encryption](#encryption)
12. [Libraries](#libraries)
	1. [Math](#math)
	2. [Science](#science)
	3. [Algorithms, Containers and Protocols](#algorithms-containers-and-protocols)
	4. [Cryptography](#cryptography)
	5. [Compression](#compression)
	6. [Patterns](#patterns)
	7. [System Modeling](#system-modeling)
	8. [Parsers, Scanners, Linters, Analysers, Interpreters and Prettyprinters](#parsers-scanners-linters-analysers-interpreters-and-prettyprinters)
	9. [Format Readers, Writers and Checkers](#format-readers-writers-and-checkers)
	10. [Networking and Communication Middleware](#networking-and-communication-middleware)
	11. [Chatting and Communication](#chatting-and-communication)
	12. [Web](#web-1)
	13. [Graphics and Multimedia](#graphics-and-multimedia)
	14. [General Purpose Computing](#general-purpose-computing)
	15. [Sound](#sound)
	16. [Localization](#localization)
	17. [Utilities](#utilities)
	18. [Robotics](#robotics)
	19. [Linux and POSIX](#linux-and-posix)
	20. [Windows and .NET](#windows-and-net)
    21. [Bindings to Other Languages](#bindings-to-other-languages)
13. [Hardware and Embedded](#hardware-and-embedded)
	1. [Frameworks](#frameworks-1)
	2. [Firmwares](#firmwares)
	3. [Drivers](#drivers)
	4. [Controllers](#controllers)
	5. [Communication](#communication)
	6. [Libraries](#libraries-1)
	7. [Applications](#applications)
	8. [Generators](#generators)
14. [Applications](#applications-1)
	1. [Office](#office)
	2. [Mail](#mail)
	3. [Web](#web-2)
	4. [Multimedia](#multimedia)
	5. [Automation](#automation-1)
	6. [Simulation](#simulation)
	7. [Generators and Translators](#generators-and-translators)
	8. [Shells, Interpreters and Emulators](#shells-interpreters-and-emulators)
	9. [Programming Languages](#programming-languages)
	10. [Misc](#misc)

</details>

## Presentation

<div align="center">

<a href="https://www.youtube.com/embed/yUqJkAZofZs">
<img border="0" src="https://img.youtube.com/vi/yUqJkAZofZs/1.jpg" style="max-width:100%;"/>
</a>

<a href="https://www.youtube.com/embed/3e-BGblAMC4">
<img border="0" src="https://img.youtube.com/vi/3e-BGblAMC4/2.jpg" style="max-width:100%;"/>
</a>

<a href="https://www.youtube.com/embed/0yXwnk8Cr0c">
<img border="0" src="https://img.youtube.com/vi/0yXwnk8Cr0c/3.jpg" style="max-width:100%;"/>
</a>

</div>

## Education

### Entry Point
- [learn](https://learn.adacore.com/) - Interactive [learning](/@harrisonqian/awesome/wiki/programming-languages/learning) platform designed to teach the Ada and SPARK programming languages.
- [ada-lang-io](https://ada-lang.io) - A community site for Ada.
- [celebrating-ada](https://www.celebratingada.com/) - Ada history key moments.
- [ada-logo-editor](https://ada-lang-io.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/ada-logo-editor/) - The “Ada horizon” logo maker website.

### Tutorials
- [adacore-video-tutorials](https://www.youtube.com/playlist?list=PLkoa8uxigENkneyEEeDWVPgpMhPc9IJ7o) - AdaCore University Video [Tutorials](/@harrisonqian/awesome/wiki/computer-science/tutorials).
- [ada-crash-course](http://www.pchapin.org/Ada/AdaCrash.pdf) - Ada 2012 crash course under 50 pages from Vermont Technical College.
- [simple-games](https://drive.google.com/file/d/1hdLc9nZzTnBDcN9qJeDlJm1F9IL91Lvi/view) - [Learning](/@harrisonqian/awesome/wiki/programming-languages/learning) Ada 2012 by writing simple games.
- [spark-by-example](https://github.com/tofgarion/spark-by-example) - Collection of verified functions and data types in SPARK.

### Online Books
- [ada-wikibook](https://en.wikibooks.org/wiki/Ada_Programming) - Ada Programming book at Wikibooks.
- [ada-distilled](https://www.adaic.org/wp-content/uploads/2010/05/Ada-Distilled-24-January-2011-Ada-2005-Version.pdf) - Ada Distilled for Ada 2005.
- [ada-craft](https://www.adaic.org/resources/add_content/docs/craft/html/contents.htm) - Ada 95: The Craft of Object-Oriented Programming.
- [ada-cpp-java](https://learn.adacore.com/courses/Ada_For_The_CPP_Java_Developer/index.html) - Ada for the C++ or [Java](/@harrisonqian/awesome/wiki/programming-languages/java) Developer.
- [spark-guidance](https://www.adacore.com/books/implementation-guidance-spark) - Implementation Guidance for the Adoption of SPARK.
- [ada-safe-secure](https://www.adacore.com/uploads/books/SafeSecureAdav2015-covered.pdf) - Safe and Secure Software. An invitation to Ada 2012.
- [ada-95-tutorial](https://perso.telecom-paristech.fr/pautet/Ada95/a95list.htm) - A book going from beginner to advanced concepts in Ada 95, complete with source files.

### Books
<img height="50px" width="36px" hspace="10px" src="https://assets.cambridge.org/97810095/64779/cover/9781009564779.jpg">[Programming in Ada 2022](https://www.cambridge.org/core/books/programming-in-ada-2022/144FA52E3F0C1F260CBF9DECD10A68C9) - Comprehensive.  
<img height="50px" width="36px" hspace="10px" src="https://assets.cambridge.org/97810091/81341/cover/9781009181341.jpg">[Programming in Ada 2012 with a Preview of Ada 2022 (2nd ed.)](https://www.cambridge.org/core/books/programming-in-ada-2012-with-a-preview-of-ada-2022/AD30275F35CCECB97EAB80ABC32B019C#) - Comprehensive.  
<img height="50px" width="36px" hspace="10px" src="https://assets.cambridge.org/97811074/24814/cover/9781107424814.jpg">[Programming in Ada 2012](https://www.cambridge.org/core/books/programming-in-ada-2012/55B998B4E908A017E4D74A87364FF224#) - Comprehensive.  
<img height="50px" width="36px" hspace="10px" src="https://images-na.ssl-images-amazon.com/images/I/41v2Gsi5zWL._SX348_BO1,204,203,200_.jpg">[Beginning Ada Programming: From Novice to Professional](https://www.amazon.com/Beginning-Ada-Programming-Novice-Professional/dp/1484254279) - Introduction.  
<img height="50px" width="36px" hspace="10px" src="https://images-na.ssl-images-amazon.com/images/I/41SQC2F542L._SX347_BO1,204,203,200_.jpg">[Ada 95: The Craft of Object-Oriented Programming](https://www.amazon.com/Ada-95-Craft-Object-Oriented-Programming/dp/0132303507) - General, intermediate.  
<img height="50px" width="36px" hspace="10px" src="https://images-na.ssl-images-amazon.com/images/I/51CLo5yzNsL._SX422_BO1,204,203,200_.jpg"> [Ada Plus Data Structures: An Object Oriented Approach](https://www.amazon.com/Ada-Plus-Data-Structures-Oriented/dp/0763737941) - Data Structures.  
<img height="50px" width="36px" hspace="10px" src="https://media.springernature.com/w306/springer-static/cover-hires/book/978-1-84882-314-3"> [Ada for Software Engineers](https://link.springer.com/book/10.1007/978-1-84882-314-3) - Idioms, Architecture.  
<img height="50px" width="36px" hspace="10px" src="https://assets.cambridge.org/97805218/66972/cover/9780521866972.jpg">[Concurrent and Real-Time Programming in Ada](https://www.cambridge.org/core/books/concurrent-and-realtime-programming-in-ada/9DA4389E52005382D4CC1FC5D812DA71) - Concurrency, Containers, Scheduling.  
<img height="50px" width="36px" hspace="10px" src="https://media.springernature.com/w306/springer-static/cover-hires/book/978-1-4612-1854-8">[Data Structures and Algorithms: An Object-Oriented Approach Using Ada 95](https://link.springer.com/book/10.1007/978-1-4612-1854-8) - Data structures, Algorithms.  
<img height="50px" width="36px" hspace="10px" src="https://assets.cambridge.org/97805211/97168/cover/9780521197168.jpg">[Building Parallel, Embedded, and Real-Time Applications with Ada](https://www.cambridge.org/core/books/building-parallel-embedded-and-real-time-applications-with-ada/9FC78A90F1B6A2228D69E32CE610A66C) - Concurrency, Distributed.  
<img height="50px" width="36px" hspace="10px" src="https://images-na.ssl-images-amazon.com/images/I/41HIwJp0ktL._SX336_BO1,204,203,200_.jpg">[Analysable Real-Time Systems: Programmed in Ada](https://www.amazon.com/Analysable-Real-Time-Systems-Programmed-Ada/dp/1530265509/ref=sr_1_2?ie=UTF8&qid=1544540272&sr=8-2&keywords=ada+programming+language) - Scheduling.  
<img height="50px" width="36px" hspace="10px" src="https://assets.cambridge.org/97811076/56840/cover/9781107656840.jpg">[Building High Integrity Applications with SPARK](https://www.cambridge.org/core/books/building-high-integrity-applications-with-spark/F213D9867D2E271F5FF3EDA765D48E95) - Formal verification.  
<img height="50px" width="36px" hspace="10px" src="https://assets.lulu.com/cover_thumbs/1/e/1erpwvkr-front-shortedge-384.jpg">[Ada and SPARK on ARM Cortex-M](https://www.lulu.com/shop/maciej-sobczak/ada-and-spark-on-arm-cortex-m/paperback/product-22614818.html) - Embedded.  

### Specialties
- [gems](https://ada-lang.io/docs/learn/lang/gems) - Ada Gem Archive.
- [ada-composition](https://github.com/gerr135/ada_composition) - A collections of small nifty demos/sample code that may help better layout data or structure project.
- [ada-ic-learning](https://www.adaic.org/learn/materials/) - For additional [learning](/@harrisonqian/awesome/wiki/programming-languages/learning) resources, see the AdaIC [learning](/@harrisonqian/awesome/wiki/programming-languages/learning) section.
- [ada-at-rosetta-code](https://rosettacode.org/wiki/Category:Ada) - A collection of programming tasks and their sample solutions in Ada.

### Reference
- [iso-standard](http://www.ada-auth.org/standards/ada22.html) - The 2022 revision to the Ada Standard, usually known as Ada 2022.
- [adalib](https://github.com/reznikmm/adalib) - Standard Ada library specification as defined in Reference Manual.
- [Ada 2022 Reference Card](https://github.com/bracke/AdaReferenceCard/releases) - Reference Card / Cheatsheet of Ada Attributes, Aspects, Pragmas and Standard Library.

## Community

### Questions and Answers
- [ada-forum](https://forum.ada-lang.io/) - Ada Forum at ada-lang.io.
- [gitter-ada](https://gitter.im/ada-lang/Lobby) - Ada channel at Gitter.
- [comp-lang-ada](https://usenet.ada-lang.io/comp.lang.ada/) - Ada Usenet newsgroup/forum.
- [stack-overflow-ada-tag](https://stackoverflow.com/questions/tagged/ada) - Ada at Stack Overflow.
- [subreddit-ada](https://www.reddit.com/r/ada/) - Ada at Reddit.
- [subreddit-spark](https://www.reddit.com/r/spark/) - Spark at Reddit.
- [telegram-ada](https://t.me/ada_lang) - Ada group at Telegram.
- [libera-chat-ada](https://libera.chat/) - Ada channel at IRC.
- [matrix-ada](https://matrix.to/#/#ada-lang_Lobby:gitter.im) - Ada room at Gitter via Matrix.
- [hacker-news-ada](https://hn.algolia.com/?query=ada&sort=byDate) - Ada at Hacker News.
- [discord-ada](https://discord.gg/pdybNXMBsP) - Ada Discord server.

### News and Resources
- [adacore-blog](https://blog.adacore.com/) - An insight into the AdaCore ecosystem.
- [ada-europe](http://www.ada-europe.org/) - An international organization, set up to promote the use of Ada.
- [acm-sig-ada](https://www.sigada.org/) - The Special Interest Group on Ada.
- [ada-resource-association](https://www.adaic.org/community/) - 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](https://www.adaic.org/) - News and resources for the Ada programming language.
- [ada-planet](https://ada-planet.blogspot.com/) - News Aggregator from the Ada programming language world (v3) ([Ada-Planet v2 feed via Matrix][ada-planet-via-matrix]).
- [adasearch](https://mgrojo.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/adasearch/) - Custom search engines for finding anything related to the Ada and SPARK programming languages, without interference from other homonymous topics.

[ada-planet-via-matrix]: https://matrix.to/#/#ada-lang:matrix.org

### Competition

- [crate-of-the-year](https://github.com/AdaCore/Ada-SPARK-Crate-Of-The-Year) - Yearly prize for the best Alire crate in three categories: general, SPARK and embedded.

## Compilers

### Open source

#### GPL (with linking exception)

- [fsf-gnat](https://github.com/alire-project/GNAT-FSF-builds/releases) - [Free Software](/@harrisonqian/awesome/wiki/miscellaneous/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.

#### MIT

- [hac](https://github.com/zertovitch/hac) - The HAC Ada Compiler - a small, quick Ada compiler fully in Ada.
- [byron](https://github.com/OneWingedShark/Byron) - A community project to build an Ada compiler, toolchain, and IDE-system.

#### Apache License

- [augusta](https://github.com/pchapin/augusta) - Ada compiler written in [Scala](/@harrisonqian/awesome/wiki/programming-languages/scala) that targets LLVM.

### Commercial / Open source

- [gnat-pro](https://www.adacore.com/gnatpro) - 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](http://www.rrsoftware.com/html/prodinf/janus95/j-ada95.htm) - Compiler supporting all the major features of the Ada 83, Ada 95, Ada 2005 and Ada 2012 versions of the language.
- [object-ada](https://www.ptc.com/en/products/developer-tools/objectada) - PTC ObjectAda is an extensive family of native and cross development tools and runtime environments.
- [apex-ada](https://www.ptc.com/en/products/developer-tools/apexada) - PTC ApexAda is one of the industry's most popular development environments for Ada and mixed Ada/C/C++ applications.
- [greenhills-ada](https://www.ghs.com/products/ada_optimizing_compilers.html) - Green Hills Software offers the industry's first, fully validated family of Ada Cross Compilers for real-time targets.

### Online
- [tutorials-point-ada-compiler](https://www.tutorialspoint.com/compile_ada_online.php) - Online compiler built on the CodingGround engine.
- [jdoodle-ada-compiler](https://www.jdoodle.com/execute-ada-online) - Online compiler that provides multiple versions of GNAT to test with.
- [compiler-explorer](https://godbolt.org/) - Run GNAT FSF compilers interactively from your web browser and interact with the assembly.

#### GPL (no linking exception)

- [gnat-ce (discontinued)](https://github.com/AdaCore/gnat-community-archives) - GNAT Community edition. A release of AdaCore GNAT for [free software](/@harrisonqian/awesome/wiki/miscellaneous/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.

## Edit

### Integrated Development Editors
<img width="120px" hspace="10px" src="https://docs.adacore.com/live/wave/gps/html/gps_ug/_images/gps-main-window.png"/> [The GNAT Programming Studio](https://github.com/AdaCore/gps)
- [ada-visual](https://marketplace.visualstudio.com/items?itemName=AlexGamper.VisualAda) - Ada language [integration](/@harrisonqian/awesome/wiki/platforms/integration) for Visual Studio 2017.

### Editors
- [lea](https://github.com/zertovitch/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](/@harrisonqian/awesome/wiki/editors/emacs)-ada-mode](https://www.nongnu.org/ada-mode/) - Gnu [Emacs](/@harrisonqian/awesome/wiki/editors/emacs) major-mode for editing Ada sources.
- [vim-ada-bundle](https://github.com/thindil/Ada-Bundle) - Maintained Ada Bundle : Complete Ada-Mode for Vim/[Neovim](/@harrisonqian/awesome/wiki/editors/neovim).
- [ada-tmbundle](https://github.com/textmate/ada.tmbundle) - TextMate support for Ada.
- [bbedit-ada-module](https://www.barebones.com/support/bbedit/plugin_library.html) - BBEdit support for Ada.
- [ob-ada-spark](https://github.com/rocher/ob-ada-spark/) - Ada/SPARK support for org-babel : Evaluate source code blocks with Gnu [Emacs](/@harrisonqian/awesome/wiki/editors/emacs) and org files.
- [doom-ada](https://github.com/tomekw/doom-ada) - Doom [Emacs](/@harrisonqian/awesome/wiki/editors/emacs) Ada language module with syntax highlighting, LSP and Alire support.

### VSCode Extensions
- [adacore-ada](https://marketplace.visualstudio.com/items?itemName=AdaCore.ada) - Language Support for Ada. It includes [Language Server for Ada][ada-language-server].
- [ada-vscode](https://github.com/Lucretia/ada-vscode) - Basic syntax highlighting for Ada and GPR.
- [ada-utilities](https://github.com/Lucretia/ada-utilities) - VSCode extension Ada programmers which provides a few utility functions.

## Deployment

### Build and Package
- [alire](https://github.com/alire-project/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](/@harrisonqian/awesome/wiki/programming-languages/rust)'s cargo or [OCaml](/@harrisonqian/awesome/wiki/programming-languages/ocaml)'s opam.
- [alr2appimage](https://github.com/mgrojo/alr2appimage) - A tool for automatically creating an [AppImage](/@harrisonqian/awesome/wiki/platforms/appimage) executable from an Alire crate.
- [aura](https://github.com/annexi-strayline/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](https://github.com/AdaCore/gprbuild) - Adacore multi-language software build tool.
- [ravenadm](https://github.com/jrmarino/ravenadm) - Administration tool for Ravenports http://www.ravenports.com.
- [synth](https://github.com/jrmarino/synth) - Next D/Ports build tool for live systems (Alternative for Portmaster and Portupgrade tools).
- [ada4cmake](https://github.com/mosteo/ada4cmake) - [CMake](/@harrisonqian/awesome/wiki/programming-languages/cmake) macros for simple gnat project inclusion.
- [cmake-ada-offa](https://github.com/offa/cmake-ada) - Ada language support for [CMake](/@harrisonqian/awesome/wiki/programming-languages/cmake).
- [cmake-ada-cho3](https://github.com/cho3/cmake-ada) - [CMake](/@harrisonqian/awesome/wiki/programming-languages/cmake) language support for Ada, fork of [plplot]'s [cross-platform](/@harrisonqian/awesome/wiki/platforms/cross-platform) support code.
- [tada](https://github.com/tomekw/tada) - An opinionated package management tool for Ada.

### Continuous Integration
- [continuous-verification](https://github.com/jklmnn/continuous-verification) - SPARK formal verification automated with Travis CI.
- [ada-actions](https://github.com/ada-actions/toolchain) - Ada Toolchains for [GitHub](/@harrisonqian/awesome/wiki/development-environment/github) Actions.
- [porion](https://gitlab.com/stcarrez/porion) - Continuous [integration](/@harrisonqian/awesome/wiki/platforms/integration) server and agent that helps automate the building, [testing](/@harrisonqian/awesome/wiki/testing/testing) and deployment.

## Runtimes
- [bb-runtimes](https://github.com/AdaCore/bb-runtimes) - GNAT bare metal board support package (BSP).
- [avr-ada](https://sourceforge.net/projects/avr-ada) - GNAT for 8-bit AVR microcontrollers.
- [ada-runtime](https://github.com/Componolit/ada-runtime) - A downsized Ada runtime which can be adapted to different platforms.
- [cortex-gnat-rts](https://github.com/simonjwright/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](https://github.com/godunko/adawebpack) - GNAT RTL for [WebAssembly](/@harrisonqian/awesome/wiki/front-end-development/webassembly) and bindings for Web API.

[ada-runtime]: https://github.com/Componolit/ada-runtime
[adawebpack]: https://github.com/godunko/adawebpack

## OS and Kernels
- [m2os](https://m2os.unican.es/) - RTOS with simple tasking support for small microcontrollers.
- [marte-os](https://marte.unican.es/) - 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](https://muen.codelabs.ch/) - An x86/64 Separation Kernel for High Assurance.
- [ewok](https://github.com/wookey-project/ewok-kernel) - A microkernel targeting micro-controllers and embedded systems.
- [bare-bones](https://github.com/Lucretia/bare_bones) - An Ada port of the [osdev.org](https://wiki.osdev.org/Ada_Bare_Bones) minimal 32-bit x86 kernel.
- [lovelace-os](https://sourceforge.net/projects/lovelaceos/) - Lovelace is an effort to write a Unix like operating system using the Ada 2012 language.
- [ada-kalinda-os](https://sourceforge.net/projects/sx-ada-kalinda/) - Ada KALINDA is a sort of Mac Plus like OS written in Ada95.
- [Straylight](https://github.com/ajxs/straylight) - A simple monolithic RISC-V operating system developed in Ada.
- [havk](https://github.com/RavSS/HAVK) - x86-64 [security](/@harrisonqian/awesome/wiki/security/security)-focused OS being created with SPARK.
- [cubit](https://github.com/docandrew/CuBit) - CuBitOS is a multi-processor, 64-bit, (partially) formally-verified, general-purpose operating system, currently for the x86-64 architecture.
- [ironclad](https://ironclad-os.org/) - A kernel for several architectures striving for POSIX compatibility, used on several distributions like [Gloire](https://codeberg.org/Ironclad/Gloire).
- [hirtos](https://github.com/jgrivera67/HiRTOS) - A high-integrity RTOS written in SPARK Ada.

## Games
- [steamsky](https://github.com/thindil/steamsky) - Roguelike in sky with a steampunk setting.
- [unity-ada-tetris](https://blog.adacore.com/unity-ada) - Tetris, in Ada, for the [Unity](/@harrisonqian/awesome/wiki/gaming/unity) game engine.
- [tictactoe](https://github.com/AdaCore/tictactoe) - A tictactoe game written and proven in SPARK/Ada.
- [ada-gate](https://github.com/fastrgv/AdaGate) - AdaGate is a first-person 3D sokoban puzzle game within a Stargate / Portal [fantasy](/@harrisonqian/awesome/wiki/entertainment/fantasy) setting for [Windows](/@harrisonqian/awesome/wiki/platforms/windows), OS-X and [Linux](/@harrisonqian/awesome/wiki/platforms/linux).
- [rufas-cube](https://github.com/fastrgv/RufasCube) - RufasCube is a puzzle game for [Windows](/@harrisonqian/awesome/wiki/platforms/windows), OS-X and GNU [Linux](/@harrisonqian/awesome/wiki/platforms/linux) (it looks like a rubic cube but it's a slider, not a twister).
- [ada-venture](https://github.com/fastrgv/AdaVenture) - AdaVenture is a kid-friendly retro point&click game with mazes, dragons, bats & snakes.
- [retro-arcade](https://github.com/fastrgv/RetroArcade) - Space Invaders, Pacman, & Frogger games that run in a terminal on [Windows](/@harrisonqian/awesome/wiki/platforms/windows), OS-X & [Linux](/@harrisonqian/awesome/wiki/platforms/linux). 
- [world-cup-sokerban](https://github.com/fastrgv/WorldCupSokerban) - This is a soccer-themed, 3D sokoban puzzle game that runs on [Windows](/@harrisonqian/awesome/wiki/platforms/windows), Mac OS-X and GNU [Linux](/@harrisonqian/awesome/wiki/platforms/linux).
- [pasta](http://pasta.phyrama.com/) - A game of the "match-3" genre, implemented in [gnoga].
- [buttons](https://github.com/andreacervetti/buttons) - A simple [gtkada] Button Mania game.
- [mine-detector](https://github.com/jrcarter/Mine_Detector) - A mine-finding game that never requires guessing.
- [play-2048](https://github.com/mgrojo/play_2048) - A clone of the popular 2048 game, implemented in Ada using [asfml] for graphics and [ada-toml] for saving state.
- [bingada](https://github.com/jfuica/bingada) - Bingo application in [gtkada].
- [civ-klon](https://github.com/HonkiTonk/Civ-Klon) - Civilization-style turn-based strategy game. Requires [asfml].
- [eepers](https://github.com/tsoding/eepers) - A simple Turn-based Game in Ada (made with [raylib](https://github.com/raysan5/raylib)).
- [gade](https://github.com/ellamosi/gade) - A Game Boy emulation library in Ada.
- [gade-sdl](https://github.com/ellamosi/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](http://www.dmitry-kazakov.de/ada/components.htm) - ASN.1, [MQTT](/@harrisonqian/awesome/wiki/miscellaneous/mqtt) client and server/broker implementation, B-trees, Multiple connection TCP servers, Chebyshev series, Mutexes, [Cryptography](/@harrisonqian/awesome/wiki/computer-science/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](/@harrisonqian/awesome/wiki/miscellaneous/stacks), Interfacing [Julia](/@harrisonqian/awesome/wiki/programming-languages/julia) language, Streams, [JSON](/@harrisonqian/awesome/wiki/miscellaneous/json), Strings editing, LDAP, Tables (maps of strings), MODBUS client implementation, Unbounded arrays.
- [ada-util](https://github.com/stcarrez/ada-util/) - A logging framework close to [Java](/@harrisonqian/awesome/wiki/programming-languages/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](/@harrisonqian/awesome/wiki/platforms/windows) or Unix), HTTP client library on top of CURL or AWS.
- [gnatcoll-core](https://github.com/AdaCore/gnatcoll-core) - This is the [core](/@harrisonqian/awesome/wiki/platforms/core) module of the GNAT Components Collection.
- [gnatcoll-bindings](https://github.com/AdaCore/gnatcoll-bindings) - This is the bindings module of the GNAT Components Collection.
- [gnatcoll-db](https://github.com/AdaCore/gnatcoll-db) - This is the DB module of the GNAT Components Collection.
- [gnatcoll-json](https://github.com/persan/gnatcoll-json) - This is a set of helpers for writing [JSON](/@harrisonqian/awesome/wiki/miscellaneous/json)-intefaces it contains JSON parses for most of the Ada runtime components.
- [gneiss](https://github.com/Componolit/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](https://github.com/charlie5/lace) - A set of Ada components to allow 3D simulations, games and GUI's in Ada.
- [asap](https://github.com/annexi-strayline/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](/@harrisonqian/awesome/wiki/miscellaneous/json) parser/generator, and a formally verified (SPARK) UTF-8 stream decoder.

### Distributed
- [poly-orb](https://github.com/AdaCore/PolyORB) - PolyORB provides a uniform solution to build distributed applications relying either on middleware [standards](/@harrisonqian/awesome/wiki/miscellaneous/standards).

### Graphical User Interface
- [gnoga](https://sourceforge.net/projects/gnoga/) - The GNU Omnificent GUI for Ada.
- [gwindows](https://github.com/zertovitch/gwindows) - GNU Ada Visual Interface.
- [claw](http://www.rrsoftware.com/html/prodinf/claw/claw.htm) - A High Level, Portable, Ada 95 Binding for Microsoft [Windows](/@harrisonqian/awesome/wiki/platforms/windows).
- [gtkada](https://github.com/AdaCore/gtkada) - Ada graphical toolkit based on Gtk3 components.
- [qt-ada](https://r3fowwcolhrzycn2yzlzzw.on.drv.tw/AdaStudio/qt6ada/qt6ada.html) - Ada-2012 port to Qt 6 framework.
- [vtk-ada](https://r3fowwcolhrzycn2yzlzzw.on.drv.tw/AdaStudio/vtkada/vtkada.html) - Ada-2012 port to VTK 8.1 (Visualization Toolkit).
- [fltk-ada](http://jedbarber.id.au/fltkada.xhtml) - Ada-2012 binding to FLTK (Fast Light Toolkit).
- [ada-gui](https://github.com/jrcarter/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](https://github.com/godunko/adawebui) - GUI based on [adawebpack].
- [imgui-ada](https://github.com/Cre8or/ImGui-Ada) - Ada binding of the ImGui library.
- [anuklear](https://github.com/ada-game-framework/anuklear) - Ada binding to the Nuklear GUI library and the Nuklear-SDL renderer.

[gnoga]: https://sourceforge.net/projects/gnoga/
[gtkada]: https://github.com/AdaCore/gtkada

### Terminal User Interface

- [curses](https://github.com/annexi-strayline/Curses) - Advanced UNIX Terminal UI Ada Binding Package.
- [ncurses-ada95](https://invisible-island.net/ncurses/ncurses-Ada95.html) - Ada95 bindings for ncurses.
- [linenoise-ada](https://git.sr.ht/~nytpu/linenoise-ada) - Bindings to the Linenoise line-editing library (patched to support UTF-8).
- [areadline](https://github.com/samueltardieu/areadline) - Ada binding to the readline library.

### 3D
- [globe-3d](https://github.com/zertovitch/globe-3d) - GL Object Based Engine for 3D.
- [engine-3d](https://github.com/zertovitch/engine-3d) - A 3D engine for DOS-talgics.
- [ada-ogl](https://github.com/JulianSchutsch/AdaOGL) - Ada [OpenGL](/@harrisonqian/awesome/wiki/miscellaneous/opengl) Framework.
- [ada-doom-3](https://github.com/AdaDoom3/AdaDoom3) - Id Software's Id-tech-4-BFG in the Ada programming language.

### Database
- [ada-ado](https://github.com/stcarrez/ada-ado) - Ada [Database](/@harrisonqian/awesome/wiki/databases/database) Objects is an Ada05 library that provides object relational mapping to access a [database](/@harrisonqian/awesome/wiki/databases/database) in Ada05. The library supports [PostgreSQL](/@harrisonqian/awesome/wiki/databases/postgresql), [MySQL](/@harrisonqian/awesome/wiki/databases/mysql), SQLite as databases. Most of the concepts developped for ADO come from the [Java](/@harrisonqian/awesome/wiki/programming-languages/java) Hibernate ORM.
- [ada-base](https://github.com/jrmarino/AdaBase) - Thick [database](/@harrisonqian/awesome/wiki/databases/database) bindings to [MySQL](/@harrisonqian/awesome/wiki/databases/mysql), [PostgreSQL](/@harrisonqian/awesome/wiki/databases/postgresql) and SQLite for Ada.
- [apq-base](https://github.com/ada-apq/apq/) - APQ is a [database](/@harrisonqian/awesome/wiki/databases/database) interface library written in Ada95.

### Web

- [aws](https://github.com/AdaCore/aws) - Ada Web Server is a complete framework to develop Web based applications in Ada.

- [awa](https://github.com/stcarrez/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](https://github.com/stcarrez/dynamo) - Code generator used to generate an Ada Web Application or [database](/@harrisonqian/awesome/wiki/databases/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](/@harrisonqian/awesome/wiki/programming-languages/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](/@harrisonqian/awesome/wiki/programming-languages/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](/@harrisonqian/awesome/wiki/programming-languages/java) Servlet (See JSR 154, JSR 315).
- [swagger-ada](https://github.com/stcarrez/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](https://github.com/simonjwright/ews) - Embedded Web Server is a web server construction kit, designed for embedded applications using the GNAT Ada compiler.
- [matreshka](https://github.com/godunko/matreshka) - Framework to develop information systems consisting of five major components: League, XML processor, Web framework, SQL access, and the Modeling framework.

[matreshka]: https://github.com/godunko/matreshka

### Unit Test, Testing
- [ahven](http://ahven.stronglytyped.org/) - A simple unit test library and framework for the Ada programming.
language.  It is loosely modelled after JUnit and some ideas from AUnit.
- [aunit](https://github.com/AdaCore/aunit) - Ada unit [testing](/@harrisonqian/awesome/wiki/testing/testing) framework.
- [bbt](https://github.com/LionelDraghi/bbt) - Simple tool to black box check the behavior of an executable through the command line.
- [gnatbdd](https://github.com/briot/gnatbdd) - Behavior Driven Development in Ada.
- [scripted-testing](https://github.com/simonjwright/scripted_testing) - Supports functional [testing](/@harrisonqian/awesome/wiki/testing/testing) using Tcl scripts.
- [testy](https://github.com/tomekw/testy) - Ada [testing](/@harrisonqian/awesome/wiki/testing/testing) framework, part of [Tada](https://github.com/tomekw/tada).

### Logging
- [alog](https://www.codelabs.ch/alog/) - Stackable logging framework for Ada.
- [elogs](https://github.com/kevlar700/elogs) - Logging framework for embedded systems absent of runtime errors.

### Machine Learning
- [fuzzyml](https://sourceforge.net/projects/fuzzyml/) - Fuzzy [machine learning](/@harrisonqian/awesome/wiki/computer-science/machine-learning) framework.

### Automation
- [aicwl](http://www.dmitry-kazakov.de/ada/aicwl.htm) - Collection of packages provided for design of high-quality industrial control widgets for Ada applications.
- [ada-for-automation](https://gitlab.com/ada-for-automation/ada-for-automation) - A4A is a framework for designing industrial automation applications using the Ada language.

[aicwl]: http://www.dmitry-kazakov.de/ada/aicwl.htm

## Tools

### DevOps
- [septum](https://github.com/pyjarrett/septum) - An interactive context-based text search tool for searching large codebases.
- [powerjoular](https://github.com/joular/powerjoular) - This tool allows monitoring power consumption of multiple platforms and processes.
- [mat](https://github.com/stcarrez/mat) - Simple memory analysis tool intended to help understand where the memory is used in a program.

### Verification
- [gnat-coverage](https://github.com/AdaCore/gnatcoverage) - GNATcoverage is a tool to analyze and report program coverage.
- [adacontrol](https://www.adalog.fr/en/adacontrol.html) - Ada constructs lint tool.
- [spark-2014](https://github.com/AdaCore/spark2014/) - SPARK formal verification toolset.
- [acats](https://github.com/simonjwright/ACATS) - The Ada Conformity Assessment Test Suite, customised for GCC.
- [acats-grading](https://github.com/simonjwright/ACATS-grading) - Tools for grading ACATS results, modified for Unix-like systems.

### Generation
- [asn1scc](https://github.com/ttsiodras/asn1scc) - An open source ASN.1 generator to Ada type declarations and encoders/decoders.
- [ocarina](https://github.com/OpenAADL/ocarina) - AADL model processor: mappings to Ada code; Petri Nets; scheduling tools (MAST, Cheddar); WCET; REAL.
- [fmt](http://www.inspirel.com/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](https://github.com/Blady-Com/Automate) - Finite-state machine generator.
- [ajunitgen](https://github.com/mosteo/ajunitgen) - Generator of JUnit-compatible XML reports in Ada.
- [record-flux](https://github.com/Componolit/RecordFlux) - RecordFlux: Toolset for the formal specification of messages and the generation of verifiable binary parsers and message generators in SPARK.
- [resource-embedder](https://gitlab.com/stcarrez/resource-embedder) - Advanced Resource Embedder to embed files in binaries by producing C, Ada or Go source files.

### UML
- [ada-ml](https://github.com/rocher/AdaML) - Ada-tailored UML Modeling Language.
- [coldframe](https://github.com/simonjwright/coldframe) - This tool generates Ada framework code and documentation from UML models.
- [umbrello](https://apps.kde.org/es/umbrello/) - Unified Modelling Language (UML) diagram program based on KDE Technology. Outputs Ada.

### Encryption
- [ada-keystore](https://github.com/stcarrez/ada-keystore) - Ada Keystore - protect your sensitive data with secure storage.

## Libraries

### Math
- [math-packages](https://github.com/jscparker/math_packages) - Collection of basic [math](/@harrisonqian/awesome/wiki/theory/math) routines in Ada.
- [mathpaqs](https://github.com/zertovitch/mathpaqs) - Collection of mathematical, 100% portable, packages in the Ada programming language.
- [mandelbrot-ascii](https://github.com/mosteo/mandelbrot_ascii) - Mandelbrot renderer in "ASCII" (unicode actually, but text nonetheless).
- [lalg](https://github.com/jhumphry/LALG) - Interface to dense linear algebra packages.
- [geo-energy-math](https://github.com/pukpr/GeoEnergyMath) - Software libraries for solving models described in Mathematical GeoEnergy (Wiley, 2018).
- [matrix-root](https://gitlab.com/mockturtle/matrix-root) - Compute the N-th root of a matrix.
- [hungarian](https://github.com/mosteo/hungarian) - Ada binding to the fast Stachniss' Hungarian solver.

### Science
- [si](http://archive.adaic.com/tools/CKWG/Dimension/SI.html) - Checked and unchecked SI units.
- [units-of-measurement](http://www.dmitry-kazakov.de/ada/units.htm) - Library to manage units of measurement with dimension checking.
- [si_units](https://github.com/HeisenbugLtd/si_units) - Utility library to pretty print physical values in proper metric units.
 
### Algorithms, Containers and Protocols
- [ada-language-server](https://github.com/AdaCore/ada_language_server) - Adacore server implemention of the the Microsoft Language Protocol for Ada and SPARK.
- [ada-lsp](https://github.com/reznikmm/ada-lsp) - Language Server Protocol for Ada.
- [ada-lsp-client](https://github.com/Alex-Gamper/Ada-LanguageServer) - Prototype implementation of LSP client - Visual Studio 2017.
- [ada-traits-containers](https://github.com/AdaCore/ada-traits-containers) - Generic Ada Library for [Algorithms](/@harrisonqian/awesome/wiki/theory/algorithms) and [Containers](/@harrisonqian/awesome/wiki/platforms/containers).
- [dequesterity](https://sourceforge.net/projects/dequesterity/) - Deque/buffer generics that consist of building blocks that may be combined in various ways to create higher abstraction buffers.
- [pragmarc](https://github.com/jrcarter/PragmARC) - PragmAda Reusable Components (PragmARCs) from PragmAda S/W Engineering.
- [booch95](https://sourceforge.net/projects/booch95/) - The Ada 95 Booch components are a port of Grady Booch's C++ components.
- [ada-id](https://github.com/anthony-arnold/AdaID) - Simple Ada library for generating UUIDs.
- [ada-ga](https://github.com/frett27/Ada-GA) - Genetic Algorithm Implementation for Ada.
- [ada-sodoku](https://github.com/frett27/Ada-Sodoku) - Small Library for Sodoku grid solving / finding.
- [sl3p](https://github.com/jklmnn/sl3p) - Simple Layer 3 Protocol.
- [smart-pointers](https://github.com/alire-project/smart_pointers) - A package providing a reference-counted access type Smart_Pointer.
- [hungarian-algorithm](https://github.com/fastrgv/HungarianAlgorithm) - Hungarian Algorithm implementation in Ada.
- [nb-ada](https://github.com/andgi/NBAda) - NBAda : An Ada library of lock-free data structures and [algorithms](/@harrisonqian/awesome/wiki/theory/algorithms).
- [paraffin](https://sourceforge.net/projects/paraffin/) - A suite of Ada 2012 generics to facilitate iterative and recursive parallelism for multicore systems.
- [deepend](https://sourceforge.net/projects/deepend/) - Storage pool with subpool capabilities for Ada 2012, Ada 2005, and Ada 95.
- [charles](https://web.archive.org/web/20161207211935/https://home.earthlink.net/~matthewjheaney/charles/) - Ada 95 container library, precursor to Ada 2005+ standard [containers](/@harrisonqian/awesome/wiki/platforms/containers).

- [simple-blockchain](https://github.com/tomekw/simple_blockchain) - Simple blockchain in Ada.

- [adagio](https://github.com/mosteo/adagio) - Gnutella2 (G2) network server leaf.
- [agpl](https://github.com/mosteo/agpl) - Ada General Purpose Library (Miscellaneous utilities, with a robotic flavor).
- [az3](https://github.com/Componolit/AZ3) - Ada binding for Z3.
- [chests](https://github.com/JeremyGrosser/chests) - Bounded [containers](/@harrisonqian/awesome/wiki/platforms/containers) for embedded systems.

[ada-language-server]: https://github.com/AdaCore/ada_language_server

### Cryptography
- [threefish](https://github.com/jrcarter/Threefish) - Ada Implementation of the Threefish-256 Encryption Algorithm.
- [fletcher](https://github.com/darkestkhan/fletcher) - Trivial implementation of fletcher_16 checksum computation algorithm.
- [base58-ada](https://github.com/MichaelAllenHardeman/base58_ada) - Base58 encoding and decoding in Ada.

---
*truncated — [full list on GitHub](https://github.com/ohenley/awesome-ada)*
