b64 is a very small, simple, and efficient C library that provides Base64 encoding and decoding according to RFC 1113. It has no dependencies on any third-party libraries other than the C standard libary or operating system services. It also comes with a flexible C++ API.
Recent releases


Release Notes: This release adds b64_getStatusCodeString(), b64_getStatusCodeStringLength(); and deprecates b64_getErrorString() and b64_getErrorStringLength(). Added implicit link support for the VC++10 C++ API ensures exception bears code B64_RC_TRUNCATED_INPUT when input truncated (it previously was passing B64_RC_OK). It adds core library names according to implicit link format, i.e. b64.1.core.*. It adds a makefile for GCC 4.5-4.7.


Release Notes: This release adds support for Borland 5.9+, fixes a defect in b64_encode()/b64_encode2() and the defective use of std::vector in the C++ layer, and makes some preparation for widestring support in a future version. It bundles xContract 0.3.1 and xTests 0.14.3, and requires STLSoft 1.9.89.


Release Notes: This release contains a workaround for GCC 4.x's defective resolution of function template names for std::string overloads of the string access shim. It also contains a fix for a minor defect in the printf format specifier in example.2.c.


Release Notes: The printf format-specifier warning in example.2.c on 64-bit Linux was fixed. The -Wno-long-double flag was removed from non-Mac GCC makefiles. Makefiles were added for GCC 4.1, 4.2, 4.3, and Visual C++ 9 (32 and 64-bit). The GCC-specific string access shim compile error has not yet been fixed.


Release Notes: This version updates the library to support the Win64 platform.