basE91 - converting binary data to ASCII text
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Version 0.5.1, (c) 2000-2005 Joachim Henke


basE91 is an advanced method for converting binary data to ASCII text. It is
similar to UUencode or base64, but is much more efficient. The overhead
produced by basE91 depends on the input data. It amounts at most to 23%
(compare to 33% with base64) and can range down to 14% which typically occurs
on 0-byte blocks. This makes basE91 very useful for transferring larger files
over binary insecure connections like email or terminal lines.

The current algorithm has been written with portability and simplicity in mind
an is therefore not necessarily optimised for speed.


* Alphabet

As the name suggests, basE91 needs 91 characters to represent the encoded
binary data in ASCII. From the 94 printable ASCII characters (0x21-0x7E), the
following three were omitted to build the basE91 alphabet:

- (dash, 0x2D)
' (apostrophe, 0x27)
\ (backslash, 0x5C)

The translation table is composed of the remaining characters as shown below.

 0 A	13 N	26 a	39 n	52 0	65 %	78 >
 1 B	14 O	27 b	40 o	53 1	66 &	79 ?
 2 C	15 P	28 c	41 p	54 2	67 (	80 @
 3 D	16 Q	29 d	42 q	55 3	68 )	81 [
 4 E	17 R	30 e	43 r	56 4	69 *	82 ]
 5 F	18 S	31 f	44 s	57 5	70 +	83 ^
 6 G	19 T	32 g	45 t	58 6	71 ,	84 _
 7 H	20 U	33 h	46 u	59 7	72 .	85 `
 8 I	21 V	34 i	47 v	60 8	73 /	86 {
 9 J	22 W	35 j	48 w	61 9	74 :	87 |
10 K	23 X	36 k	49 x	62 !	75 ;	88 }
11 L	24 Y	37 l	50 y	63 #	76 <	89 ~
12 M	25 Z	38 m	51 z	64 $	77 =	90 "


* Building

1. `cd' to the directory containing the package's source code and type `make'
   to compile the package

2. optionally, type `make check' to run any self-tests that come with the
   package

3. type `make install' to install the program and documentation in `/usr/local'
   (to specify another installation prefix than `/usr/local', type
   `make prefix=PATH install' instead)

4. you can remove the program binaries and object files from the source code
   directory by typing `make clean'


* Developer

Joachim Henke <digital@funk-hippies.org>


* Copying

All source code in this package is released under the zlib license. See the
file COPYING for copying permission.


* See also

Please visit the basE91 homepage [http://funk-hippies.org/digital/base91/] for
the latest version and pre-compiled binaries.
