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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages