GitHub - aiq/basexx: A Lua library which provides base2(bitfield), base16(hex), base32(crockford/rfc), base64(rfc/url), base85(z85) decoding and encoding. (original) (raw)

For every supported format has basexx a from and to function.

The from functions have two parameters:

The from functions return a string if the string can be decoded, otherwise nil and an error message.

The to functions have just one parameter:

The to_z85 function can return nil and an error message, all other functions return allways the encoded string.

from_bit / to_bit

Converts a byte string to a bitfield string.

basexx.to_bit( "ACDC" ) --> 01000001010000110100010001000011 basexx.from_bit( "01000001010000110100010001000011" ) --> ACDC basexx.from_bit( "o1ooooo1o1oooo11" ) --> AC basexx.from_bit( "Oioooooi Oiooooii\n", " \n" ) --> AC

from_hex / to_hex

Converts a byte string to a uppercase hex data string.

basexx.to_hex( "Hello world!" ) --> 48656C6C6F20776F726C6421 basexx.from_hex( "4865-6C6C 6F20-776F 726C-6421", "- " ) --> Hello world! basexx.from_hex( "48656c6c6f20776f726c6421" ) --> Hello world!

from_base32 / to_base32

Converts a byte string to a base32(_rfc3548) uppercase data string.

basexx.to_base32( "chunky bacon!" ) --> MNUHK3TLPEQGEYLDN5XCC=== basexx.from_base32( "MNUHK3TLPEQGEYLDN5XCC===" ) --> chunky bacon!

from_crockford / to_crockford

Converts a byte string to a base32(crockford) uppercase data string. The optional check value is not implemented.

string.lower( basexx.to_crockford( "Hello World" ) ) --> 91jprv3f41bpywkccg basexx.from_crockford( "axqqeb10d5t20wk5c5p6ry90exqq4tvk44" ) --> Wow, it really works!

from_base64 / to_base64

Converts a byte string to a base64 data string.

basexx.to_base64( "Man") --> TWFu basexx.from_base64( "TWFu" ) --> Man

from_url64 / to_url64

Same as above, but uses a URL Safe base64 alphabet and no padding.

from_z85 / to_z85

Converts a byte string to a base85(ZeroMQ) data string. to_z85 expects only a binary string that length is divisible by 4 with no remainder, and from_z85 expects only printable a string that length is divisible by 5 with no remainder.

basexx.to_z85( "1234" ) --> f!$Kw basexx.from_z85( "f!$Kw" ) --> 1234