Skip to content

LeoVasanko/base64url-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Urlsafe Base64 for Python

A simple module for encoding without padding, fixing Python standard library's flaws.

Replaces the standard library's base64.urlsafe_b64encode and base64.urlsafe_b64decode with a cleaner implementation that returns strings instead of bytes and avoids unnecessary padding.

Features

  • Urlsafe: Uses only characters that are safe for URLs and filenames
  • No padding: Removes trailing = characters for a cleaner, actually urlsafe output
  • String output: Returns Base64 as str instead of bytes
  • Fast: Based on Python stdlib, with constant-time padding restoration

Installation

pip install base64url

Or for your project using UV:

uv add base64url

Usage

import base64url

text = base64url.enc(bytes(4)) # Returns "AAAAAA"
data = base64url.dec(text)     # Recovers the bytes

enc(data: bytes) -> str

Encode bytes to a urlsafe string without padding.

dec(s: str, *, validate=True) -> bytes

Decode standard or urlsafe Base64 into bytes. Padding optional. Raises binascii.Error (ValueError) on invalid input. Set validate=False to silently ignore unknown characters (Python base64 default behavior).

enc_lines(data: bytes, length=76, sep="\n") -> str

Encode with newlines inserted every length characters. Does not add a newline at the end.

dec_lines(s: str) -> bytes

Decode formatted input, ignoring whitespace. Raises binascii.Error on invalid characters.

About

Base64 encoding without Python's base64 flaws. No padding, str types.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages