首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏程序语言交流

    Rust crate与模块

    8.1 crate Rust 程序由 crate(板条箱)组成。每个 crate 都是既完整又内聚的单元,包括单个库或可执行程序的所有源代码,以及任何相关的测试、示例、工具、配置和其他杂项。 Rust 承诺编译器将始终接受该语言的所有现存版本,并且程序可以自由混用以不同版本编写的 crate。2015 版的 crate 甚至可以依赖 2021 版的 crate。 如果把一个函数标记为 pub(crate),那么就意味着它可以在这个 crate 中的任何地方使用,但不会作为外部接口的一部分公开。 它不能被其他 crate 使用,也不会出现在这个 crate 的文档中。 关键字 super 和 crate 在路径中有着特殊的含义:super 指的是父模块,crate 指的是当前模块所在的 crate

    76010编辑于 2024-05-08
  • 来自专栏绿巨人专栏

    Workspace,Package, Crate 和 Module

    crate(木箱、箱子) crate 指的是 package 编译后的输出文件。以 Windows 为例,可能会产生 .exe 文件或者 .rlib 文件。 crate 有两种类型: executable(可执行的) 和 library(库)。 一个 package 可以包含 0 到 n 个 可执行的 crate,和 0 到 1 个 library。 workspace(工作空间) 通常,我们期望一个 package 只产生一个 crate(编译结果)。 当需要管理多个项目的时候,workspace 提供了一种更友好的方式。

    1.6K10发布于 2021-04-09
  • 来自专栏Rust语言学习交流

    Rust FFI 编程 - nix crate

    在其 lib.rs 文件中有如下代码: // Re-exported external crates pub extern crate libc; 它通过使用强制合法或安全的类型对 libc 库进行了一次封装

    1.9K20发布于 2020-05-14
  • 来自专栏Rust语言学习交流

    Rust FFI 编程 - libc crate

    我们在做 Rust 开发编译的时候,常常能在依赖列表中,看到 libc 这个 crate 的身影。我们一般不会直接依赖这个 crate,但是依赖的依赖(的依赖的依赖……)可能就会用到这个 crate。 总的来说,它是 Rust 生态中非常基础非常底层的一个 crate 了。 libc 是什么 libc 是对各平台的系统库的原始 FFI 绑定。 而 Rust 的 libc crate,不完全等价于 C 的 libc 库的封装。 因此,可以直接这样说,Rust libc crate 在 Windows 平台上的功能有限。在 Windows 平台上,建议使用 winapi 这个 crate 进行开发。 Deprecated since 1.8.0: these type aliases are no longer supported by the standard library, the libc crate

    3.3K21发布于 2020-04-26
  • 来自专栏程序员

    rust的package,crate,module

    crate crate是rust在编译时最小的单元。crate可以包含模块,模块可以定义在其他文件,然后和crate一起编译。 crate 有两种形式:二进制项和库。 crate库和其它编程语言中的library概念一致。 crate root 是一个源文件,Rust 编译器在crate根文件中寻找需要被编译的代码。 package中可以包含至多一个库 crate(library crate)。 package中可以包含任意多个二进制 crate(binary crate),但是必须至少包含一个 crate(无论是库的还是二进制的)。 这样通过以包名开头的路径,公有项就可以在二进制 crate 中使用。二进制 crate 就完全变成了同其它 外部 crate 一样的库 crate 的用户:它只能使用公有 API。

    90050编辑于 2023-04-06
  • 来自专栏菠萝上市没有

    Rust 过程宏之Syn(crate

    在编写过程宏时,经常需要对TokenStream 进行解析和处理。 而Syn库就是专门用于对TokenStream进行解析。

    3.6K30发布于 2021-06-21
  • Rust 纪元第 382 周最佳 crate:ibig 的实践,以及和 num crate 的比较

    Rust 纪元第 382 周,评出的周最佳 crate 是大数计算相关的 ibig。目前在 github 星星数量不足 50,还处于开发初期。 虽然以前的 Rust 开发中,大数计算方面使用的是 num crate 的 BigInt 和 BigUint,完全满足需求。但是查阅到 ibig 提供的基准测试,性能挺不错。 所以本文结合目前使用较广的大数计算 crate num,采用 2 种阶乘的不同实现方式,进行实践。尝试一下,看是否进行 crate 替换。 大数计算的概念,就不赘述。 我们设想一个 1000000000 甚至更大的阶乘,不使用大数计算相关 crate,显然是跑不起来的。下面,我们使用 num 和 ibig 进行测试和比较。 所以,目前所使用的 crate num 暂时还是不考虑替换了。

    55610编辑于 2022-06-30
  • 来自专栏旅途散记

    制作crate并发布到Crates.io

    准备 发布 crate 时, 一旦发布无法修改,无法覆盖, 因此要注意邮箱等一些个人信息 访问crates.io 的 帐号设定页面[1],生成Token 并在命令行 执行 cargo login your token 此命令将告诉 Cargo 你的 API 令牌, 并将其存储在本地 ~/.cargo/credentials crates.io 上crate的名字, 会采取先到先得的方式分配. ---- 用途的描述和用户可能在何种条款下使用该 crate 的 license 想要修正这个错误, 需要在 Cargo.toml 中引入这些信息. 描述通常是一两句话, 它会出现在 crate 的搜索结果中和 crate 页面里. ---- 英文版文档: Publishing a Crate to Crates.io[4] 中文版文档: 将 crate 发布到 Crates.io[5] 参考资料 [1] 帐号设定页面: https

    43210编辑于 2023-09-05
  • 来自专栏Rust入门笔记

    【Rust学习】13_package 和 crate

    crate 可以包含模块,并且这些模块可以使用 crate 编译的其他文件中定义,正如我们将在接下来的部分中看到的那样。crate 可以有两种形式:二进制 crate 或库 crate。 到目前为止,我们创建的所有 crate 都是二进制 crate。库 crate 没有 main 函数,它们不会编译为可执行文件。相反,它们定义了要与多个项目共享的功能。 例如,我们在猜谜游戏中使用的 rand crate 提供了生成随机数的功能。crate 根是 Rust 编译器从源文件开始,并构成了 crate 的根模块。 Cargo 实际上是一个包,其中包含您用于构建代码的命令行工具的二进制 crate。Cargo 包还包含二进制 crate 所依赖的库 crate。 一个包必须至少包含一个 crate,无论是库crate还是二进制 crate。让我们来看看创建 package 时会发生什么。

    29910编辑于 2024-11-18
  • 来自专栏Rust语言学习交流

    【大家的项目】Yet another algorithm crate written in Rust

    本人做为从数学系转过来做开发的程序员,没有主修过《算法和数据结构》,一直想找个时间补上这一课,趁这个阶段不忙,就动手了。

    51330发布于 2021-08-13
  • 来自专栏柒八九技术收纳盒

    Rust学习笔记之包、Crate和模块

    「一个包可以包含多个二进制 crate 项和一个可选的 crate 库」。伴随着包的增长,你可以将包中的部分代码提取出来,做成独立的 crate,这些 crate 则作为「外部依赖项」。 的 crate 根。 ❝路径有两种形式: 绝对路径absolute path从 crate 根部开始,以 crate 名或者字面量 crate 开头。 我们使用 cratecrate 根部开始就类似于在 shell 中使用 / 从文件系统根开始。 在这个例子中,crate 根文件是 src/lib.rs,这也同样适用于以 src/main.rs 为 crate 根文件的二进制 crate 项。

    1.2K10编辑于 2023-03-23
  • 来自专栏Rust语言学习交流

    【投稿】如何制作一个*-sys的crate

    而添加更加 high-level、更加 Rust 友好的接口则由 sys crate 的更高一级,wrapper crate 来做。 最好把你的 crate 名称包含 warning 和 error 中,因为你的 crate 最终很可能被淹没在别人项目中的几层依赖之下。 在外部测试(tests/ 目录)和其他 crate 中,请确保通过 extern crate <your lib>_sys; 引用。 如果你想让 crate 更易于使用,最好再出点力做第二个 crate,封装一些 higher-level 接口。 巴士指数 1 没人指望你能7x24(永远)地支持你的 crate。 当你把 crate 发布到 crate.io 后,可以要考虑邀请谁来作为 crate 的共同所有者。在 crate 的页面添加“管理所有者”,或者你可以添加你的 GitHub 团队。

    1.8K40发布于 2021-08-10
  • 来自专栏CSDNToQQCode

    Rust专项——包与Crate详解:理解项目组织结构

    Rust的包系统包括: 包(Package):包含Cargo.toml的目录,可以包含多个Crate Crate:编译单元,可以是库(library)或二进制(binary) 模块树:Crate内部的模块层次结构 依赖管理:使用Cargo管理外部依赖 本文将全面介绍Rust的包和Crate系统,包括: 包(Package)和Crate的概念 二进制Crate vs 库Crate Cargo.toml配置文件详解 # 库Crate的入口(可选) Package的特点: 包含一个 Cargo.toml 文件 可以包含一个或多个Crate 可以有多个二进制Crate,但只能有一个库Crate 由Cargo 两种类型的Crate: 二进制Crate(Binary Crate) 编译成可执行文件 必须有 main 函数作为入口 默认入口:src/main.rs 库Crate(Library Crate 模块系统与Crate的关系 7.1 Crate根 每个Crate都有一个根模块: 二进制Crate:src/main.rs 是根 库Crate:src/lib.rs 是根 7.2 模块树 Crate

    35310编辑于 2025-12-16
  • 来自专栏Rust语言学习交流

    【Rust 日报】2020-03-25 regex crate 的计划

    详情:https://github.com/bastion-rs/agnostik MEUSE: 私有的 Cargo crate 注册表 详情:https://github.com/mcorbin/meuse regex crate 的发展计划 详情:https://github.com/rust-lang/regex/issues/656

    58810发布于 2020-03-30
  • 来自专栏Rust语言学习交流

    【Rust日报】2022-10-03 Linus Torvalds: 回复 rust: add `kernel` crate

    Linus Torvalds: 回复 rust: add kernel crate 这是 inus Torvalds 关于 rust: add kernel crate 的一些回复.

    43710编辑于 2022-11-28
  • 构建基于 Rust 技术栈的 Graphql 服务(1)- 起步及 crate 选择

    前端主要 WEB 应用服务,使用到 crate 包括:tide、rhai、surf、graphql_client、handlebars-rust、cookie 等。 工具类 crate 安装 工程创建完成后,我们即可以进入开发环节了。开发中,一些工具类 crate 可以起到“善其事”的作用,我们需要先进行安装。 cargo-edit,包含 cargo add、cargo rm,以及 cargo upgrade,可以让我们方便地管理 crate。 好的,我们安装这 2 个 crate。 添加依赖 crate 接着,我们需要添加开发所需依赖项。依赖项的添加,我们不用一次性全部添加,我们根据开发需要,一步步添加。首先,从后端工程开始。

    83420编辑于 2022-06-30
  • 来自专栏Rust语言学习交流

    【Rust日报】2022-11-21 第三方crate评估指导

    第三方crate评估指导 相信很多人在选择crate的时候,都有自己对crate的评估标准,本文从下面十个方面给出评估指导: Licensing Maintainers Unsafe Auditing

    54360编辑于 2022-11-28
  • 来自专栏Rust语言学习交流

    Linux的层级架构与Rust的主要模块crate总结,值得转发收藏

    第二类,alloc crate 与堆分配值的内存分配相关的类型、函数和特征。 第三类,core crate 作为Rust标准库的基础。 由于较少直接用到core crate,所以本文不做过多介绍。 第四类,模块(标准库的其他crate) 是标准库的一部分,模块crate包括针对并发、I/O,文件系统、网络、异步I/O、错误处理等功能,以及与特定操作系统相关的函数,Rust的官网对std有专门的文档 下图展示了Rust标准库各个领域功能涉及到的具体std模块(如std::io、std::os等) 以下着重对第四类的主要 crate 做一介绍,并附上文档地址 Rust的并发控制相关模块 conurrency

    67620编辑于 2023-10-30
  • 基于 actix、async-graphql、rbatis 构建异步 Rust GraphQL 服务-起步及 crate 选择

    但这种新的解析特性,可能会导致一些 crate 编译不止一次。 工具类 crate 安装 工程创建完成后,我们即可以进入开发环节了。开发中,一些工具类 crate 可以起到“善其事”的作用,我们需要先进行安装。 cargo-edit,包含 cargo add、cargo rm,以及 cargo upgrade,可以让我们方便地管理 crate。 好的,我们安装这 2 个 crate。 虽然 Rust 的稳定性、安全性非常高,但活跃的社区导致 crate 的迭代版本很快。所以我们使用的都是最新版本的 crate,跟上 Rust 生态的最新潮流。

    1.9K10编辑于 2022-06-30
  • Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端 - 起步及 crate 选择

    /frontend-yew" ] yew 开发环境配置 工具类 crate yew 项目构建工具方面,目前成熟可用的主要有 rustwasm 官方开发和维护的 wasm-pack 以及 Anthony 因此笔者选择 trunk,安装其需要 wasm-bindgen-cli 工具 crate。 cargo install trunk wasm-bindgen-cli 依赖项 crate 我们目前仅是 yew 开发环境的初始配置,所以需要的依赖项 crate 仅为 yew 和 wasm-bindgen

    2.2K21编辑于 2022-09-01
领券