Updated: 15th March 2008




b64: Base-64 Encoding Library (C library with C++ mapping; Platform-independent)

b64 is a very small and simple library that provides Base-64 encoding and decoding, according to RFC-1113, in C and C++.

The b64 core library is a pure standalone component:

It is released under the BSD license, which basically means its free for any use, but you can't claim it's yours.

News: 3rd September 2006: Base-64 conversion of binary regions, using b64, is now available as part of the distribution of Pantheios, the ultimate C++ logging API library.

Releases:

Date Version Download Comments / Changes
    Distribution Checksum  
13th May 2008 1.3.2 b64-1.3.2.zip (397502 bytes) b64-1.3.2.md5 (34 bytes)
66fe218bfdfc9263219a4517232033bb
  • General:
    • added Win64 compatibility
  • b64 C++-API:
15th March 2008 1.3.1 b64-1.3.1.zip (423769 bytes) b64-1.3.1.md5 (34 bytes)
9ae198d473653de226964babda52f619
  • Distribution:
    • renamed all test/example/sample directories and filenames to fit in with the prevailing standard in all Synesis-related libraries
  • b64 C++-API:
    • added ability to customise namespace name
9th February 2008 1.2.6 b64-1.2.6.zip (418071 bytes) b64-1.2.6.md5 (34 bytes)
53c16a298eaf07e1c72ab6a0df5fe735
  • b64 C-API:
    • workaround for weird GCC bug on 64-bit Linux
  • b64 C++-API:
    • -
8th February 2008 1.2.5 b64-1.2.5.zip (417827 bytes) b64-1.2.5.md5 (34 bytes)
c17f592975fa2bb3233db7e41dae9454
  • Test / Examples:
    • compatibility with Visual C++ 8+ "Safe String" library
  • b64 C-API:
    • -
  • b64 C++-API:
    • compatibility with STLSoft 1.9.22
30th April 2007 1.2.4 b64-1.2.4.zip (421427 bytes) b64-1.2.4.md5 (34 bytes)
685ec26343f52be0193f0970bd3b68dc
  • Distribution:
  • b64 C-API:
    • -
  • b64 C++-API:
    • compatibility with STLSoft 1.9.1
26th January 2007 1.2.3 b64-1.2.3.zip (420456 bytes) b64-1.2.3.md5 (34 bytes)
d1cf60fefd2fa1ccc05310f68d44f420
  • Distribution:
    • trimming of unused/unwanted makefiles
    • fix of omission (in 1.2.2) of compiled HTML help (.CHM) file
  • b64 C-API:
    • minor changes to help
  • b64 C++-API:
    • minor changes to help
22nd January 2007 1.2.2 b64-1.2.2.zip (293154 bytes) b64-1.2.2.md5 (34 bytes)
12b2cce529d8f9610c86fff4a94864d1
  • Distribution:
    • Now roots the distribution under b64-X.Y, e.g. b64-1.2.2
  • b64 API:
    • Minor changes to help
7th December 2006 1.2.1 b64-1.2.1.zip (364554 bytes) b64-1.2.1.md5 (34 bytes)
a57ac04379390fb6fa785b6a4e4d816f
  • Core:
    • Added b64_getErrorString() and b64_getErrorStringLength()
  • C++ layer (requires STLSoft):
    • b64/cpp/b64.hpp #include file deprecated; now use b64/b64.hpp instead
    • All names in the b64::cpp namespace are now defined in b64 namespace; old namespace retained for backwards compatibility
    • Fix to b64::decode() to avoiding invoking subscript operator for empty blob_t instances
2nd August 2006 1.1.3 b64-1.1.3.zip (410695 bytes) b64-1.1.3.md5 (34 bytes)
f56bd6446ac8ed74728a6e2b265503d3
  • Minor changes to the header file for the C++ mapping, to be compatible with latest STLSoft (1.9.1 beta 16 - download from http://stlsoft.org/downloads.html)
  • Refactored the use of Null Object dummy variables in the core API. All APIs and behaviour remain the same.
  • Fixed a bug in b64::encode(), whereby the coding_exception would have had the wrong return code.
  • Now assumes contiguous std::string implementation, for improved performance, for Dinkumware C++ libraries for VC++ up to version 7.1.
26th July 2006 1.1.2 b64-1.1.2.zip (406972 bytes) b64-1.1.2.md5 (34 bytes)
bdc6785de04317b890325013282b06ee
  • Minor changes to the header file for the C++ mapping, to be compatible with latest STLSoft (1.9.1 beta 16 - download from http://stlsoft.org/downloads.html)
  • Minor fixes/changes to makefiles
  • Minor fixes to the documentation
28th April 2006 1.1.1 b64-1.1.1.zip (319152 bytes) b64-1.1.1.md5 (34 bytes)
47f7d363e34441764a680f33047f983a
Upgraded to full RFC-1113 compliance (version 1.0 did not do white-space line-splitting), and now provides flexible behaviour for line-splitting on encoding and invalid-character detection on decoding.
19th June 2005 1.0.1.4 b64-1.0.1.4.zip (197195 bytes) b64-1.0.1.4.md5 (34 bytes)
b2719ef1fb6f0218d133c0cfd6c79b07
The library is unchanged from 1.0.1.3 The only changes is that the C++ test program has a minor bug fix in the C++ test program, to seed the randomisation from time(NULL), and the C test file has some printf() format specifier casting to ensure compatibility between Win32, Linux and Mac OS-X.
23rd May 2005 1.0.1.3 b64-1.0.1.3.zip (195639 bytes) b64-1.0.1.3.md5 (34 bytes)
a74e3353d0b28431b4d5f90cbf4dee04
The library is unchanged from 1.0.1.2 The only change is that the C++ test program has a minor bug fix, to use a C++ cast rather than a C-style cast.
22nd March 2005 1.0.1.2 b64-1.0.1.2.zip (194276 bytes) b64-1.0.1.2.md5 (34 bytes)
0ddb4298b284e8b8eb5ccfe50e2f2442
The library is unchanged from 1.0.1. The only change is that the C++ test program uses the STLSoft memory_mapped_file components (either from UNIXSTL or WinSTL, discriminated by the PlatformSTL headers), available in STLSoft 1.8.3 beta 4 or later (stlsoft.org/downloads.html#stlsoft_1_8_3).
17th February 2005 1.0.1 b64-1.0.1.zip (193818 bytes) b64-1.0.1.md5 (34 bytes)
2bd6bc1e4795a8b0e3202cdd541160ea
First release.

Includes library source, header files, C & C++ test programs. Makefiles for Borland, Comeau, Digital Mars, GCC, Intel, Metrowerks CodeWarrior, Visual C++ and Open Watcom, for both UNIX and Win32.