위키득계정 ↗
기술

Maturin

Maturin기술
주요 대상
Rust 기반 Python 패키지
연계 바인딩
PyO3와 CFFI 및 UniFFI
주요 출력
Python wheel 등
개발 기능
가상 환경에 빌드 결과 설치
Maturin은 Rust 코드와 Python 바인딩을 Python 패키지로 빌드하는 도구다. 확장 모듈과 Rust 실행 파일을 wheel 등에 담고 개발용 가상 환경에 설치하는 흐름을 지원한다.

Rust 코드를 Python 배포로

Rust 크레이트를 작성하는 것과 Python에서 설치할 수 있는 패키지로 만드는 것은 서로 다른 작업이다. Maturin은 PyO3와 CFFI, UniFFI 바인딩을 사용하는 크레이트나 Rust 바이너리를 Python 패키지로 구성한다. Python 소스와 Rust 코드를 함께 둔 프로젝트도 다룰 수 있다.

빌드와 개발 설치 구분

빌드 명령은 wheel을 만들어 출력 디렉터리에 저장하지만 그 자체로 업로드하지는 않는다. 개발 명령은 현재 가상 환경에 모듈을 빌드해 설치하는 흐름이다. 개발 설치와 완성된 배포 파일을 통한 설치는 지원하는 동작 범위가 같지 않을 수 있으므로 실제 배포 산출물도 확인해야 한다.

두 생태계의 메타데이터

Cargo.toml과 pyproject.toml의 정보를 함께 활용하고 겹치는 메타데이터에는 pyproject.toml의 값을 우선한다. Python 의존성과 명령행 진입점도 정의할 수 있다. 배포 패키지 이름과 Python에서 가져오는 모듈 이름이 서로 다른 설정에서 결정될 수 있다는 점도 구분해서 살펴봐야 한다.

관련 문서

Meson-python / Scikit-build-core / Python Build / Twine / Cibuildwheel