로컬에서 사용하려고 만든 크레이트를 다른 환경에서도 활용하고 싶었지만, 매번 파일을 옮긴는 과정이 번거로웠다. 그래서 크레이트를 Crates.io
에 배포하여 누구나 원격에서 쉽게 다운로드할 수 있도록 정리해보았다. 개인적으로 사용하려고 만든 크레이트를 누군가 필요할 수 있으려나? 라는 생각을 가지고 올리기도 하였다. ㅎㅎ
Crates.io에 크레이트를 배포하는 과정에 대해서 정리해보려고 한다.
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"]
위와 같이 작성하였다.
최신 수정 내용 및 버전을 설정 후 repository에 저장해준다.
https://github.com/wangki-kyu/windows_tts
라이센스를 추가해야한다.
Create new file을 누른다.
Choose a license template을 클릭해준다.
여기서 필요한 라이센스를 고른 후 추가해준다.
여기서 확인해야할 부분이 crate를 만들면서 사용한 외부 crate들의 license를 확인해야한다. windows
크레이트를 사용했기때문에 MIT OR Apache-2.0을 등록해주었다.
Windows Crate의 설명
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
위의 과정을 전부 에러없이 처리하였다면 아래 명령어를 입력하면 된다.
cargo publish --dry-run
실제 업로드는 하지 않고 패키지가 정상적으로 배포될 수 있는지 확인한다.
에러가 발생 시 에러메시지를 확인 후 수정하면 된다.
테스트 후 문제가 없다면 아래 명령어를 입력한다.
cargo publish
정상적으로 배포가 완료되었다면
cargo search 크레이트명
을 입력하여 확인하면 된다.
Crates.io
에 배포가 처음이라면 꽤 까다로울 수 있다. 조금이나마 도움이 되고자, 스스로 정리하고자 블로그를 작성했다.
windows_tts
라는 이름의 crate를 배포하였다. tts 기능을 편리하게 하나의 함수를 호출하여 사용할 수 있도록 만들었다. 누군가에게 라이브러리를 처음으로 제공하는 경험이었다.
무려 214명이나 다운로드해 주었다. 엄청 뿌듯하고 기뻤다.
추가적으로 크로스 플랫폼을 지원 및 다양한 기능을 추가하고 싶었다.
엄청난 기술이 아니더라도 사소한 아이디어를 공유하는 것이 누군가에게는 도움이 될 수 있다는 깨달음을 얻었다. 더 다양한 크레이트를 개발하여 배포하고 싶다.
https://crates.io/crates/windows_tts <- windows_tts 크레이트