Rust

rust实战系列-base64编码

前言 某些只能使用ASCII字符的场景,往往需要传输非ASCII字符的数据,这时就需要一种编码可以将数据转换成ASCII字符,而base64编码就是其中一种。 编码原理很简单,将原始数据以3字节(24比特)为一组均分成4份,每部分6比特共64种组合,每种组合转换成对应字符,最后拼接起来即可。若最后一 ... »

rust 解决下载依赖卡住的问题

cd ~/.cargo 创建一个config文件,这里使用vim编辑器: vim config 进到编辑界面后,键入i,切换到插入模式 将下面的代码贴进去: [source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" replace-with = 'ustc' [source.ustc] registry »

Rust相比Go的优劣势

Rust相比Go的优势:   Rust可以做内联汇编,Go不行(Rust的SIMD库也在开发中,这种事情你不会用Go做)。     Rust有确定性析构,Go没有,只能whole-world-stop做GC。   Rust的接口(trait)可以静态派发,做zero-costabstraction,Go不行,它的interface只能靠反射做动态派发。   Rust没有运行时,可以写操作系统(我估 »

Rust格式化输出

打印操作由 https://doc.rust-lang.org/std/fmt/ 里面所定义的一系列宏来处理,包括: format!:将格式化文本写到字符串(String)。(译注:字符串是返 回值不是参数。) print!:与 format! 类似,但将文本输出到控制台(io::stdout)。 println!: 与 print! 类似,但输出结果追加一个换行符。 eprint!:与 form »

Rust: Cargo 使用本地 crate

参考链接:https://mozillazg.com/2017/10/rust-cargo-use-local-crate-package.html 默认在 Cargo.toml 中指定了包以后,Cargo build 的时候会从 crates.io 上下载远程的对应包代码。 本文将介绍如何在 Cargo.toml 中指定使用本地机器上某个目录下的包, 方便调试本地开发的包或者在没网的环境下开发和 »

Ubuntu下安装rust交叉编译环境

1. 安装RUST环境 # 参见网址 https://www.rust-lang.org/tools/installcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh选择1 默认安装即可   2. 修改cargo的config文件 # 路径为 ~/.cargo/config vim ~/.cargo/config # »

Rust 学习之基于 RefCell 的简单二叉树

作者:suhanyujie 来源:https://github.com/suhanyujie/rust-cookbook-note tags:Rust,binary-tree,Rc,RefCell tips:如有不当之处,还请指正~ 最近,在力扣平台刷题时,无意中刷到了一个关于二叉树的题目:二叉树的最小深度,打算使用 Rust 实现它。 不得不承认,我的思路有些死板。当我将该题的 proj »

InfoQ中文站特供稿件:Rust编程语言的核心部件

本文为InfoQ中文站特供稿件。首发地址为: http://www.infoq.com/cn/articles/rust-core-components 。如需转载。请与InfoQ中文站联系。 原文发表于2015年12月22日,现依据之前约定将其全文转发到我(Liigo)个人博客里。 Rust是一门强调安全、并发、高效的系统编程语言。无GC实现内存安全机制、无数据竞争的并发机制、无执行时开销的 »

Rust <4>:所有权、借用、切片

tips:栈内存分配大小固定,访问时不需要额外的寻址动作,故其速度快于堆内存分配与访问。   rust 所有权规则: 每一个值在任意时刻都有且只有唯一一个所有者 当所有者离开作用域时,这个值将被丢弃 所有权变更示例: fn main() { let mut zs0 = String::from(&quot;Hello &quot;); zs0.push_str(&quot;World!&quot;); / »

ustc FreeBSD / rust 镜像源

http://mirrors.ustc.edu.cn/help/   地址 https://mirrors.ustc.edu.cn/crates.io-index/ 说明 Rust Crates Registry 源 使用说明 在 $HOME/.cargo/config 中添加如下内容: [source.crates-io] replace-with = 'ustc' [s »

Rust <7>:数据结构==>链表

1 enum List { 2 Cons(u64, Box&amp;lt;List&amp;gt;), 3 NULL, 4 } 5 6 impl List { 7 fn new() -&amp;gt; List { 8 List::NULL 9 } 10 11 fn prepend(self, elem: u64) -&amp;gt; List { 12 »

Rust 异步编程,async await

     https://learnku.com/docs/async-book/2018/http_server_example/4789       //例子二 use futures::{ self, executor}; async fn learn_song() { println!(&quot;Learn song!&quot;); } async fn sing_song() { »

rust 安装添加代理

~/.cargo  目录下创建config 的文本文件 内容为 [source.crates-io]registry = &quot;https://github.com/rust-lang/crates.io-index&quot;replace-with = 'ustc'[source.ustc]registry = &quot;git://mirrors.ustc.edu.cn/crates.io-index&quot;   再添 »

Rust包和crate以及模块

  概念   crate 是一个二进制项或者库。crate root 是一个源文件,Rust 编译器以它为起始点,并构成你的 crate 的根模块(我们将在 “DefiningModules to Control Scope and Privacy” 一节深入解读)。包(package) 是提供一系列功能的一个或者多个 crate。一个包会包含有一个 Cargo.toml 文件,阐述如何去构建这些 »

grpc rust 项目基本使用

1. 安装依赖(rust 基本依赖就不说了,需要配置环境变量) protoc 参考: https://github.com/google/protobuf/releases/tag/v3.5.1 2. 参考项目 https://github.com/rongfengliang/grpc-rustdemo 3. 项目运行&amp;amp;&amp;amp;构建 a. 项目clone git clone »

Rust 中的 bin, lib, rlib, a, so 概念介绍

Rust 中的 bin, lib, rlib, a, so 概念介绍   写了这么久的 Rust 代码了,可能很多人还对 Rust 的编译后的文件格式不是很清晰。本篇我们就来理一下,Rust 中的 bin, lib, rlib, a, so 是什么,如何生成,以及其它一些细节。 从 cargo new 说起 我们创建一个新工程,通常从下面两句入手: cargo new foobar »

rust cargo 一些方便的三方cargo 子命令扩展

内容来自cargo 的github wiki,记录下,方便使用 可选的列表 cargo-audit - Audit Cargo.lock for crates with security vulnerabilities cargo-asm, cargo-llvm-ir - Shows generates assembly or LLVM IR of Rust code cargo-benc »

为什么要使用rust?

本文是 InfoQ 策划的语言专题其中的 Rust 篇。 Rust 是什么? Rust 是由 Mozilla 研究室主导开发的一门现代系统编程语言,自 2015 年 5 月发布 1.0 之后,一直以每 6 周一个小版本的开发进度稳定向前推进。语言设计上跟 C++ 一样强调零开销抽象和 RAII。拥有极小的运行时和高效的 C 绑定,使其运行效率与 C/C++ 一个级别,非常适合对性能要求较高的系统编 »