【Rust】crates.ioでRust製CLIを公開した

thue 英語の曜日を日本語に変換する

2023年11月19日

RustでCLIを作成し、crates.ioで公開までやったので手順を忘備録として残しておきます。

作成したCLIはthueというもので、英語表記の曜日を日本語表記の曜日に変換するものです。自分がよくTuesdayとThursdayを間違えるので作成してみました。

thue - crates.io

Github

CLIを作成

Rust CLI working groupがチュートリアルを公開しているのでそちらを参考にしました。

Command Line Applications in Rust

CLIをcrates.ioで公開

こちらもありがたいことに丁寧に手順を紹介してくださっている方がいたので参考にさせていただきました。

crateをcrates.ioに公開してみる

詰まった点

基本的には上記を参考にサクサク進められたのですが、一点詰まったことがあったので残しておきます。

cargo publishすると以下のようなエラーが出ました。

error: api errors: wildcard (`*`) dependency constraints are not allowed on crates.io.

しかしCargo.tomlを見てもワイルドカードを使用しているようには見えません。その時のdependencies配下のようになっていました。

[dependencies]
clap = {verstion = "4.4.8", features = ["derive"]}

つまり、タイポです。versionがverstionになっています。

これでversionが指定されていない、つまりversion="*"のように判定されて上記のエラーになっていました。これで1時間くらい溶かしました…

たまたま同じissueを立てている人がいたので助かりました。本当にありがたいです。

Cargo publish throws a wildcard error #11198

感想

こんなに簡単にCLIが公開できてすごい!と思いました。

Homebrewで公開とかもチャレンジしたいです。

追記 しました:HomebrewでRust製CLIを公開した