Comprehensive Rust(简体中文) 202412编译器,可将 .rs 文件转换为二进制文件和其他中间格式。 • cargo:Rust 依赖项管理器和构建工具。Cargo 知道如何下载托管在 https://crates.io 上的依赖 项, 并在构建项目时将它们传递给 rustc。Cargo 还附带一个内置的测试运行程序,用于执行单元 测试。 • rustup:Rust 工具链安装和更新工具。当 Rust 发布新版本时,此工具用于安装并更新 rustc 请注意,不借助 cargo 直接使用编译器的情况相当少见(大多数用户从不这样做)。 – 值得一提的是,Cargo 本身就是一个功能强大且全面的工具。它能够实现许多高级功能,包括 但不限于: * 项目/软件包结构 * 工作区 * 开发依赖和运行时依赖管理/缓存 * 构建脚本 * 全局安装 * 它还可以使用子命令插件(例如 cargo clippy)进行扩展。 – 详情请参阅 官方 Cargo Book 使用 cargo check 快速检查项目是否存在错误;使用 cargo build 只进行编译,而不运行。你 可以在 target/debug/ 中找到常规调试 build 的输出。使用 cargo build --release 在 target/release/ 中生成经过优化的 发布 build。 7. 可以通过修改 Cargo.toml 为项目添加依赖项。当运行 cargo 命令时,系统会自动下载和编译缺0 码力 | 359 页 | 1.33 MB | 10 月前3
Rust 语言学习笔记的包管理系统中使用了大量的默认约定,很容易使人头昏脑乱。 而在开发中我们又必须建立模块层级系统,rust 给出了如下方案,在给出了一 些模块的最基本规则外,由开发者更大范围地自定义模块的存在。 首先在一个 rust 项目中,首先定义了 crate 和 module。 1.1 Crate 1.crate 编译后会形成一个库(例如.so)或二进制可执行文件。crate 分为两种: lib crate 和 bin 一个包可以带有零个或一个 lib crate 和任意多个 bin crate。一个包中必 须有 crate,至少一个,(lib crate 或 bin crate 都可以) 3.通常写 rust 项目时非常依赖 crate,很多重要的信息都是配置在 cargo.toml 文件中,不仅仅包括 lib 和 crate 的入口文件,后面还有很多的 attribute。 4.rust 对于 crate 官方参考了现有语言管理工具的优点,于是就产生了 cargo。主要是为了 减少复杂的项目管理配置参数。cargo 工具是官方正统出身。 在 cargo.toml 中不配置唯一的 lib crate 和 bin crate name 的话,会自动去 根据 package 进行命名。 约定的补充: cargo.toml 和 cargo.lock 文件总是位于项目根目录下。 源代码位于 src 目录下。 默认的库入口文件是0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust 程序设计语言简体中文版...................................................................... 138 7. 使用包、Crate 和模块管理不断增长的项目 ....................................................................... 141 7.1. 包和 Crate ....... 定义模块来控制作用域与私有性 .................................................................................. 144 7.3. 引用模块项目的路径 ............................................................................................... .................................................................................. 266 12. 一个 I/O 项目:构建命令行程序 ...................................................................................... 2720 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 7. 使用包、Crate 和模块管理不断增长的项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 12. 一个 I/O 项目:构建命令行程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 13.3. 改进之前的 I/O 项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 1 月前3
Comprehensive Rust(繁体中文)C++ 方法;手動繫結會需要手動編寫這類頂層的、可自由使用的函式 • 這項工具和程式庫可處理一組核心型別,例如: – &[T] 傳遞時可以跨越 FFI 邊界,但無法保證任何特定 ABI 或記憶體布局。使用手動繫結時, std::span/&[T] 必須從一個指標和長度去手動解構並重新建構。這麼做很容易出錯, 因為每種語言各以略微不同的方式表示空切片 – std::unique_ptr< allow_unsafe = true? 籠統的答案是根據一般 Rust 標準,任何 C/C++ 程式碼都不「安全」。從 Rust 來回呼叫 C/C++ 可能會對記 憶體執行任何作業,進而破壞 Rust 本身資料布局的安全性。在 C/C++ 互通性中如果出現「過多」unsafe 關鍵字,可能會傷害這類關鍵字的訊噪比,且具有爭議性,但嚴格來說,在 Rust 二進位檔中導入任何外來 程式碼,都可能對 Rust 造成非預期行為。 only used in tests. 舉例來說: [crate.my-new-crate] group = 'test' # only used in test code 視 Crate 原始碼布局而定,您可能也需要使用這個檔案指定其 ‘LICENSE 檔案的位置。 稍後我們會看到一些其他您需在這個檔案中設定的項目,才能解決問題。 46.3 下載 Crate gnrt 這項工具瞭解如何下載 0 码力 | 358 页 | 1.41 MB | 10 月前3
Comprehensive Rust(繁体中文) 202406C++ 方法;手動繫結會需要手動編寫這類頂層的、可自由使用的函式 • 這項工具和程式庫可處理一組核心型別,例如: – &[T] 傳遞時可以跨越 FFI 邊界,但無法保證任何特定 ABI 或記憶體布局。使用手動繫結時, std::span/&[T] 必須從一個指標和長度去手動解構並重新建構。這麼做很容易出錯, 因為每種語言各以略微不同的方式表示空切片 – std::unique_ptr< allow_unsafe = true? 籠統的答案是根據一般 Rust 標準,任何 C/C++ 程式碼都不「安全」。從 Rust 來回呼叫 C/C++ 可能會對記 憶體執行任何作業,進而破壞 Rust 本身資料布局的安全性。在 C/C++ 互通性中如果出現「過多」unsafe 關鍵字,可能會傷害這類關鍵字的訊噪比,且具有爭議性,但嚴格來說,在 Rust 二進位檔中導入任何外來 程式碼,都可能對 Rust 造成非預期行為。 only used in tests. 舉例來說: [crate.my-new-crate] group = 'test' # only used in test code 視 Crate 原始碼布局而定,您可能也需要使用這個檔案指定其 ‘LICENSE 檔案的位置。 稍後我們會看到一些其他您需在這個檔案中設定的項目,才能解決問題。 46.3 下載 Crate gnrt 這項工具瞭解如何下載 0 码力 | 356 页 | 1.41 MB | 1 年前3
刘用涛 CnosDB时序数据库的Rust实践Rust • 高性能:无 GC 实时控制 • 安全:内存安全 线程安全 • 表达能力强:支持范型,match 表达式 3. Rust 使用经验分享 3.1 内存布局 offset Integer Float Complex 0 Discriminator(0) Discriminator(1) Discriminator(2) 8 i64 f64 f640 码力 | 26 页 | 3.28 MB | 1 年前3
王宜国 - 基于 Rust 编程语⾔构建 Amphitheatre CLI Desktop Server 的全平台实践经验Controller 及资源操作 Operator (CRD Controller) Cluster CRD reconcile Reconcile Period (60s) Kubernetes 资源布局示意 kube-rs: Kubernetes 资源操作 使⽤⾃定义资源时,通过 kube-derive 的 proc_macros ⾃动⽣成代码。 得益于 Kubernetes 抽象的 CRUD0 码力 | 34 页 | 10.81 MB | 1 年前3
秘猿先锋-文愿-Axon 应用链框架的 Rust 开发实践Who am I ? 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 1. 应用链框架 互操作(Interoperability) 4. EVM 兼容 5. Rust What is Axon What is Axon 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 1. Mempool(交易池) 2. Consensus (Overlord) 3. P2P (Tentacle) 升级和改进 • 可扩展性 • 高性能 • 高并发 • 高可靠性 • 代码管理 • … 大型项目的开发难点 ■ 抽象 ■ 便于协作开发 ■ 易于测试 优点 Mempool Traits 实现 实现 测试代码 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 • 直接调用0 码力 | 32 页 | 3.63 MB | 1 年前3
硬件创业公司的Rust应用和转型 - 陈昱衡全自动脑立体定位仪(在研) 电机控制移动 传感器精度增到100nm 远程控制 自动运行 关注逻辑本身不用过分关心内存安全 嵌入式项目评估 Rust物联网不足 解决方案:屏幕上云 冷热板刺激仪 老项目评估 新项目评估 简单工期长,探索型项目优先选择Rust 糖水偏好仪 尾部打标机 已经立项 UI端Rust应用 UI 端 Rust 桌面端 平板端 嵌入式端0 码力 | 23 页 | 4.95 MB | 1 年前3
共 24 条
- 1
- 2
- 3













