lib/encoding
import "github.com/eugenioenko/goalchemy/lib/encoding"Package encoding provides canonical RFC 4648 base64 encodings.
| Function | c | csharp | go | java | python | rust | swift | typescript |
|---|---|---|---|---|---|---|---|---|
Base64Decode |
yes | yes | yes | yes | yes | yes | yes | yes |
Base64Encode |
yes | yes | yes | yes | yes | yes | yes | yes |
Base64URLDecode |
yes | yes | yes | yes | yes | yes | yes | yes |
Base64URLEncode |
yes | yes | yes | yes | yes | yes | yes | yes |
Base64Decode
Section titled “Base64Decode”func Base64Decode(s string) ([]byte, error)Strict decoding of canonical padded standard base64.
- Gate:
sequential(never suspends) - Determinism: deterministic
- Bounds: Input is at most 4*ceil(64MiB/3) characters and decodes to at most 64MiB. Padding is required; whitespace, non-alphabet characters and nonzero trailing bits are rejected.
- Errors: Non-canonical, malformed or oversized input returns nil and an error.
- Contract:
lib.encoding.base64_decode1.0.0
Base64Encode
Section titled “Base64Encode”func Base64Encode(data []byte) (string, error)Standard RFC 4648 base64 with padding.
- Gate:
sequential(never suspends) - Determinism: deterministic
- Bounds: The data is at most 64MiB.
- Errors: Data over 64MiB returns an empty string and an error.
- Contract:
lib.encoding.base64_encode1.0.0
Base64URLDecode
Section titled “Base64URLDecode”func Base64URLDecode(s string) ([]byte, error)Strict decoding of canonical unpadded base64url.
- Gate:
sequential(never suspends) - Determinism: deterministic
- Bounds: Input is at most 4*ceil(64MiB/3) characters and decodes to at most 64MiB. Padding, whitespace, non-alphabet characters and nonzero trailing bits are rejected.
- Errors: Non-canonical, malformed or oversized input returns nil and an error.
- Contract:
lib.encoding.base64_url_decode1.0.0
Base64URLEncode
Section titled “Base64URLEncode”func Base64URLEncode(data []byte) (string, error)RFC 4648 base64url without padding.
- Gate:
sequential(never suspends) - Determinism: deterministic
- Bounds: The data is at most 64MiB.
- Errors: Data over 64MiB returns an empty string and an error.
- Contract:
lib.encoding.base64_url_encode1.0.0