This Ada library contains various utility packages for building Ada applications. This includes:
- A logging framework close to Java log4j framework,
- Support for INI and property files,
- A serialization/deserialization framework for XML, JSON, CSV, Forms
- Ada beans framework,
- Encoding/decoding framework (Base16, Base32, Base64, SHA, HMAC-SHA, AES-256),
- A composing stream framework (raw, files, buffers, pipes, sockets, encryption, decryption, LZMA compression, LZMA decompression),
- Several concurrency tools (reference counters, counters, pools, fifos, arrays),
- Process creation and pipes,
- Support for loading shared libraries (on Windows or Unix),
- HTTP client library on top of CURL or AWS.
Ada Util also provides a small test utility library on top of Ahven or AUnit to help in writing unit tests. Ahven is the default testing framework as it provides better reports.
- Improvement of Util.Files.Walk to scan and honor a root .gitignore from any child directory
- Feature #55: Support indentation when writing JSON streams
- New package Util.Files.Walk to iterate over directory trees and honor .gitignore
- Add support for custom log formatter (allow to translate log messages, filter messages, ...)
- Feature #48: Change the log time from UTC to Local Time (configurable)
- Fix #49: Perf report generates incorrect XML title attributes
- Fix #50: 128Bit AES-CTR Encoding doesn't work (thanks Adam Jasinski)
- Fix #53: Executor does not always stop the worker tasks
- Used spdx-tool to use
SPDX-License-Identifier
in headers
alr with utilada
alr with utilada_aws
alr with utilada_curl
alr with utilada_lzma
alr with utilada_unit
alr with utilada_xml
For a detailed description on how you can configure, build and install the library refer to the Installation guide. Otherwise, you can easily configure and build the library with the steps described below.
To use Ahven testing framework, configure and build as follows:
./configure
make
To use AUnit, build with the following commands:
./configure --enable-aunit
make
The unit tests are built and executed with:
make test
And unit tests are executed with (256 success, 0 failed):
bin/util_harness
For the installation, use the following command:
make install
Since the integration with Alire, you can build without running configure.
However, there are a number of checks and dependencies which are not verified
and you must run several commands manually, choosing the correct values for
UTIL_ASM_TYPE
and UTIL_OS
build variables. The trick is to give gprbuild
the Alire configuration project in .alire/utilada_conf.gpr
.
For a simple Linux 64-bit build, use:
gprbuild -aP.alire -Putilada_core -p
gprbuild -aP.alire -Putilada_base -p
gprbuild -aP.alire -Putilada_sys -p
gprbuild -aP.alire -Putilada_aws -p
gprbuild -aP.alire -Putilada_curl -p
gprbuild -aP.alire -Putilada_xml -p
For a Linux 32-bit build, use
gprbuild -aP.alire -Putilada_sys -p -XUTIL_OS=linux32
For Windows-64 try:
gprbuild -aP.alire -Putilada_sys -p -XUTIL_OS=win64
Checkout the file .alire/utilada_conf.gpr
for other alternatives.
You can then use gprinstall
for the installation:
gprinstall -aP.alire -Putilada_core -p
gprinstall -aP.alire -Putilada_base -p
gprinstall -aP.alire -Putilada_sys -p
gprinstall -aP.alire -Putilada_aws -p
gprinstall -aP.alire -Putilada_curl -p
gprinstall -aP.alire -Putilada_xml -p
I've never tried to build on Windows without msys2. I don't know if it works. I suspect there will be problems.
The samples are built by using:
cd samples
alr build