Free Tools and Libraries

Looking for something specific? Consider using the Ada-wide search engine, which searches all of these sites and many more — but only Ada-related sites, so it’s much easier to find relevant results.

Can’t find it here? Also check Professional Tools and Services. Also consider checking the Awesome Ada site, another curated list of Ada resources.

General Collections of Tools and Libraries

  • Libre Software
    GPLed software for Ada and other languages.

  • Rosetta Code
    Rosetta Code shows common problems solved in a variety of programming languages, including Ada.

  • Ada and Software Engineering Library
    This site is the on-line version of the famous ASE CD-ROMs. It contains over 1.3 Gigabytes of information on Ada, including libraries, tools, educational materials, and compilers. This library is now hosted in the AdaIC’s archives, as the previous site has gone off-line. The library is also available via FTP at Ada Belgium’s site.

  • AdaBASIS
    “AdaBasis, an acronym for the German phrase ‘Bibliothek anwendungsbezogener Ada Software-Komponenten in Stuttgart,’ is a repository of (mostly) free Ada Software, presented in a way that is (hopefully) easy to use and allows flexible access and effective searching. The software in this repository is based mainly on the PAL and is still extending. It is presented in a hierarchical manner, separated in different application domains, and, for some domains, with an additional searching facility.”
    • Artificial Intelligence
    • Compilers
    • Database Management
    • Documents
    • Text-Processing
    • Interfaces/Bindings
    • Mathematical Functions and Data Structures
    • Networking and Distributed Processing
    • Software Development Tools
    • Various other Tools

Single-source Collections of Tools and Libraries

  • Adaino
    Adaino is a toolset written in Ada, to develop Ada applications on Arduinos on a host Windows machine.

  • Ada Reusable Code
    Ada components, including fuzzy logic, interval arithmetic, string editing, table management, smart pointers, and more.

  • AdaStudio
    A set of tools and libraries for creating Ada GUI programs, including a QT5Ada (a binding to QT5), VAD (Visual Ada Developer), and more.

  • Ada Util
    Ada Util is a collection of utility packages for Ada 2005. Several packages are inspired from Java packages and libraries. It includes:
    • A logging framework close to Java log4j framework
    • Support for properties
    • A 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)
    • Several concurrency tools (reference counters, counters, pools)
    • Support for localized date format
    • Support for process creation and pipe streams (on Unix and Windows)
    • Support for CSV in the serialization framework
    • Integratation of Ahven 2.1 for the unit tests (activate with –enable-ahven)
    • A tool to generate perfect hash function
    It has been compiled and ported on Linux, Windows and Netbsd.

  • Andersen Library
    This site contains a collection of Ada programs and packages written by Jacob Sparre Andersen, which are distributed under the “Beerware” Open Source license. These include an ISBN handling package, various generic math packages, and more.

  • Anders Gidenstam’s Ada Software pages
    These include a number of interesting packages, including various lock-free data structures in Ada.

  • Arduino Blog
    This is Tero Koskinen’s blog on using Ada on an Arduino board, including downloads and code snippets.

  • Christoph Grein’s home page
    This site includes a number of articles and the associated packages, including Smart Pointers and SI Units.

  • Jonathan Parker’s Math Libraries
    are a collection of numerics routines in Ada (under the GPL license); these include SVD, QR, LU, Runge-Kutta, FFT, Arbitrary precision floating point, and random number generators.

  • Matreshka
    Matreshka is an Ada framework to develop information systems. It includes: extended support for internationalization; XML processing; web frameworks; SQL database access; and more.

  • PragmAda Reusable Components (PragmARCs)
    The PragmARCs are open-source components that range from the basic-but-essential to the high-level, using the PragmARCs reduces the amount of software written for an application by an average of 50%. (This is a representative figure. Actual results may vary.) The PragmARCs are pure Ada; they should work with any compiler and operating system on any platform.
    The PragmARCs are also available through Github.

  • Stephen Leake’s Libraries
    This site includes a collection of Ada tools including SAL (Stephe’s Ada Library), Auto Text_IO, and more.

  • Student Packages
    String processing, HTML output routines, an Ada.Text_IO visualisation tool, forms based programming, a simple Unix interface, a Simple Prolog interpreter, making motif/callbacks easier, and data compression.

Individual Tools and Libraries

  • Ada AutoIT
    Ada AutoIT is an Ada binding to AutoIT, which is a test automation interface for Win32 systems.

  • Ada Bar Codes
    An Ada package for generating various types of bar codes (1D, or 2D like QR codes) on different output formats, such as PDF or SVG. Another author has provided a package to display generated bar codes using Gnoga (see below).

  • AdaBase
    AdaBase is an Ada database binding, with drivers for MySQL and SQLite, with PostgreSQL under development.

  • Ada BFD
    Ada BFD is an Ada binding for the GNU Binutils BFD library. It allows reading binary ELF and COFF files using the GNU BFD.

  • Ada binding to Zlib
    ZLib.Ada is a thick binding to the popular compression/decompression library ZLib. It provides Ada style access to the ZLib C library.

  • AdaBLAS
    AdaBLAS is an Ada binding to BLAS.

  • Ada Crypto Library
    This a crypto library for Ada, written for the i386 and x86_64 hardware.

  • Ada Database Objects
    Ada Database Objects is an Ada05 library that provides object relational mapping to access a database from Ada05 code. The library supports MySQL and SQLite as databases.

  • AdaID
    An Ada Library for UUID generation.

    AdaLAPACK is an Ada binding to LAPACK.

  • Ada-LAPACK
    Ada-LAPACK is an all-Ada implementation of parts of LAPACK.

  • Ada LZMA
    Ada binding for liblzma compression library.

  • Ada Open ZWave
    Ada Open ZWave is a binding to the C++ Open ZWave library for controlling Z-Wave devices.

  • Ada PDF Writer
    Ada PDF Writer is an Ada 95 library that makes it easy to create PDF files from an Ada program, including text, headers, footers, vector graphics, and JPEG images.

  • Ada Project Manager
    This ttool provides management, beyond Ada’s language specification, of a set of source code and configuration options/specifications.

  • Ada-Spread
    Ada-Spread is an Ada2005 binding to the high performance messaging service Spread (

  • Ada Web Application
    The AWA project is a framework to build a web application with Ada.

  • Ada Wiki Engine
    Ada Wiki is a small library that provides a Wiki engine.

  • Ada Win32
    Ada Win32 provides a set of lower-level Ada bindings to the Microsoft Windows Win32 API.

  • Ada WinRT
    Ada WinRT provides a set of Ada bindings to the Microsoft Windows WinRT API.

  • AdaYAML
    AdaYAML is an experimental library for processing files encoded using the YAML data serialization language.

  • Ada for Automation
    (A4A in short) is a framework, for designing industrial automation applications using the Ada language. (Note: Site is in French.)

  • Addr2Line2locations
    Addr2Line2locations, is a utility for GPS (an Ada language oriented IDE from AdaCore), which provides you navigation in exceptions traceback and origin via the Locations pane of the GPS IDE.

    ADHCP is an implementation of the DHCP protocol in Ada.

  • Ahven
    Ahven is an Ada 95 unit test library.

  • A-LIFX
    A-LIFX is a full Ada interface to the LIFX-Smart light bulbs.

  • ANet
    Anet is a networking library for the Ada programming language.

  • ANTLR grammars for Ada
    This site contains a number of grammar for a variety of Ada and ANTLR versions.

  • ArchiCheck
    ArchiCheck is a tool for checking the architecture of an Ada software system.

    This tool converts an Ada unit’s ASIS representation into XML, so as to make it easier to develop transformational tools using (for example) XSLT.

  • ASound
    A library for sound operations.

  • AZip
    AZip is an archive manager which is 100% written in Ada.

  • Basil
    Basil is a library for processing e-mail messages (including MIME parts).

  • Booch Components
    Simon Wright continues Dave Weller’s original work of porting Grady Booch’s C++ components to Ada95.

  • C2Ada Sourceforge project
    This project is the current home of the C2Ada C to Ada translator program. C2Ada can translate C headers to produce bindings as well as C programs to produce translations.

  • Canta
    Canta is an open source Windows application, written in Ada, that aims to help the user to learn to sing in tune.

  • CBAP
    Ada Call-Back Argument Processor, for processing simple arguments.

  • Charles
    Charles is a container library for Ada95, modeled principally on the C++ STL. It features both ordered (lists and arrays) and unordered (sets and maps) collections. Associated with each container type is a separate iterator type, which allows you to visit each item in the container.

  • Cheddar
    Written in Ada and designed for educational purposes, the Cheddar program automatically checks realtime constraints in programs.

  • CodingGround
    CodingGround allows entering and compiling Ada programs on-line.

  • Coldframe
    ColdFrame generates Ada framework code and documentation from UML models.

  • Confignat
    Comfignat provides convenient command-line-controlled compile-time configuration of software built with the GNAT tools on Unix-like operating systems.

  • Configuration File package
    Config is a package for parsing configuration files (.ini, .inf, .cfg, …) and retrieving keys of various types.

  • Container JSON
    This is a set of utilities for serializing/deseriallizing Ada Standard containers to/from JSON.

  • Corporate BS Generator
    This Ada program creates random sentences of corporate-speak; it’s available on-line and as an Ada program you can run locally.

  • Cortex GNAT Runtime Systems
    This is a series of runtime systems for GNAT Ada targeted to ARM Cortex boards. Supported boards include the Arduino Due and the STM32F4-series evaluation boards from STMicroelectronics.

  • Deepend
    Deepend is a storage pool with subpool capabilities for Ada 2005. (Subpools is a new Ada 2012 feature not directly available in Ada 2005.)

  • Dequesterity
    Dequesterity [dek-ster-i-tee] is an assortment of deque/buffer generics written in Ada 2005 that consist of building blocks that may be combined in various ways to create higher abstraction buffers.

  • DragonLace.Net
    Bringing the GNAT Ada compiler to DragonFlyBSD, FreeBSD, OpenBSD, NetBSD, and Solaris/OpenSolaris.

  • Excel Writer
    Excel Writer provides a library for creating Excel spreadsheet files directly from Ada programs (no copy of Excel or another office program is required).

  • Formal Methods Toolkit
    FMT is a set of extension packages that turn Mathematica into a software engineering IDE that allows designing, analyzing, visualizing, verifying models, and generating formally-proven Ada source code.

  • Generic Image Decoder (GID)
    The Generic Image Decoder (GID) is a standalone, self-contained, pure Ada package for decoding a broad variety of image formats, from any data stream, to any kind of medium.

  • Globe 3D
    GLOBE_3D is a free, open-source, real-time 3D Engine written in Ada, based on OpenGL.

  • Gnoga
    Gnoga is a framework of Ada packages that provide platform-independent user interface programming for the cloud, desktop and mobile. Gnoga uses a browser to render the UI, so it works almost anywhere, local or remote. Gnoga also includes a number of tools to make development of Gnoga applications easier. There is a gallery of Gnoga example programs can be found on the Sourceforge Gnoga site.

  • GNAT math extensions
    The Ada 2005 standard defines real and complex matrix and vector operations. Not every possible operation is supported;this project provides extensions to the Standard for GNAT.

  • GNU GMP and MPFR binding
    This binding to the GNU GMP and MPFR Multi-precision libraries offers excellent performance.

  • Imago
    Imago is a thin binding to DevIL – Developers’ Image Library (which is a library that supports working with most image formats). There is an Ada version of the examples in the lazyfoo tutorial for using this library here.

  • JDaughter
    Jdaughter is an Ada library for reading and writing JSON data.

  • JEWL
    JEWL is a set of Ada packages aimed at novices which enables reasonably sophisticated Windows GUI applications to be built with a minimum of effort.

  • JWX
    JWX is a library for handling JSON data and more. It uses SPARK to prove that it contains no runtime errors.

  • Ladybird
    Ladybird is a client application for Twitter and microblogs, written in Ada.

  • LEA
    LEA is a Lightweight Editor for Ada. It is available as an executable for Windows and is based on the Scintilla editor widget (like Notepad++).

  • LibSimpleIO
    LibSimpleIO provides easy-to-use Linux I/O device access; it is especially useful for programming board-level computers like the Raspberry PI. It is available in a variety of languages, including Ada.

  • Libsodium-Ada
    Libsodium-ada is a set of thick Ada bindings to libsodium. Libsodium is a portable implementation of the NaCl encryption, hashing, and authentication library.

  • Magpie
    Ada framework providing work sharing/seeking services for distributing work amongst CPU cores on multi-core machines.

  • Mathpaqs
    Various mathematical packages including algebra, finite elements, random variables, probability dependency models, unlimited integers.

  • Muen Separation Kernel
    The Muen Separation Kernel is an first Open Source microkernel that has been formally proven to contain no runtime errors at the source code level. It is written in the SPARK subset of Ada.

  • Nasser Abbasi Ada page
    Packages and links on Ada.

  • Oliver Kellogg’s Ada source processing
    These are a number of Perl programs for processing Ada source code.

  • OpenGLAda
    OpenGLAda is a thick Ada binding for OpenGL and GLFW. It enables you to create complex graphical applications in Ada, using the OpenGL industry standard.

  • Oto
    Ada Binding to OpenAL.

  • P2Ada Sourceforge Project
    A free Pascal-to-Ada translator.

  • Paraffin
    A suite of Ada 2005/2012 generics to facilitate iterative and recursive parallelism for multicore systems and provide safer recursion for single and multicore systems.

  • PCSC/Ada
    PCSC/Ada provides an Ada interface for communicating with smart cards via standard PC/SC interfaces. The library provides a thick, easy-to-use interface to the SCard API.

  • Player-Ada
    Player-Ada is a not-so-thin binding to the libplayerc client library that is distributed as part of the Player/Stage multi-robot interface/simulator software.

  • PLplot for Ada
    PLplot is a cross-platform software package for creating scientific plots. It has a dedicated Ada binding (along with a number of other languages).

  • Protobuf for Ada
    Protobuf is an Ada implementation of Protocol Buffers – Google’s data interchange format.

  • Pugixml for Ada
    PUGIXML is a lightweight XML processing library; this is an Ada binding to it.

  • QT4Ada
    QT4Ada is a hand-written Ada 2005 binding to QT 4.2.

  • QTAda
    QTAda is a different Ada 2005 binding to QT.

  • Raptor RDF Syntax bindings
    This is a thick object oriented Ada2012 bindings for the Redland Raptor RDF (Resource Descriptor Framework) library.

  • RCLAda
    RCLAda is an Ada 2012 client library for ROS2, the next generation of the popular framework for robotics research, ROS.

  • SQLite3-Ada
    Portable sqlite3 bindings for Ada 95.

  • SymExpr
    This is a generic Ada package that allow manipulation of simple “symbolic expressions”.

  • Tension Structures
    This site is to publicizes information about design and analysis of tension structures including cable roofs and membrane structures. Source code written in Ada95, examples and executable code for Windows available for download.

  • Uniparser
    A library for creating parsers and lexers. Powerful, flexible, and extensible.

  • VT100
    This is wrapper library for vt100 calls in Ada.

  • VisualAda
    This is a plugin for Visual Studio 2017 that supports Ada development using GNAT.

  • Wavefiles
    Wavefiles is a Wavefile reader / writer using generic fixed-point PCM buffer

  • Wayland Client
    This is a thick Ada binding for the Wayland Client API.

  • XCB for Ada
    This is a thin Ada binding to the XCB library, which provides access to the client-side of the X11 display server protocol on Linux.

  • X-Cleaner
    This is a Windows tool for securely erasing data. A number of algorithms are supported.

  • XML4Ada95
    XML4Ada95 is a package which enables parsing and serialization of XML Documents, accessing them via the DOM Interface., and validation of them against DTDs and XML Schema.

  • Yami4
    YAMI4 is a set of messaging libraries designed for distributed systems with particular focus on control and monitoring systems.

  • Zip Ada
    ZIP file handling in Ada, including compression and decompression.

  • ZStd-Ada
    An Ada binding for the ZStandard compression library; ZStandard is a lossless compression algorithm, which provides both good compression ratio and speed.

Share and Enjoy:
  • email
  • LinkedIn
  • Twitter
  • Facebook
  • Digg
  • RSS