checker borrow rust
rust PBFT
PBFT(Practical Byzantine Fault Tolerance) PBFT(Practical Byzantine Fault Tolerance)算法是一种分布式共识算法,旨在解决拜占庭将军问题(Byzantine Generals Problem)。拜占庭将军问题是指在分布式系 ......
rust Unsurprising
Unsurprising(不意外) 最少意外原则 接口应尽可能直观(可预测,用户能猜对) 至少应该不让人感到惊奇 核心思想 贴近用户已经知道的东西(不必重学概念) 让接口可测试 命名实践 实现常用的 Traits 人体工程学(Ergonomic)Traits 包装类型(Wrapper Type) 命 ......
Rust 结构体的方法描述
Rust 结构体的方法描述 原文地址:https://rustwiki.org/zh-CN/rust-by-example/fn/methods.html Rust 的 方法(method)是依附于对象的函数。这些方法通过关键字 self 来访问对象中的数据和其他。方法在 impl 代码块中定义。 ......
rust async
async Send 和 Sync 在跨线程时需要关注 Send: ownership(所有权) 可以 send 到其他线程 A type is Send if it is safe to send it to another thread. Sync: 可以并发,无线程安全问题 A type is ......
rust p2p
p2p [+] Expand description p2p 简介 P2P:peer-to-peer(点对点) P2P 是一种网络技术,可以在不同的计算机之间共享各种计算资源,如 CPU、网络带宽和存储。 P2P 是当今用户在线共享文件(如音乐、图像和其他数字媒体)的一种非常常用的方法。 Bitto ......
22. 从零用Rust编写正反向代理,一个数据包的神奇HTTP历险记!
一个数据包在HTP的旅游中的畅游之旅,带你了解HTTPS/HTTP2,及反向代理处理,经历压缩限流等奇特的历险记。 ......
安装rust
https://blog.csdn.net/xiaojin21cen/article/details/129767672 使用rust语言碰到linker `link.exe` not found | = note: program not foundnote: the msvc targe 运行 ......
rust中使用zip crate解压.gz文件
添加所需的库到Cargo.toml文件中: zip = "0.6.6" 直接上代码, 都在酒里了. use std::fs::File; use std::io::{Read, Write}; use std::process::exit; use std::path::{Path, PathBuf ......
使用rust修改二进制文件
当需要修改一个二进制文件特定位的时候, 该如何实现呢? 其实只需要将文件以二进制的形式直接读进内存, 然后找到特定的位置直接进行修改就可以. use std::{fs::File, io::{Read, Write}}; fn main() { let mut binary_file = File: ......
21. 从零用Rust编写正反向代理,tokio竟然这样对待socket!
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子 项目地址 国内: https://gitee.com/tic ......
22_rust_自动化测试
编写自动化测试 编写和运行测试 一个测试就是一个函数,用于验证非测试代码的功能是否和预期一致。 测试函数体通常执行3个操作(3A): Arrange:准备数据/状态 Act:运行被测代码 Assert:断言结果 测试函数: 测试函数需要使用test属性(attribute)进行标注,Attribut ......
20. 从零用Rust编写正反向代理,四层反向代理stream(tcp与udp)实现
wmproxy wmproxy是由Rust编写,已实现http/https代理,socks5代理, 反向代理,静态文件服务器,内网穿透,配置热更新等, 后续将实现websocket代理等,同时会将实现过程分享出来, 感兴趣的可以一起造个轮子法 项目地址 gite: https://gitee.com ......
rust ui lib 跨平台ui框架
部分条目未更新,请自行到项目主页查看。 框架 Stars Issue 活跃程度 版本 Tauri Star Issue egui+bevy Issue Slint Issue Iced Dioxus GTK Flutter 框架 网页 手机 PC 嵌入式 额外语言 Tauri egui bevy S ......
rust 创建多线程web server
创建一个 http server,处理 http 请求。 创建一个单线程的 web 服务 web server 中主要的两个协议是 http 和 tcp。tcp 是底层协议,http 是构建在 tcp 之上的。 通过std::net库创建一个 tcp 连接的监听对象,监听地址为127.0.0.1:8 ......
使用Rust语言进行ioctl
首先需要引入nix库 官方crate地址为: https://crates.io/crates/nix 在里面可以查看文档和版本信息。 nix里面有个 nix::sys::ioctl 模块,类似于C标准库的 ioctl.h,用来进行ioctl操作。 使用方法: 修改 Cargo.toml [depe ......
photon rust 图像处理库
photon 是一个基于rust 开发的图像处理库,同时也支持基于WebAssembly的处理 参考nodejs 使用 添加依赖 { "name": "image-demo", "version": "1.0.0", "main": "index.js", "license": "MIT", "de ......
rust学习笔记第一篇
rust导览 包管理工具: cargo rust管理工具: rustup 一个代码示例及其注释: use std::str::FromStr; use std::env; // 函数定义规则 //类似于go rust的签名类型标记是后置的 fn gcd(mut n: u64, mut m: u64) ......
21_rust_生命周期
生命周期 生命周期应是rust语言最与众不同的概念。 rust的每个引用都有自己的生命周期。 生命周期:引用保持有效的作用域。 大多数情况:生命周期是隐式的、可被推断的。 当引用的生命周期可能以不同的方式相互关联时,需要手动标注生命周期。 生命周期存在的目的:避免悬垂引用(dangling refe ......
20_rust的Trait
Trait Trait告诉Rust编译器某些类型具有哪些并可与其它类型共享的功能。 Trait:抽象的定义共享行为。 Trait bounds(约束):泛型类型参数指定为实现了特定行为的类型。 Trait与其它语言的接口(interface)类似,但有些区别。 定义一个Trait Trait的定义: ......
esp32笔记[9]-rust的串口收发及GCODE解析
摘要 使用rust在no-std环境下实现esp32-c3串口收发及gcode解析. 平台信息 esp32c3 rust 超链接 esp32笔记[7]-使用rust+zig开发入门 使用rust实现串口中断 示例代码: serial_interrupts.rs //! This shows some ......
18_rust的泛型
提取函数消除重复代码 fn get_largest(list: &[i32]) -> i32 { let mut max_num = list[0]; for &i in list { if i > max_num { max_num = i; } } max_num } fn main() { l ......
Window 上 VS Code 无法编译Rust 文件的错误
Window 上 VS Code 无法编译Rust 文件的错误error: linker `link.exe` not found 在CMD中运行以下命令1. rustup toolchain install stable-x86_64-pc-windows-gnu2. rustup default ......
rust二进制程序运行报报错 libc.so version * not found
背景 在使用rust编译二进制程序后放在, 其他Linux主机运行时, 有时候因为,运行的主机的libc库版本低于编译机器上程序libc库版本. 导致程序运行会报错. 解决方案 网络上有的给出的结局方案是降低运行环境的libc库的版本. 这种方案显然是不可取的. 另一种解决方案是: 将依赖的libc ......
16_rust的字符串
rust的字符串 字符串简介 字符串:UTF-8格式,byte的集合,提供了一些解析byte为文本的方法。 rust的核心语言层面,只有一个字符串类型:字符串切片str(或&str)。 字符串切片:对存储在其他地方、UTF-8编码的字符串的引用 其中字符串字面值,存储在二进制文件中,也是字符串切片。 ......
15_rust的常用集合_vector
常用集合——vector 集合的数据存放在堆里,无需在编译时确定大小。 使用vector vector可存放多个值,Vec<T>叫做vector。 由标准库提供 可存储多个值 只能存储相同类型的数据 值在内存中连续存放 1)创建vector: 使用Vec::new函数 let v: Vec<i32> ......
17. 从零开始编写一个类nginx工具, Rust中一些功能的实现
`wmproxy`将用`Rust`实现`http/https`代理, `socks5`代理, 反向代理, 静态文件服务器,后续将实现`websocket`代理, 内外网穿透等, 会将实现过程分享出来, 感兴趣的可以一起造个轮子法, 一些实现类nginx可能在rust会碰到的问题,一起探讨下一些实现在... ......
wasm-pack 基于rust 的 WebAssembly 开发工具
目前基于WebAssembly的应用是越来越多了,同时周边工具以及生成也越来越强大了,wasm-pack 是rust 周边一个很强大的工具,以下是一个简单的试用 参考使用 安装 curl https://rustwasm.github.io/wasm-pack/installer/init.sh - ......
13_rust的模块系统,Package、Crate,定义Module,路径(Path)
rust的模块系统 代码组织包括:哪些细节对外暴露,哪些细节私有,作用域哪些名称有效等。 rust的模块系统: 最上层 Package(包):Cargo的特性,构建、测试、共享crate。 第二层 Crate(单元包):一个模块树,可产生一个Library或可执行文件。 第三层Module(模块)、 ......
esp32笔记[8]-rust的定时器中断点灯
摘要 使用rust开发esp32c3实现定时器中断点亮led灯. 超链接 esp32笔记[7]-使用rust+zig开发入门 平台信息 esp32c3 rust Mutex锁 use core::cell::RefCell; use critical_section::Mutex;//no-std库 ......