当前位置: 首页 > news >正文

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

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

String类及其常用方法

文章目录 1.String类的特性与使用1.1 String类的特性1.2 String对象的创建方式1.3 String 的使用&#xff08;不同的拼接操作&#xff09; 2.String常用方法2.1 String的常用方法一2.2 String常用方法二2.3 String常用方法三 1.String类的特性与使用 1.1 String类的特性 Stri…...

1094. 拼车

说在前面 &#x1f388;不知道大家对于算法的学习是一个怎样的心态呢&#xff1f;为了面试还是因为兴趣&#xff1f;不管是出于什么原因&#xff0c;算法学习需要持续保持。 题目描述 车上最初有 capacity 个空座位。车 只能 向一个方向行驶&#xff08;也就是说&#xff0c;不…...

Docker进阶:深入了解容器数据卷

Docker进阶&#xff1a;深入了解容器数据卷 一、前言二、容器数据卷的作用三、容器数据卷的使用方法四、实战--使用docker部署前端项目&#xff08;数据卷挂载&#xff09;4.1 重要&#xff1a;准备工作&#xff0c;先在本地创建挂载目录4.2 启动一个临时的nginx容器&#xff0…...

升级版本彻底解决bootstrap-table-fixed-columns固定列后行对不齐问题

升级到bootstrap-table和bootstrap-table-fixed-columns版本都升级到v1.22.3版本以上&#xff0c;即可解决该问题 bootstrap-table&#xff1a;bootstrap-table/dist/bootstrap-table.min.css at develop wenzhixin/bootstrap-table GitHub bootstrap-table-fixed-columns&…...

打破边界:深入探索STUN在实现无缝NAT穿越和WebRTC通信中的核心作用

引言 STUN是一个网络协议&#xff0c;设计用于帮助在网络地址转换&#xff08;NAT&#xff09;后面的设备发现其公网地址和端口号。通过允许这些设备发现自己从外部看到的地址&#xff0c;STUN使得它们能够在NAT或防火墙背后建立端到端的通信&#xff0c;这对于VoIP、视频会议…...

浅谈 前端的动态绑定属性

目录 前言1. 基本知识2. Demo 前言 作为Java开发者&#xff0c;从开发转到全栈&#xff0c;前端好些细节都需要科普&#xff0c;这不就来个动态绑定属性 起因是这个&#xff1a; <uni-tr> <uni-td align"center" :rowspan"checkTypesCount 1"…...

Sklearn支持向量机

支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一种常用的分类算法&#xff0c;它可以用于解决二分类和多分类问题。在Python中&#xff0c;你可以使用Sklearn库来实现SVM。下面是一个简单的例子&#xff0c;展示了如何使用Sklearn进行SVM分类。 # 导入必要…...

【Lazy ORM】 小工具 acw 本地客户端 你负责点击页面,他负责输出代码

介绍 wu-smart-acw-client 简称acw-client&#xff0c;是一个基于Lazy ORM定制的客户端代码生成小工具 Lazy ORM 小工具 acw 本地客户端 你负责点击页面&#xff0c;他负责输出代码安装 <dependency><groupId>top.wu2020</groupId><artifactId>wu-sma…...

《详解:鸿蒙NEXT开发核心技术》

我们现在都知道鸿蒙作为一个国产的全栈自研系统&#xff0c;经过国家主推后。已经引起人们很大的关注&#xff0c;其中作为开发者来说&#xff1b;许多一线大厂已经与其华为鸿蒙展开原生应用的合作了&#xff0c;目前了解到已经有200家。而之后出现了很多的高薪鸿蒙开发岗位&am…...

快速排序 刷题笔记

思路 分治双指针 在每个区间选定一个基准目标 两个指针从数组的两边向中间推进 使用 while循环判断 do {i;}while(q[i]<x); do{j--;}while(q[j]>x); 每次这样做完就会找到q[i]>x,,,,q[j]小于x 此时我们交换 q[i] ,q[j]于是小于x的数分到了小于x的一侧 大…...

DAY by DAY 史上最全的Linux常用命令汇总----man

man是按照手册的章节号的顺序进行搜索的。 man设置了如下的功能键&#xff1a; 功能键 功能 空格键 显示手册页的下一屏 Enter键 一次滚动手册页的一行 b 回滚一屏 f 前滚一屏 q 退出man命令 h 列出所有功能键 /word 搜索word字符串 注意&#xff1a…...

十六、接口隔离原则、反射、依赖注入

接口隔离原则、反射、特性、依赖注入 接口隔离原则 客户端不应该依赖它不需要的接口&#xff1b;一个类对另一个类的依赖应该建立在最小的接口上。 五种原则当中的i 上一章中的接口&#xff0c;即契约。 契约就是在说两件事&#xff0c;甲方说自己不会多要&#xff0c;乙方会在…...

Docker 进阶

1、容器数据卷 什么是容器数据卷&#xff1f; 就是当容器内存在了mysql&#xff0c;在里面书写了数据&#xff0c;如果容器删除了&#xff0c;那么数据也就没有了&#xff0c;通过容器数据卷的技术&#xff0c;可以让容器内的数据持久化到Linux服务器上 操作 #docker run -…...

科研学习|论文解读——一种修正评分偏差并精细聚类中心的协同过滤推荐算法

知网链接 一种修正评分偏差并精细聚类中心的协同过滤推荐算法 - 中国知网 (cnki.net) 摘要 协同过滤作为国内外学者普遍关注的推荐算法之一&#xff0c;受评分失真和数据稀疏等问题影响&#xff0c;算法推荐效果不尽如人意。为解决上述问题&#xff0c;本文提出了一种改进的聚类…...

云计算项目十一:构建完整的日志分析平台

检查k8s集群环境&#xff0c;master主机操作&#xff0c;确定是ready 启动harbor [rootharbor ~]# cd /usr/local/harbor [rootharbor harbor]# /usr/local/bin/docker-compose up -d 检查head插件是否启动&#xff0c;如果没有&#xff0c;需要启动 [rootes-0001 ~]# system…...

2.经典项目-海量用户即使通讯系统

1.实现功能-完成注册用户 完成用户注册的步骤(客户端) 1.将User移动到common/message文件夹下 2.在message中新增注册用户的结构体 const (LoginMesType "LoginMes"LoginResMesType "LoginResMes"RegisterMesType "RegisterMes"…...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通标志识别系统详解(深度学习模型+UI界面代码+训练数据集)

摘要&#xff1a;本篇博客详细介绍了利用深度学习构建交通标志识别系统的过程&#xff0c;并提供了完整的实现代码。该系统采用了先进的YOLOv8算法&#xff0c;并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了性能评估对比&#xff0c;分析了性能指标如mAP、F1 Score等。文章深入探…...

VMware下创建虚拟机

Centos7是比较常用的一个Linux发行版本&#xff0c;在国内的使用比例比较高 安装完VMware一定要检查虚拟网卡有没有安装成功&#xff0c;如果没有VMnet1和VMnet8 虚拟机是无法上网的&#xff0c;就需要卸载重启电脑重新安装 控制面板—网络和Internet—网络连接 快捷方式打开&a…...

基于Ambari搭建大数据分析平台

一、部署工具简介 1. Hadoop生态系统 Hadoop big data ecosystem in Apache stack 2. Hadoop的发行版本 Hadoop的发行版除了Apache的开源版本之外&#xff0c;国外比较流行的还有&#xff1a;Cloudera发行版(CDH)、Hortonworks发行版&#xff08;HDP&#xff09;、MapR等&am…...

用Ai学习wxWidgets笔记——在 VS Code 中使用 CMake 搭建 wxWidgets 开发工程

声明&#xff1a;本文整理筛选Ai工具生成的内容辅助写作&#xff0c;仅供参考 >> 在 VS Code 中使用 CMake 搭建 wxWidgets 开发工程 下面是一步步指导如何在 VS Code 中配置 wxWidgets 开发环境&#xff0c;包括跨平台设置&#xff08;Windows 和 Linux&#xff09;。…...

Java Stream 高级实战:并行流、自定义收集器与性能优化

一、并行流深度实战&#xff1a;大规模数据处理的性能突破 1.1 并行流的核心应用场景 在电商用户行为分析场景中&#xff0c;需要对百万级用户日志数据进行实时统计。例如&#xff0c;计算某时段内活跃用户数&#xff08;访问次数≥3次的用户&#xff09;&#xff0c;传统循环…...

CppCon 2015 学习:Intro to the C++ Object Model

这段代码展示了使用 make 工具来编译 C 程序的简单过程。 代码和步骤解析&#xff1a; C 代码&#xff08;intro.cpp&#xff09;&#xff1a;#include <iostream> int main() { std::cout<<"hello world\n"; } 这是一个简单的 C 程序&#xff0c;它包…...

Sklearn 机器学习 缺失值处理 填充数据列的缺失值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 💡使用 Scikit-learn 处理数据缺失值的完整指南 在机器学习项目中,数据缺失是不可避…...

Houdini POP入门学习05 - 物理属性

接下来随着教程学习碰撞部分&#xff0c;当粒子较为复杂或者下载了一些粒子模板进行修改时&#xff0c;会遇到一些较奇怪问题&#xff0c;如粒子穿透等&#xff0c;这些问题实际上可以通过调节参数解决。 hip资源文件&#xff1a;https://download.csdn.net/download/grayrail…...

【EF Core】 EF Core并发控制:乐观锁与悲观锁的应用

文章目录 前言一、并发的风险二、EF Core中的并发控制方式2.1 开放式并发&#xff08;乐观锁&#xff09;2.1.1 应用程序管理的属性并发令牌2.1.2 数据库生成的并发令牌 2.2 悲观锁 总结 前言 实际的生产环境中&#xff0c;我们经常能遇到数据库由多个应用程序同时使用。每个程…...

GOOUUU ESP32-S3-CAM 果云科技开发板开发指南(一)(超详细!)Vscode+espidf 通过摄像头拍摄照片并存取到SD卡中,文末附源码

看到最近好玩的开源项目比较多&#xff0c;就想要学习一下esp32的开发&#xff0c;目前使用比较多的ide基本上是arduino、esp-idf和platformio&#xff0c;前者编译比较慢&#xff0c;后两者看到开源大佬的项目做的比较多&#xff0c;所以主要学习后两者。 本次使用的硬件是GO…...

Protobuf 中的类型查找规则

a.proto syntax "proto2"; //protoc3生成代码兼容proto2语法 package pkgA; message Example { }ba.proto package pkgB.pkgA; message Example { }b.proto syntax "proto3"; //protoc3生成代码兼容proto2语法 package pkgB; import "test1/a.pr…...

从上下文学习和微调看语言模型的泛化:一项对照研究

大型语言模型表现出令人兴奋的能力&#xff0c;但也可以从微调中表现出令人惊讶的狭窄泛化。例如&#xff0c;他们可能无法概括为简单的关系反转&#xff0c;或者无法根据训练信息进行简单的逻辑推理。这些未能从微调中概括出来的失败可能会阻碍这些模型的实际应用。另一方面&a…...

Go语言基础知识总结(超详细整理)

1. Go语言简介 Go语言&#xff08;又称Golang&#xff09;是Google于2009年发布的开源编程语言&#xff0c;具备简洁、高效、并发等特点&#xff0c;适合服务器开发、云计算、大数据等场景。 2. 环境安装与配置 下载地址&#xff1a;https://golang.org/dl/安装后配置环境变量…...