rust crate.io에 publish 하기

wangki·2025년 2월 3일
0

Rust

목록 보기
14/54

Crates.io에 크레이트 배포하기: 로컬에서 글로벌로

로컬에서 사용하려고 만든 크레이트를 다른 환경에서도 활용하고 싶었지만, 매번 파일을 옮긴는 과정이 번거로웠다. 그래서 크레이트를 Crates.io에 배포하여 누구나 원격에서 쉽게 다운로드할 수 있도록 정리해보았다. 개인적으로 사용하려고 만든 크레이트를 누군가 필요할 수 있으려나? 라는 생각을 가지고 올리기도 하였다. ㅎㅎ

Crates.io에 크레이트를 배포하는 과정에 대해서 정리해보려고 한다.

해결

1. package 작성하기

crates.io에 배포하고자 하는 크레이트의 cargo.toml[package]를 작성해야한다.

📌 Cargo.toml의 package 항목 설명
name : 크레이트의 고유한 이름
version : 버전, 버전이 없으면 패키지를 관리할 수 없음.
edition : Rust의 문법 및 기능을 결정하는 중요한 설정
license : Crates.io에 올리려면 반드시 라이선스를 지정해야 함.
description : Crates.io에서 검색 및 정보 제공을 위해 필요
authors : 작성자 필수는 아니지만, 일반적으로 포함하는 것이 좋음.
repository : GitHub 등 코드 저장소 링크를 제공하면 신뢰성을 높일 수 있음.
keywords : 검색 최적화를 위해 넣는 것이 좋음.
categories : Crates.io에서 적절한 분류를 원하면 추가하는 것이 좋음.

위와 같이 필요한 것들을 작성해준다.

[package]
name = "windows_tts"
version = "0.1.1"
edition = "2021"
authors = ["KIMWOOJUN <rladnwns625@naver.com>"]
description = "A simple text-to-speech (TTS) library for windows"
license = "MIT OR Apache-2.0"
repository = "https://github.com/wangki-kyu/windows_tts.git"
keywords = ["tts", "windows", "text-to-speech"]
categories = ["multimedia::audio"]

위와 같이 작성하였다.

2. github repository 저장

최신 수정 내용 및 버전을 설정 후 repository에 저장해준다.
https://github.com/wangki-kyu/windows_tts

라이센스를 추가해야한다.

Create new file을 누른다.

Choose a license template을 클릭해준다.

여기서 필요한 라이센스를 고른 후 추가해준다.

여기서 확인해야할 부분이 crate를 만들면서 사용한 외부 crate들의 license를 확인해야한다. windows 크레이트를 사용했기때문에 MIT OR Apache-2.0을 등록해주었다.

Crates.io 패키지 배포 과정

Windows Crate의 설명

3. crates.io 로그인 및 토큰 발행

https://crates.io/ 에 접속하여 로그인을 한다.

우측 상단의 프로필을 누른 후 Account Settings를 눌러준다.

User Email 인증을 진행한다.

우측 상단의 New Token을 클릭 후

필요한 정보를 입력하여 토큰을 생성해준다.
publish 이후 업데이트 하기위해서는 publish-update를 체크해주면 된다.

만들어진 토큰을 통해
Ternminal에서 아래 명령어를 입력해준다.

cargo login 토큰

Windows에서는 아래 명령어를 입력하게되면 로그인한 토큰 정보가 나온다.

type $env:USERPROFILE.cargo\credentials.toml

mac or linux는 아래와 같다.

cat ~/.cargo/credentials.toml

4. publish 하기

위의 과정을 전부 에러없이 처리하였다면 아래 명령어를 입력하면 된다.

cargo publish --dry-run

실제 업로드는 하지 않고 패키지가 정상적으로 배포될 수 있는지 확인한다.
에러가 발생 시 에러메시지를 확인 후 수정하면 된다.

테스트 후 문제가 없다면 아래 명령어를 입력한다.

cargo publish

정상적으로 배포가 완료되었다면

cargo search 크레이트명

을 입력하여 확인하면 된다.

결론

Crates.io에 배포가 처음이라면 꽤 까다로울 수 있다. 조금이나마 도움이 되고자, 스스로 정리하고자 블로그를 작성했다.

windows_tts라는 이름의 crate를 배포하였다. tts 기능을 편리하게 하나의 함수를 호출하여 사용할 수 있도록 만들었다. 누군가에게 라이브러리를 처음으로 제공하는 경험이었다.

무려 214명이나 다운로드해 주었다. 엄청 뿌듯하고 기뻤다.
추가적으로 크로스 플랫폼을 지원 및 다양한 기능을 추가하고 싶었다.
엄청난 기술이 아니더라도 사소한 아이디어를 공유하는 것이 누군가에게는 도움이 될 수 있다는 깨달음을 얻었다. 더 다양한 크레이트를 개발하여 배포하고 싶다.

https://crates.io/crates/windows_tts <- windows_tts 크레이트

0개의 댓글