At this time, the GUI framework is nowhere near complete. It's enough to see the direction the project is going in though. The core library is another story: it is complete and working on the following operating systems:
Windows XP, Vista, Windows 7 (32-bit and 64-bit)
Mac OS X (10.4+, PPC, x86, and x86_64)
Linux (x86 and x86_64)
Complete documentation is available UT/doc/html in the release archive. I'll upload the documentation and link it from this project page as soon as I finish the main web page.
For now, here is an excerpt from the documentation's index page:
The UT library provides an alternative to MFC for object oriented development on Windows, and a cross-platform solution with liberal licensing under the GNU Library General Public License 2.0, a copy of which is included in the UT library distribution.
The UT library provides many interfaces which are cleaner and require less code to make use of than the C standard library, POSIX, and platform-specific equivalents. The class-based API includes strings, lists, B-trees, threads, dynamically self-resizing buffers, a threading and message passing architecture, mutexes, events, timers, streams, files, paths, pool allocation, resources, and more.
The core functionality provided by including UT.h is documented in the following locations. None of these headers should ever be included. Instead, include UT.h which automatically include these subheaders.
UTMisc.h: Basic types and services
UTDebug.h: Debugging facilities
UTStatus.h: Integrated status value space for success or failure from platform-specific, POSIX, and UT APIs with an efficient provision for attaching extra explantory text for possible use by the caller
UTErrorCodes.h: UT-specific error codes within the integrated value space from UTStatus.h
Even though it isn't automatically included like UTMisc.h or UTDebug.h, there is more useful C-based API functionality provided through the following headers:
UTBufferValues.h: A variety of functions for doing buffer value manipulation: packing values into and unpacking values from a buffer to account for endianness and alignment constraints, and converting strings to integers
UTRegExp.h: A regular expression parser, see Regular Expressions
Why yet another toolkit?
Because I'm not satisfied with what's out there. I did force myself to revisit that decision when, well into the UT library project and starting to implement the UTgui library, I stumbled upon the wxWidgets project. It is established, popular, and feature complete. When I learned of it, I considered a polite inquiry with the authors whether they would be open to accepting a new contributor and suggest inclusion of whatever parts of the UT functionality I'd already implemented that happened to be lacking in wxWidgets. But first I decided to evaluate wxWidgets for myself, the first criteria being efficiency. The first thing I did was port the String_t class performance test to use wxString. For a million iterations, UT took 2.7 seconds. For the same test, wxWidgets took 30.9 seconds. Back to work...
I may never catch up in terms of feature completeness, but this is my hobby and it's fun.