Packages 和 Crates有什么区别呢?
很多语言有 Package 的概念,Rust 也有,除此之外,更常见的是 Crate。有一个常见的误解:packages 和 crates 是一样的。
1.关于Crate
一个 crate,类似 crate 中的模块,是一种代码组织的方式。
一个 crate,可以是一个二进制(可执行)或库。
一个 crate ,不会独立发布,而是作为 package 的成员发布。
编译器知道 crate 是什么,并使用 create 作为项目的命名空间。如果不在作用域内,你可以通过类似这样的调用 std::hash::Hash 定义自己的 trait。
2.关于Package
一个 package ,是至少一个 crate 的包装器。package 是可发布的。
一个 package ,可以包含 0 或 1 个库 create。
一个 package ,可以包含任意数量的二进制 create。
将 package 加入依赖时,意味着使用 package 中的一个 create。
当你使用 cargo run 或 cargo install 而指定具体的 crate 时,意味着执行 package 中的一个二进制 crate。
当 cargo run --bin 或 cargo install --bin 后跟一个 crate 名称时,意味着使用 package 中这个特定的 crate。
3.为什么会误解呢?
主要因 crates.io 导致的。虽然叫做 crates.io,实际上它是 packages 的仓库。你通过 crates.io 找到了某个库,会将 package 加入 Cargo.toml 依赖中,你不需要指定具体的 crate,因为 package 只能有一个库 crate。
现阶段,非凸科技正寻找行业内优秀的【Rust开发工程师】,薪资福利超级优厚。在平等、开放的环境里,等你和非凸一起并肩作战!飞速成长!欢迎加入!
职位描述:
1. 设计并开发高性能,低延时的算法交易系统,研发交易模型;
2. 设计并开发策略相关回测平台,并面向量化研究团队以及客户的实际需求,开发高可用的交易工具;
3. 设计并开发数据处理平台,参与交易结果分析,交易系统性能分析,进行相关数据清洗、整理及相关工作。
职位要求:
1. 拥有计算机科学、数学、统计学或者相关领域本科及以上学历,国内外一流大学优先;
2. 熟练掌握Linux操作,能熟练使用一种或多种编程语言(Rust/C++/Python/Go/Java)均可;
3. 具有分布式计算、自然语言处理、机器学习、平台开发、网络或者系统设计方面的经验;
4. 国内外计算机/数学/物理学竞赛奖项加分;
5. 对技术、软件开发和数学充满热情。
薪资福利:Base30k-60k+期权激励+年终奖+租房补贴3000元/月+各种福利
另外:我们也欢迎后端开发实习生同学,具体要求会稍微放宽一些。
期待您的加入!简历发送至:recruit@ft.tech
也欢迎加微信【sandy-luu】沟通
相关推荐
crates-updater:检查您的Rust包以获取更新
安装运行yarn global add crates-updater或npm i -g crates-updater 。用法Usage: crates-updater
stabworld:用于分析 Rust 生态系统如何使用该语言的工具
/dl-cargo-packages.py crates.io-index crates sources> ./
西门子 Simotion机械手解决方案介绍.zip
西门子 Simotion机械手解决方案介绍zip,Machinesfor the packing of individual packages in a collective package, for
dependabot-core
其核心职责包括但不限于:依赖清单文件的语法解析与语义建模、远程依赖源(如 Maven Central、PyPI、npmjs.org、crates.io)的元数据抓取与版本索引构建、语义化版本(SemVer
The Rust Programming Language_Rust_2018_Edition_Printed_Version_July_2019.pdf
"The Rust Programming Language (Rust 2018 Edition, July 2019) 是一本由 Steve Klabnik 和 Carol Nichols 合著


