# Module Netencoding.Base64

    module Base64: sig .. end

Base64 encoding as described in RFC 2045

    val encode : ?pos:int -> ?len:int -> ?linelength:int -> ?crlf:bool -> string -> string

Compute the "base 64" encoding of the given string argument. Note that the result is a string that only contains the characters a-z, A-Z, 0-9, +, /, =, and optionally spaces, CR and LF characters.

If `pos` and/or `len` are passed, only the substring starting at `pos` (default: 0) with length `len` (default: rest of the string) is encoded.

The result is divided up into lines not longer than `linelength` (without counting the line separator); default: do not divide lines. If `linelength` is smaller than 4, no line division is performed. If `linelength` is not divisible by 4, the produced lines are a bit shorter than `linelength`.

If `crlf` (default: false) the lines are ended by CRLF; otherwise they are only ended by LF. (You need the crlf option to produce correct MIME messages.)

    val url_encode : ?pos:int -> ?len:int -> ?linelength:int -> ?crlf:bool -> string -> string

Deprecated.Since Ocamlnet 0.98, this function is deprecated, as it is non-standard, and it has a confusing name.
Same as `encode` but use slightly different characters that can be part of URLs without additional encodings. The encoded string consists only of the characters a-z, A-Z, 0-9, -, /, . `url_encode` does not implement the Base 64 encoding as described in the standard!

    val decode : ?pos:int ->
           ?len:int -> ?url_variant:bool -> ?accept_spaces:bool -> string -> string

Decodes the given string argument.

If `pos` and/or `len` are passed, only the substring starting at `pos` (default: 0) with length `len` (default: rest of the string) is decoded.

If `url_variant` (default: `true`) is set, the functions also accepts the characters '-' and '.' as produced by `url_encode`.

If `accept_spaces` (default: `false`) is set, the function ignores white space contained in the string to decode (otherwise the function fails if it finds white space). Furthermore, the character '>' is considered as "space", too (so you don't have trouble with mbox mailboxes that accidentally quote "From").

    class encoding_pipe : ?linelength:int -> ?crlf:bool -> unit -> Netchannels.pipe

This pipe encodes the data written into the pipe.

    class decoding_pipe : ?url_variant:bool -> ?accept_spaces:bool -> unit -> Netchannels.pipe

This pipe decodes the data written into the pipe.