원문 캡처 · lemire.me
원문 캡처 · lemire.me

다니엘 르미르(Daniel Lemire)가 파이썬용 Base64 라이브러리 fastpybase64를 공개했다. 그의 단일 스레드 벤치마크에서는 1MiB 데이터를 초당 13.1GB로 디코딩해, 표준 라이브러리보다 27배 빠른 결과를 냈다.

fastpybase64는 simdutf의 SIMD 기반 디코딩 기능을 파이썬에서 쓸 수 있도록 만든 라이브러리로, 표준 base64 모듈을 대체하는 용도로 설계됐다. 설치 명령은 pip install fastpybase64다. Linux, macOS, Windows에서 사용할 수 있고, Python 3.10~3.14를 지원한다. free-threaded Python 3.14도 포함된다.

르미르는 Intel Xeon Gold 6548N(Emerald Rapids)의 코어 하나에 작업을 고정하고 Python 3.14.6을 사용해 측정했다. PyPI에서 fastpybase64 0.1.0과 pybase64 1.5.1을 설치했으며, 임의의 바이트 데이터를 Base64로 인코딩한 뒤 디코딩했다. 이메일 첨부에 쓰이는 MIME 형식처럼 Base64 문자열을 76자마다 줄바꿈한 데이터가 측정 대상이다. 수치는 디코딩된 데이터 기준 초당 기가바이트다.

데이터 크기표준 base64pybase64fastpybase64
1 KiB0.441.54.4
64 KiB0.493.113.3
1 MiB0.493.213.1

이 벤치마크에서 fastpybase64는 pybase64보다 4배, 표준 라이브러리보다 27배 빠르다고 르미르는 설명했다. 측정 조건과 코드는 벤치마크 저장소에서 확인할 수 있다. 패키지는 PyPI에서 제공된다. 르미르의 원문에는 SIMD 기반 Base64 연구 자료도 연결돼 있다.

부록: 원문 예시

text
import fastpybase64 as base64 base64.b64encode(b"hello")      # b'aGVsbG8=' base64.b64decode("aGVsbG8=")    # b'hello'