`Libgsasl' might have a couple of advantages over other libraries doing a similar job.
Anybody can use, modify, and redistribute it under the terms of the GNU General Public License (Appendix B).
No global variables are used and multiple library handles and session handles may be used in parallell.
It handles non-ASCII username and passwords and user visible strings used in the library (error messages) can be translated into the users' language.
It should work on all Unix like operating systems, including Windows. The library itself should be portable to any C89 system, not even POSIX is required.
Note that the library do not implement any policy to decide whether a certain user is “authenticated” or “authorized” or not. Rather, it uses callbacks back into the application to answer these questions.