
파이썬에서 Base64 데이터를 빠르게 처리하는 오픈소스 라이브러리 ‘fastpybase64’ 0.1.0이 17일 공개됐다. 개발자 다니엘 르미르의 연구자 원문과 공식 GitHub 저장소에 따르면, 이 라이브러리는 SIMD 기반 문자 처리 라이브러리 simdutf의 Base64 기능을 파이썬에서 사용할 수 있도록 연결한다. PyPI에서도 같은 날 배포된 0.1.0 파일을 확인할 수 있다.
Base64는 바이너리 데이터를 문자로 바꾸는 표현 방식이다. 이메일 첨부파일이나 인증서, JSON에 담는 바이너리 데이터 등에 쓰인다. fastpybase64는 표준 base64 모듈의 주요 Base64 인코딩·디코딩 함수를 대신하는 용도로 설계됐다. 설치 후 fastpybase64를 base64라는 이름으로 불러오면 b64encode와 b64decode 등을 기존과 비슷한 방식으로 사용할 수 있다.
르미르는 인텔 제온 골드 6548N 프로세서의 코어 하나에 작업을 고정하고, 파이썬 3.14.6에서 fastpybase64 0.1.0과 pybase64 1.5.1, 표준 라이브러리를 비교했다. 이메일 첨부파일 형식인 MIME을 본떠 76문자마다 줄바꿈을 넣은 Base64 데이터를 한 스레드로 디코딩했다. 처리량은 디코딩을 마친 바이너리 데이터의 크기를 기준으로 계산했다.
공개된 시험 결과에서 64KiB 데이터의 초당 처리량은 fastpybase64 13.3GB, pybase64 3.1GB, 표준 base64 모듈 0.49GB였다. 1MiB에서는 각각 13.1GB, 3.2GB, 0.49GB를 기록했다. 반면 1KiB 입력에서 fastpybase64는 초당 4.4GB였다. 입력 크기와 형식에 따라 속도가 달라지는 만큼, 초당 13GB라는 수치는 모든 작업의 성능을 뜻하지 않는다.
기존 코드와의 호환성은 별도로 처리한다. 공식 저장소는 simdutf의 웹 브라우저식 디코딩 규칙과 파이썬의 공백·패딩 처리 규칙이 다르다고 설명한다. fastpybase64는 빠른 경로의 결과가 표준 모듈과 같다고 확인할 수 없는 입력을 표준 base64로 넘겨 처리한다. validate=True일 때의 오류 처리도 파이썬 동작을 따르도록 설계했다.
배포 대상은 리눅스와 macOS, 윈도이며, 파이썬 3.10부터 3.14까지의 설치용 휠을 제공한다. 자유 스레딩을 지원하는 파이썬 3.14 빌드도 포함된다. 64KiB 이상을 인코딩하거나 디코딩할 때는 전역 인터프리터 락(GIL)을 해제한다. 라이선스는 Apache-2.0과 MIT 가운데 선택할 수 있다.
이번 공개는 Base64 변환이 반복되는 파이썬 작업에서 검토할 수 있는 새 구현을 제시한다. 다만 인코딩과 디코딩, 줄바꿈 유무, 입력 크기에 따라 비교 결과가 다르다. 공식 저장소도 큰 입력의 일반 b64encode에서는 pybase64와 비슷한 속도가 나온다고 설명한다. 위 성능 수치는 개발자가 공개한 시험 결과이며, 서비스 전체의 처리량 향상이나 독립 재현 결과와는 구분된다.
출처: 다니엘 르미르 연구자 원문 https://lemire.me/blog/2026/10/17/decoding-base64-in-python-at-10-gigabytes-per-second/ / fastpybase64 공식 GitHub 저장소 https://github.com/simdutf/fastpybase64 / fastpybase64 공식 PyPI 배포 페이지 https://pypi.org/project/fastpybase64/









