
Rust
文章平均质量分 71
Rust是一门系统编程语言 [1] ,专注于安全 [2] ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。
西京刀客
AI,Crypto/Web3.
A bug bounty hunting and a lot of coding is my passion!
展开
-
Rust语言-线程间的消息传递mpsc::Sender
CommitmentStateDiffWorker 结构体中包含一个用于发送 BlockDAData 类型消息的异步通道的发送端。两个发送者都是可克隆的 (multi-producer),因此许多线程可以同时发送到一个接收者 (single-consumer)。,你可以将其想象成一场直播,多个主播联合起来在搞一场直播,最终内容通过通道传输给屏幕前的我们,其中主播被称之为发送者,观众被称之为接收者,显而易见的是:一个通道应该支持多个发送者和接收者。的缩写,既:多发送者,单接收者。原创 2024-06-17 20:44:03 · 766 阅读 · 0 评论 -
rust之cargo install cargo-binstall 是什么
Binstall 提供了一种低复杂性的机制来安装 Rust 二进制文件,作为从源代码(通过 cargo install )构建或手动下载软件包的替代方案。这旨在与现有的 CI 工件和基础结构一起使用,并为包维护人员提供最小的开销。原创 2024-06-02 20:16:25 · 736 阅读 · 0 评论 -
Rust语言之属性宏(Attribute Macro)derive
属性宏是一种基于属性的宏,用于修改、扩展或注解 Rust 代码。它们通常用于为函数、结构体、枚举、模块等添加元数据或自定义行为。原创 2024-04-03 14:17:28 · 1275 阅读 · 0 评论 -
Rust语言:告诉编译器允许存在未使用的代码(Rust保留未使用的实现)
告诉编译器允许存在未使用的代码(Rust保留未使用的实现)原创 2024-03-20 13:27:04 · 784 阅读 · 0 评论 -
Rust常用库之序列化和反序列化库serde(使用 Serde 处理json)
serde(Serialization/Deserialization)是一个用于在 Rust 中进行序列化和反序列化的强大库。它允许您在不同的数据表示之间进行转换,如 JSON、Bincode、CBOR、MessagePack 等。原创 2024-03-20 09:12:10 · 1587 阅读 · 0 评论 -
Rust编程语言入门教程(三)-trait
trait 是 Rust 中的接口,它定义了类型使用这个接口的行为。你可以类比到自己熟悉的语言中理解,trait 对于 Rust 而言,相当于 interface 之于 Java。原创 2023-12-04 09:26:24 · 750 阅读 · 0 评论 -
Rust语言- Slice(切片)类型(&[u8])
slice是一个没有所有权的数据类型,其允许你引用集合中一段连续的元素序列,而不引用整个集合。原创 2022-07-25 23:15:00 · 3432 阅读 · 1 评论 -
Rust标准库-实现一个TCP服务、Rust使用套接字
Rust标准库 net模块 提供用于TCP / UDP通信的网络原语。该模块为传输控制和用户数据报协议以及 IP 和套接字地址的类型提供网络功能。原创 2022-07-25 00:15:00 · 3592 阅读 · 0 评论 -
solana上使用Rust进行合约开发
solana上使用Rust合约开发原创 2022-07-20 15:57:57 · 2223 阅读 · 0 评论 -
Rust语言- 元组 ( tuple )
有一种更简单的定义和使用结构体的方式:元组结构体。元组结构体是一种形式是元组的结构体。原创 2022-07-20 14:16:31 · 1150 阅读 · 0 评论 -
Rust中的关键字Some、Option
根据Rust本身的设计哲学, 建议在设计某个变量时, 如果预计该变量某时刻可能会是空值(null/None)的话, 那么尽量用Option/Result来包裹它, 反过来说, 只有你可以肯定该变量不可能为空值时, 才无须这么搞。原创 2022-07-15 22:00:00 · 8169 阅读 · 1 评论 -
WebAssembly运行时库(WASM runtime:wasmer 或 wasmtime)\将rust官方demo猜数字编译为WASI目标并使用Wasmer运行
WebAssembly运行时库(wasmer 或 wasmtime)将rust官方demo猜数字编译为WASI目标并使用Wasmer运行原创 2022-07-08 08:34:38 · 4524 阅读 · 2 评论 -
Rust Versus Go(哪种是我的首选语言?)
Medium 文章和 Reddit Rust 和 Go 论坛中似乎出现的一个大问题是,“哪个更好?” 这个问题真的没有答案,因为它是一个很主观的决定。几乎所有这些文章和帖子都以“视情况而定”结尾。但鉴于工程师更喜欢绝对的决策,这并不是一个令人满意的答案。所以一个更好的问题是,“你更喜欢哪一个?” **在各种场景中使用这两种语言后,我的默认首选语言是……Go。...原创 2022-07-06 22:45:00 · 777 阅读 · 4 评论 -
什么是WebAssembly(Wasm)?
文章目录WebAssembly是什么?WebAssembly和JavaScriptWebAssembly是什么?WASM是什么?带你了解WebAssembly的前世今生参考URL: http://www.mabiji.com/webassembly/wasm.htmlWebAssembly是什么?WebAssembly即WASM, WebAssembly是一种新的编码格式并且可以在浏览器中运行,WASM可以与JavaScript并存,WASM更类似一种低级的汇编语言。WebAssembly(又名w原创 2021-03-04 14:12:15 · 40803 阅读 · 3 评论 -
Rust使用国内Crates 源、 rustup源 |字节跳动新的 Rust 镜像源以及安装rust
Rust社区公开的第三方包都集中在crates.io网站上面,他们的文档被自动发布到doc.rs网站上。rustup 是一个命令行应用,能够下载并在不同版本的 Rust 工具链中进行切换。Rust开发时有时使用官方的源太慢,可以考虑更换使用国内的源。原创 2020-06-14 10:33:41 · 39801 阅读 · 5 评论 -
cargo项目构建和包管理工具(配置cargo国内源)、Cargo.toml配置项参数说明、cargo run运行项目
cargo官网: https://doc.rust-lang.org/cargo/index.htmlcargo,简单来说就是python 的pip,nodejs 的npm,rust下的包管理工具。Cargo用于组织Rust项目,比直接用rustc编译多个源文件更方便。原创 2020-06-14 12:09:17 · 19701 阅读 · 5 评论 -
Rust vs. Go:为什么他们在一起更好
虽然很多人可能认为 Rust 和 Go 是竞争激烈的编程语言,但 Rust 和 Go 团队都不这么认为。恰恰相反,我们的团队非常尊重其他人正在做的事情,并将这些语言视为对整个软件开发行业现代化共同愿景的补充。原创 2022-05-01 16:14:23 · 4220 阅读 · 0 评论 -
Rust编程语言入门教程(二)-核心概念(所有权(Ownership) 和生命周期)、变量声明(遍历数组)
Rust编程语言入门教程(二)-核心概念(所有权(Ownership) 和生命周期)、变量声明(遍历数组)原创 2021-12-15 10:19:02 · 3010 阅读 · 0 评论 -
Rust编程语言入门教程(一)-什么是Rust
Rust编程语言入门教程(一)什么是Rustrust 发展历史应用环境为什么选择Rust新项目用Rust还是Go?原创 2021-12-11 16:24:20 · 24656 阅读 · 6 评论 -
如何使用VSCode配置Rust开发环境(VS Code 安装 Rust 常用插件)
文章目录如何使用VSCode配置Rust开发环境VS Code 安装 Rust 常用插件常用rust相关插件总结插件:rust-analyzer关于 Rust语言服务器:Rust Language Server插件 rust syntax插件 cratesbetter tomlrust test lensTabnine试试用 Rust 写你的第一个 hello world 程序参考如何使用VSCode配置Rust开发环境VS Code 安装 Rust 常用插件打开 vs code 找到插件工具栏常原创 2021-11-25 18:53:06 · 39355 阅读 · 1 评论 -
Rust之&和&mut、mut
Rust之&和&mutRust中, mut 修饰的变量具有可变性let mut a = String::from("Hi");a.push('a');println!("{}", a);// 输出: Hiamut用于说明是否对应内存的值是否可以修改let a = & mut String::from("Hi");// 引用 可修改 堆上的一块内存// 综合起来:a 代表一个指向堆上的一块可修改的内存的引用// 即:a 是 "H转载 2021-08-31 21:26:08 · 1675 阅读 · 0 评论 -
Rust Crate 使用:clap (Rust命令行参数解析)
Rust命令行参数解析官网: https://clap.rs/github官网: https://github.com/clap-rs/clapclap是一个简单易用,功能强大的命令行参数解析库。它是一个易用,有效和全功能的库,用于在编写命令行,控制台或终端应用程序时解析命令行参数和子命令。clap在写一些CLI工具时非常有用,在ripgrep和Rust自己的Cargo都在使用,clap编译后非常小,而且加载启动非常快。clap会帮你处理命令行参数,可以自定义友好提示,支持函数式操作,非常方便。原创 2021-07-22 13:30:43 · 4422 阅读 · 0 评论 -
Rust语言- 匹配器 match
Rust语言- 匹配器 matchRust中的match表达式有些类似其他语言中的switch 和 case 语句,=>左边是需要匹配的模式,=>右边是待执行的代码。需要注意的是,match表达式必须枚举每一种可能,所以一般在结尾使用通配符"_"来代表其他情况。fn main(){ let tokyo = 1; let paris = 0; let chicago = 3; let changecun = 7; for i in [tokyo,pari原创 2021-07-18 15:57:13 · 1784 阅读 · 0 评论 -
Rust语言-枚举类型
Rust语言-枚举类型浅谈rust枚举(enum)参考URL: https://blog.csdn.net/weixin_44259356/article/details/104007741Rust 语言提供了 enum 关键字用于定义枚举。可以处理同一类的不同类型和数量的数据,就可以使用枚举类。借用下官方文档的例子:ip地址主要分为ipv4,和ipv6,如果是用java或者c++等面向对象的语言,我们首先应该创建一个类,类里应该有addr属性,用来存放地址,然后还应该有相应的get,set方法原创 2021-07-17 11:53:28 · 1019 阅读 · 0 评论 -
if a proxy or similar is necessary `net.git-fetch-with-cli`、 Rust编译`Couldn‘t resolve host name (Coul
linux rust下载依赖报错if a proxy or similar is necessary net.git-fetch-with-cli在cargo下创建configvi ~/.cargo/config1添加代理[http]proxy = "127.0.0.1:7891"[https]proxy = "127.0.0.1:7891"或者修改下载仓库[source.crates-io]registry = "https://github.com/rust-lang/crat原创 2021-07-17 11:05:48 · 2121 阅读 · 1 评论 -
window上运行rust报错 linker `link.exe` not found
window上运行rust报错 linker link.exe not found因为在Windows平台,rust编译程序需要vs c++编译工具。错误一般发生在使用rust的 rustc main.rs时,原因是在windows上没有安装visual studio 或C++ build tools本人下载Visual Studio 2017,安装了c++工作负载,亲测通过!官方下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/原创 2021-07-16 15:33:51 · 3197 阅读 · 0 评论 -
Rust Crate borsh包
Rust Crate borsh包官网:https://borsh.io/https://github.com/near/borsh-rs文档:https://docs.rs/borsh/0.9.1/borsh/index.html#borsh-rs是Borsh二进制序列化格式的Rust 实现。Borsh代表散列的二进制对象表示序列化器。 它意味着在安全关键项目中使用,因为它优先于一致性,安全,速度以及严格的规范。use borsh::{BorshSerialize, BorshDeserial原创 2021-07-15 16:03:29 · 545 阅读 · 0 评论 -
Rust use关键字
Rust use关键字Rust use关键字引用模块参考URL: https://www.yiibai.com/rust/rust-module-use-keyword.html在上面的场景中,看到函数调用非常冗长。 Rust中的use关键字缩短了调用函数的长度,使函数的模块在范围内。当调用模块的函数时,需要指定完整的路径。通过下面一个例子来理解这个概念:pub mod a { pub mod b { pub mod c { pub f原创 2021-07-15 14:53:37 · 652 阅读 · 0 评论 -
Ubuntu的build-essential(win10 wsl Ubuntu编译rust报错 error: linker `cc` not found)
文章目录Ubuntu的build-essentialwin10 wsl Ubuntu编译rust报错 error: linker `cc` not foundUbuntu的build-essentialUbuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。但是如果单独安装gcc以及g++比较麻烦,幸运的是,Ubuntu提供了一个build-essential软件包。安装了该软件包,编译c/c++所需要的软件包也都会被安装。因此如果想在Ubuntu中编译c/c++程序,只需要安装该原创 2021-06-11 18:02:45 · 1085 阅读 · 0 评论 -
Clion安装Rust开发环境
Clion安装Rust开发环境Rust 支持很多的集成开发环境(IDE)或开发专用的文本编辑器。官方网站公布支持的工具如下(https://www.rust-lang.org/zh-CN/tools)安装Rust (通过rustup安装)Rust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统,往往已经具备了 GCC 或 clang。如果你使用的是 macOS,需要安装 Xcode。如果你是用的是 Windows 操作系统原创 2021-06-10 09:54:42 · 4844 阅读 · 0 评论 -
Rust安装、VS Code 搭建 Rust 开发环境
文章目录安装 Rust用 rustup 管理工具链Cargo:Rust 的构建工具和包管理器Windows中的Rust安装VS Code 搭建 Rust 开发环境Hello World安装 Rust官网安装教程:https://www.rust-lang.org/zh-CN/tools/install用 rustup 管理工具链Rust 由工具 rustup 安装和管理。Rust 有着以 6 星期为周期的 快速版本迭代机制,支持 大量平台,因而不同时期存在大量不同的 Rust 构建版本。 rustu原创 2021-03-25 14:21:39 · 6676 阅读 · 0 评论 -
了解Rust语言(rust是什么)
文章目录RUST背景什么是rust什么是系统级编程语言Rust的版本号为什么选择RUSTRUST应用场景参考RUST官网:https://www.rust-lang.org/zh-CN/Rust编译器的源码:https://github.com/rust-lang/rust语言设计和相关讨论:https://github.com/rust-lang/rfcsRust标准库文档:https://doc.rust-lang.org/std/Rust官方管理仓库:https://crates.io/原创 2021-03-25 10:02:29 · 31388 阅读 · 3 评论