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

news2025/1/14 1:12:04

        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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1497183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Navicat连接阿里云服务器上的MySQL数据库

打开navicat&#xff0c;连接如下&#xff1a; 服务器的默认密码是 root 连接时出现 使用 ls 查找 /etc/my.cnf ls /etc/my.cnf 用vi打开my.cnf&#xff1a; vi /etc/my.cnf看看是否有绑定本地回环地址的配置&#xff0c;如果有&#xff0c;注释掉下面这段文字&#xff1a;…

GitHub Desktop的常用操作【图形化】

文章目录 【1】仓库的创建和删除【2】文件操作【3】分支原理与分支操作1.分支创建2.分支合并 【4】标签 【1】仓库的创建和删除 在本地创建一个新的仓库&#xff1a; 然后输入仓库的名称&#xff0c;描述&#xff0c;并选择路径&#xff1a; 点击完后就发现我们的仓库创建好…

Anaconda的使用及spyder相关设置

Anaconda Anaconda是一个Python发行版&#xff0c;主要用于数据科学和机器学习领域。Anaconda集成了许多常用的数据科学工具和库&#xff0c;如NumPy、Pandas、Scikit-learn等&#xff0c;同时还包含了一个强大的包管理器conda和一个集成开发环境Spyder。Anaconda的目标是提供一…

鼠标光标选取文本、获取文本索引

1.效果图 这是在做一个字段分割的需求 2.思路 步骤一&#xff1a;通过document添加mouseup事件&#xff1b; 步骤二&#xff1a;通过window的getSelection()函数获取文本值&#xff1b; 步骤三&#xff1a;通过mouseup事件的event 类名来限制可截取元素的范围&#xff1b;…

论文解读:Meta-Baseline: Exploring Simple Meta-Learning for Few-Shot Learning

文章汇总 总体问题 通过对整体分类的训练(文章结构图中ClassifierBaseline)&#xff0c;即在整个标签集上进行分类&#xff0c;它可以得到与许多元学习算法相当甚至更好的嵌入。这两种工作之间的界限尚未得到充分的探索&#xff0c;元学习在少样本学习中的有效性仍然不清楚。…

【CSP】201403-3-命令行选项

CSP-201403-3-命令行选项 关键点&#xff1a;将整行字符串按空格分割 在解析命令行时&#xff0c;一个常见的需求是将整个命令行字符串分割成多个部分&#xff0c;通常以空格为分隔符。这些部分包括命令行工具的名称、选项&#xff08;可能带有前缀-或--&#xff09;和这些选项…

【Simulink系列】——控制系统仿真基础

声明&#xff1a;本系列博客参考有关专业书籍&#xff0c;截图均为自己实操&#xff0c;仅供交流学习&#xff01; 一、控制系统基本概念 这里就不再介绍类似于开环系统、闭环系统等基本概念了&#xff01; 1、数学模型 控制系统的数学模型是指动态数学模型&#xff0c;大致…

CGAL 5.6.1 - Algebraic Foundations

1. 引言 CGAL 的目标是精确计算非线性对象&#xff0c;特别是定义在代数曲线和曲面上的对象。因此&#xff0c;表示多项式、代数扩展和有限域的类型在相关的实现中扮演着更加重要的角色。为了跟上这些变化&#xff0c;我们引入了这个软件包。由于引入的框架必须特别支持多项式…

基于云效构建部署Springboot项目到ACK

介绍 为了提高项目迭代的速度加速交付产品给客户&#xff0c;我们通常会选择CICD工具来减少人力投入产生的成本&#xff0c;开源的工具比如有成熟的Jenkins&#xff0c;但是本文讲的是阿里云提高的解决方案云效平台&#xff0c;通过配置流水线的形式实现项目的快速部署到服务器…

PostgreSQL开发与实战(6.2)体系结构2

作者&#xff1a;太阳 二、逻辑架构 graph TD A[database] -->B(schema) B -->C[表] B -->D[视图] B -->E[触发器] C -->F[索引] tablespace 三、内存结构 Postgres内存结构主要分为 共享内存 与 本地内存 两部分。共享内存为所有的 background process提供内…

【Python】5. 基础语法(3) -- 函数篇

函数 函数是什么 编程中的函数和数学中的函数有一定的相似之处. 数学上的函数, 比如 y sin x , x 取不同的值, y 就会得到不同的结果. 编程中的函数, 是一段可以被重复使用的代码片段 . # 代码示例: 求数列的和 # 1. 求 1 - 100 的和 sum 0 for i in range(1, 101):sum i…

Debian篇——系统安装在SD卡上如何调整系统分区大小

背景&#xff1a;我的SD卡是128G的&#xff0c;开发商安装好系统后&#xff0c;我发现SD的系统分区才8.9G空间&#xff08;剩下的108G未分区&#xff09;&#xff0c;不够使用&#xff0c;于是需要调整系统分区的大小。 1.查看系统盘挂载情况 df -h 2.查看系统盘在哪个分区 …

Windows系统搭建VisualSVN并结合内网穿透实现远程访问本地服务

文章目录 前言1. VisualSVN安装与配置2. VisualSVN Server管理界面配置3. 安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4. 固定公网地址访问 前言 SVN 是 subversion 的缩写&#xff0c;是一个开放源代码的版本控制系统…

如何在Win系统部署Tomcat服务并实现远程访问内网站点

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学…

基于梯度提升树实现波士顿房价预测

基于梯度提升树实现波士顿房价预测 将波士顿房价数据集拆分成训练集和测试集&#xff0c;搭建gbdt_1、gbdt_2和gbdt_3三个梯度提升树模型&#xff0c;分布设置超参数n_estimators为50、100、150。各自对训练集进行训练&#xff0c;然后分别对训练集和测试集进行预测。输出以下…

力扣新思路:改变字符串进行返回操作

我们在对字符串进行判断操作和返回操作时&#xff0c;可以增加\0来简化返回操作 char* longestCommonPrefix(char** strs, int strsSize) {if(strsSize0){return"";}for(int i0;i<strlen(strs[0]);i){for(int j1;j<strsSize;j){if(strs[0][i]!strs[j][i]) {s…

掀桌子了!20万左右的混动SUV,千万别乱选

文 | AUTO芯球 作者 | 雷歌 又掀桌子了&#xff01; 比亚迪秦PLUS掀翻了混动轿车圈的桌子后&#xff0c;又来掀混动SUV的桌子了。 而且掀桌子的还不只一家&#xff0c;比亚迪掀完奇瑞掀。 比亚迪唐DM-i以17.98万起售的价格&#xff0c;掀掉了中型混动SUV的桌子&#xff0c;…

springboot247人事管理系统

人事管理系统的设计与实现 摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;问卷信息因为其管理内容繁杂&#xff0c;管理数量繁多导…

美团面试拷打:Redis 缓存穿透、缓存击穿、缓存雪崩区别和解决方案

目录&#xff1a; 缓存穿透 什么是缓存穿透&#xff1f; 缓存穿透说简单点就是大量请求的 key 是不合理的&#xff0c;根本不存在于缓存中&#xff0c;也不存在于数据库中 。这就导致这些请求直接到了数据库上&#xff0c;根本没有经过缓存这一层&#xff0c;对数据库造成了巨…

okHttp MediaType MIME格式详解

一、介绍 我们在做数据上传时&#xff0c;经常会用到Okhttp的开源库&#xff0c;okhttp开源库也遵循html提交的MIME数据格式。 所以我们经常会看到applicaiton/json这样的格式在传。 但是如果涉及到其他文件等就需要详细的数据格式&#xff0c;否则服务端无法解析 二、okHt…