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.

  • Alire
    The Ada LIbrary REpository is a catalog of ready-to-use Ada/SPARK libraries plus a command-line tool (alr) to obtain, build, and incorporate them into your own projects.

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

  • 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 Essentials
      This site includes a number of articles and the associated packages, including Smart Pointers and Physical 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
      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 NetFramework
      This is a set of bindings and runtime that allows native Ada applications built using GNAT to use the Microsoft NetFramework.

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

    • Adare_Net
      Adare_Net is a small, portable and easy to use Ada network library. It supports both ipv4 and ipv6, as well as both udp and tcp.

    • Ada-Spread
      Ada-Spread is an Ada2005 binding to the high performance messaging service Spread (http://www.spread.org).

    • 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-GUI
      Ada-GUI is a concurrent GUI; it is initially implemented on top of GNoga.

    • 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
      ADHCP is an implementation of the DHCP protocol in Ada.

    • Ahven
      Ahven is an Ada 95 unit test library.

    • Alire
      A sandbox package manager for the Ada language. Powers the Alire catalog (see above).

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

    • ALog
      Alog is a stackable logging framework for Ada.

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

    • AREl
      ARE (Advanced Resouce Embedder) is a tool that can generate Ada code to embed a file in an Ada executable program. Any file can be embedded, including documentation, images, scripts, and configuration files.

    • AShell
      AShell is a library for using shell-like capabilities in Ada programs.

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

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

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

    • DCF-Ada
      An Ada 2012 library for document container files, a Zip-based archive format standardized in ISO/IEC 21320-1:2015. Document container files are restricted versions of Zip files.

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

    • DePlo
      DePlo is a program that converts the dependency relationship between Ada packages into a graph description in DOT format.

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

    • Dotenv
      Dotenv is a zero-dependency library that loads environment variables from an .env file.

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

    • GDNative
      GDNative provides Godot Nativescript bindings in ada.

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

    • HAC
      HAC (HAC Ada Compiler) is a small, quick, open-source Ada compiler, covering a subset of the Ada language. It also can be found on Github

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

    • MP
      MP is a music player using the audio widget of GNoga.

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

    • Orka
      Orka is an OpenGL 4.6 rendering kernel written in Ada 2012.

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

    • Portable OpenAL Sound
      Portable OpenAL Sound is a thick Ada binding to OpenAL sound. This is a cross-platform sound-playing package for Ada apps that can asynchronously start and stop music loops, as well as initiate transient sounds. It plays WAV files, via OpenAL, on Windows, OSX, and Linux platforms. It is suitable for any Ada application that needs music, sound loops or transient sound effects. Also found on Github.

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

    • QPlt
      QPlt is Ada-GUI (see above) program to quickly produce a plot of a dataset.

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

    • Resource
      Resource is a tool for converting resource files to Ada source code to be compiled and included in a binary.

    • Stack Usage
      Stack Usage is a Python tool that analyzes call information produced by GNAT in order to determine maximum stack usage for a task.

    • SQLite3-Ada
      Portable sqlite3 bindings for Ada 95.

    • SrcTrace
      SrcTrace is a tool that generates an Ada package containing the source details for a particular build of a program. It also supports several other languages.

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

    • UXStrings
      A package providing Unicode Extended String ty[es and an associated Text_IO child package.

    • VSCode Extensions
      These are extensions to Microsoft’s VSCode editor to support Ada programming. A second extension can be found here

    • 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