Catalyst is a companion library for GLib containing a collection of convenience functions and classes.
Each function and class originated from scenarios I've come across and decided would be beneficial in a library like this.
API documentation is available at: https://avojak.com/libcatalyst/catalyst-1/
- Asynchronous and monitored downloading of files (Catalyst.HttpUtils)
- Basic arithmetic of arbitrary-precision integers (Catalyst.BigInteger)
- Container class for objects which may or may not contain a null value (Catalyst.Optional)
- Enumarate all values on an enum (Catalyst.EnumUtils)
- Compute checksums of files (Catalyst.DigestUtils)
- Recursively copy, delete, and list files (Catalyst.FileUtils)
And lots more!
If using Meson, simply add the dependency after installation:
dependency('catalyst-1', version: '>= 1.0.0')
Run meson build
to configure the build environment:
meson build --prefix=/usr
This will create a build
directory.
To build and install Catalyst, use ninja
:
ninja -C build install
To run tests:
ninja -C build test
There's also a Makefile if you're lazy like me and don't want to type those commands all the time.
Some features are demonstrated through a simple demo application. To run the demo after installation:
catalyst-1-demo
The additional requirements for building the documentation are:
- valadoc
To generate the valadoc documentation, pass the additional -Ddocumentation=true
flag to Meson, and then run ninja
as before.