RUST 每日一省:发布到crates.io

2024-03-07 18:44
文章标签 rust 每日 发布 io 一省 crates

本文主要是介绍RUST 每日一省:发布到crates.io,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        github是开源代码分享的地方,rust的开源项目除了github,我们还可以将其发布到 crates.io 上,然后其它用户就可以使用cargo进行安装使用了。其实步骤很简单,只有三条命令了,我们一次来看一下。

        1、cargo package

        首先,让 Cargo 帮你打个包:

        cargo package 命令会创建一个文件(这里是 target/package/xq-derive-0.1.0.crate),其中包含库的所有源文件,以及 Cargo.toml。这个文件就是你要上传到 crates.io 与世界共享的(可以通过 cargo package --list 来查看其中包含什么文件)。Cargo 随后会基于这个 .crate 文件构建库,就像最终用户一样,以确保没有问题。

        你可能会遇到很多问题,比如:

error: all dependencies must have a version specified when packaging.

        这是要求你的项目里,引用的crate必须是在crates.io上的,不能是本地引用的例如这种——image = {path = "vendor/image"}。

warning: manifest has no description, license, license-file, documentation,

        这种是,Cargo 认为 Cargo.toml 中缺少一些对下游用户来说非常重要的信息,比如你的代码以什么许可来发布。警告信息中的 URL 是很好的参考资源,因此这里就不详细解释了。简单来说,只要在 Cargo.toml 中添加以下几行内容就可以消除警告:

[package]
name = "xq-derive"
version = "0.1.0"
edition = "2018"
authors = ["Kent Xu <xq-310@163.com>"]
description = "Used to write eDSL proc-macro ."
license = "MIT OR Apache-2.0"
homepage = "https://github.com/XuHugo/xq-derive"
repository = "https://github.com/XuHugo/xq-derive"
documentation = "https://github.com/XuHugo/xq-derive"

2、cargo login

        执行命令前,先登录到 crates.io 并取得 API 密钥。可以使用github账号直接登入,然后再个人的设置页面,找到API Tokens,生成新的Token;然后使用命令:

 cargo login abcdefghijklmnopqrstuvwxyz012345

该命令将告诉 Cargo 你的 API Token,然后将其存储在本地的 ~/.cargo/credentials.toml 文件中。注意这个 API 密钥就像密码一样要保密。所以要记住只在你自己控制的计算机中运行这个命令。

3、cargo pushlish

直接项目根目录下,执行 cargo publish,就可以了。

需要注意的是,由于平时网络问题,我都使用国内的源,所以需要再命令后添加 --registry crates-io.

这篇关于RUST 每日一省:发布到crates.io的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/784463

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

Rust 数据类型详解

《Rust数据类型详解》本文介绍了Rust编程语言中的标量类型和复合类型,标量类型包括整数、浮点数、布尔和字符,而复合类型则包括元组和数组,标量类型用于表示单个值,具有不同的表示和范围,本文介绍的非... 目录一、标量类型(Scalar Types)1. 整数类型(Integer Types)1.1 整数字

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

Rust中的Option枚举快速入门教程

《Rust中的Option枚举快速入门教程》Rust中的Option枚举用于表示可能不存在的值,提供了多种方法来处理这些值,避免了空指针异常,文章介绍了Option的定义、常见方法、使用场景以及注意事... 目录引言Option介绍Option的常见方法Option使用场景场景一:函数返回可能不存在的值场景

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧