4 个版本

0.1.3 2023年2月8日
0.1.2 2023年2月8日
0.1.1 2023年2月8日
0.1.0 2023年2月8日

#435 in Cargo 插件

自定义许可证

12KB
111

lrk

Crates.io Apache-2.0 licensed CI pre-commit

learn-rust 是一个包。一个 crate 是一个二进制文件或库。一个包可以有一个库 crate(lib.rs)和多个二进制 crate(main.rs,bin/*.rs,bin/*/main.rs)。(需要至少有一个库或二进制 crate。一个 workspace 可以包含多个包作为成员。)

cargo

https://doc.rust-lang.net.cn/stable/cargo/

配置

https://doc.rust-lang.net.cn/stable/cargo/reference/config.html https://doc.rust-lang.net.cn/stable/cargo/reference/environment-variables.html

将当前目录初始化为新项目

cargo init --bin # for binary(executable) crate
cargo init --lib # for library crate

可执行

cargo run
  • 多个可执行
    • 将除 main.rs 之外的其他二进制文件放在 src/bin 目录中。
    • src/main.rs
    • src/bin/another_executable.rs
    • src/bin/multi_files_executable/main.rs
    • 你可以在 Cargo.toml 中设置 default-run
      • 你应该将此值设置为不使用 --bin 选项执行 cargo run
cargo run --bin learn-rust # to run main.rs
cargo run --bin another_executable # to run bin/another_executable.rs
cargo run --bin multi_files_executable
# to run bin/multi_files_executable/main.rs
cargo run # = cargo run --bin learn-rust (when default-run = learn-rust)

在发布模式下进行优化

cargo run --release

添加另一个 crate

cargo new --lib another_crate

Cargo.lock 到 .gitignore?

https://doc.rust-lang.net.cn/cargo/guide/cargo-toml-vs-cargo-lock.html

  • 库层:是
  • 应用、端点层:否

参见文档

cargo doc --open

清理目标

cargo clean

检查简单的编译错误

cargo check

发布到 crates.io

https://doc.rust-lang.net.cn/cargo/reference/publishing.html

cargo login <token> # only once
cargo publish

格式化器

lint 工具

在 vscode 中

扩展

  • rust-analyzer
  • 更好的 toml
  • bash IDE
  • shell-format
  • markdownlint
  • gitlens
  • live server

依赖

~10KB