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.
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, 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
- Database Management
- Mathematical Functions and Data Structures
- Networking and Distributed Processing
- Software Development Tools
- Various other Tools
Single-source Collections of Tools and Libraries
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.
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:
It has been compiled and ported on Linux, Windows and Netbsd.
- 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
- 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 is an Ada framework to develop information systems. It includes: extended support for internationalization; XML processing; web frameworks; SQL database access; and more.
- Matthews Libraries and Programs
The home page of John B. Matthews, which includes libraries for polynomial root finding in Ada;
Jumble and War (two simulations of simple games), and other useful Ada stuff.
- 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.
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 is an Ada binding to BLAS.
- Ada Crypto Library
This a crypto library for Ada, written for the i386 and x86_64 hardware.
An Ada Library for UUID generation.
AdaLAPACK is an Ada binding to LAPACK.
Ada-LAPACK is an all-Ada implementation of parts of LAPACK.
- 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 is an Ada2005 binding to the high performance messaging service
- Ada Web Application
The AWA project is a framework to build a web application with Ada.
- Ada for Automation
(A4A in short) is a framework, for designing industrial automation applications using the Ada language. (Note: Site is in French.)
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 is an Ada 95 unit test library.
A-LIFX is a full Ada interface to the LIFX-Smart light bulbs.
Anet is a networking library for the Ada programming language.
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.
A library for sound operations.
AZip is an archive manager which is 100% written in Ada.
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 is an open source Windows application, written in Ada, that aims to help the user to learn to sing in tune.
Ada Call-Back Argument Processor, for processing simple arguments.
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.
Written in Ada and designed for educational purposes, the Cheddar program
automatically checks realtime constraints in programs.
ColdFrame generates Ada framework code and documentation from UML models.
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 is a storage pool with subpool capabilities for Ada 2005. (Subpools is a new Ada 2012 feature not directly available in Ada 2005.)
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.
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).
G2F_IO implements an Ada 95 binding to a subset of the low-level MagickCore
- 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 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.
- GNU GMP and MPFR binding
This binding to the GNU GMP and MPFR Multi-precision libraries offers excellent performance.
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 is an Ada library for reading and writing JSON data.
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.
Ladybird is a client application for Twitter and Identi.ca microblogs, written in 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.
Ada framework providing work sharing/seeking services for distributing work amongst CPU cores on multi-core machines.
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 is a thick Ada binding for OpenGL and GLFW. It enables you to create complex graphical applications in Ada, using the OpenGL industry standard.
Ada Binding to OpenAL.
- P2Ada Sourceforge Project
A free Pascal-to-Ada translator.
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.
PCAB is an Ada binding to libpcap. Libpcap provides TCP/IP packet capture and monitoring.
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 is a not-so-thin binding to the libplayerc client library that
is distributed as part of the Player/Stage multi-robot interface/simulator
- 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).
- Pugixml for Ada
PUGIXML is a lightweight XML processing library; this is an Ada binding to it.
QT4Ada is a hand-written Ada 2005 binding to QT 4.2.
QTAda is a different Ada 2005 binding to QT.
SOCI-Ada is a database access library based on the SOCI project. It has
an easy-to-use and compact interface, yet still can provide high performance.
Portable sqlite3 bindings for Ada 95.
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.
A library for creating parsers and lexers. Powerful, flexible, and
This is wrapper library for vt100 calls in Ada.
Wavefiles is a Wavefile reader / writer using generic fixed-point PCM buffer
- 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.
This is a Windows tool for securely erasing data. A number of algorithms are supported.
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 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.
An Ada binding for the ZStandard compression library; ZStandard is a lossless compression algorithm, which provides both good compression ratio and speed.