checker borrow rust

rust PBFT

PBFT(Practical Byzantine Fault Tolerance) PBFT(Practical Byzantine Fault Tolerance)算法是一种分布式共识算法,旨在解决拜占庭将军问题(Byzantine Generals Problem)。拜占庭将军问题是指在分布式系 ......
rust PBFT

rust Unsurprising

Unsurprising(不意外) 最少意外原则 接口应尽可能直观(可预测,用户能猜对) 至少应该不让人感到惊奇 核心思想 贴近用户已经知道的东西(不必重学概念) 让接口可测试 命名实践 实现常用的 Traits 人体工程学(Ergonomic)Traits 包装类型(Wrapper Type) 命 ......
Unsurprising rust

Rust 结构体的方法描述

Rust 结构体的方法描述 原文地址:https://rustwiki.org/zh-CN/rust-by-example/fn/methods.html Rust 的 方法(method)是依附于对象的函数。这些方法通过关键字 self 来访问对象中的数据和其他。方法在 impl 代码块中定义。 ......
结构 方法 Rust

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 ......
async rust

rust p2p

p2p [+] Expand description p2p 简介 P2P:peer-to-peer(点对点) P2P 是一种网络技术,可以在不同的计算机之间共享各种计算资源,如 CPU、网络带宽和存储。 P2P 是当今用户在线共享文件(如音乐、图像和其他数字媒体)的一种非常常用的方法。 Bitto ......
rust p2p p2 2p

22. 从零用Rust编写正反向代理,一个数据包的神奇HTTP历险记!

一个数据包在HTP的旅游中的畅游之旅,带你了解HTTPS/HTTP2,及反向代理处理,经历压缩限流等奇特的历险记。 ......
历险记 数据 Rust HTTP 22

安装rust

https://blog.csdn.net/xiaojin21cen/article/details/129767672 使用rust语言碰到linker `link.exe` not found | = note: program not foundnote: the msvc targe 运行 ......
rust

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 ......
文件 crate rust zip gz

使用rust修改二进制文件

当需要修改一个二进制文件特定位的时候, 该如何实现呢? 其实只需要将文件以二进制的形式直接读进内存, 然后找到特定的位置直接进行修改就可以. use std::{fs::File, io::{Read, Write}}; fn main() { let mut binary_file = File: ......
二进制 文件 rust

21. 从零用Rust编写正反向代理,tokio竟然这样对待socket!

wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子 项目地址 国内: https://gitee.com/tic ......
socket tokio Rust 21

22_rust_自动化测试

编写自动化测试 编写和运行测试 一个测试就是一个函数,用于验证非测试代码的功能是否和预期一致。 测试函数体通常执行3个操作(3A): Arrange:准备数据/状态 Act:运行被测代码 Assert:断言结果 测试函数: 测试函数需要使用test属性(attribute)进行标注,Attribut ......
rust 22

20. 从零用Rust编写正反向代理,四层反向代理stream(tcp与udp)实现

wmproxy wmproxy是由Rust编写,已实现http/https代理,socks5代理, 反向代理,静态文件服务器,内网穿透,配置热更新等, 后续将实现websocket代理等,同时会将实现过程分享出来, 感兴趣的可以一起造个轮子法 项目地址 gite: https://gitee.com ......
stream Rust tcp udp 20

rust ui lib 跨平台ui框架

部分条目未更新,请自行到项目主页查看。 框架 Stars Issue 活跃程度 版本 Tauri Star Issue egui+bevy Issue Slint Issue Iced Dioxus GTK Flutter 框架 网页 手机 PC 嵌入式 额外语言 Tauri egui bevy S ......
框架 rust lib ui

rust 创建多线程web server

创建一个 http server,处理 http 请求。 创建一个单线程的 web 服务 web server 中主要的两个协议是 http 和 tcp。tcp 是底层协议,http 是构建在 tcp 之上的。 通过std::net库创建一个 tcp 连接的监听对象,监听地址为127.0.0.1:8 ......
线程 server rust web

使用Rust语言进行ioctl

首先需要引入nix库 官方crate地址为: https://crates.io/crates/nix 在里面可以查看文档和版本信息。 nix里面有个 nix::sys::ioctl 模块,类似于C标准库的 ioctl.h,用来进行ioctl操作。 使用方法: 修改 Cargo.toml [depe ......
语言 ioctl Rust

photon rust 图像处理库

photon 是一个基于rust 开发的图像处理库,同时也支持基于WebAssembly的处理 参考nodejs 使用 添加依赖 { "name": "image-demo", "version": "1.0.0", "main": "index.js", "license": "MIT", "de ......
图像处理 图像 photon rust

rust学习笔记第一篇

rust导览 包管理工具: cargo rust管理工具: rustup 一个代码示例及其注释: use std::str::FromStr; use std::env; // 函数定义规则 //类似于go rust的签名类型标记是后置的 fn gcd(mut n: u64, mut m: u64) ......
笔记 rust

21_rust_生命周期

生命周期 生命周期应是rust语言最与众不同的概念。 rust的每个引用都有自己的生命周期。 生命周期:引用保持有效的作用域。 大多数情况:生命周期是隐式的、可被推断的。 当引用的生命周期可能以不同的方式相互关联时,需要手动标注生命周期。 生命周期存在的目的:避免悬垂引用(dangling refe ......
周期 生命 rust 21

20_rust的Trait

Trait Trait告诉Rust编译器某些类型具有哪些并可与其它类型共享的功能。 Trait:抽象的定义共享行为。 Trait bounds(约束):泛型类型参数指定为实现了特定行为的类型。 Trait与其它语言的接口(interface)类似,但有些区别。 定义一个Trait Trait的定义: ......
Trait rust 20

esp32笔记[9]-rust的串口收发及GCODE解析

摘要 使用rust在no-std环境下实现esp32-c3串口收发及gcode解析. 平台信息 esp32c3 rust 超链接 esp32笔记[7]-使用rust+zig开发入门 使用rust实现串口中断 示例代码: serial_interrupts.rs //! This shows some ......
串口 笔记 GCODE rust esp

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 ......
rust 18

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 ......
错误 文件 Window Code Rust

rust二进制程序运行报报错 libc.so version * not found

背景 在使用rust编译二进制程序后放在, 其他Linux主机运行时, 有时候因为,运行的主机的libc库版本低于编译机器上程序libc库版本. 导致程序运行会报错. 解决方案 网络上有的给出的结局方案是降低运行环境的libc库的版本. 这种方案显然是不可取的. 另一种解决方案是: 将依赖的libc ......
二进制 version 程序 found rust

16_rust的字符串

rust的字符串 字符串简介 字符串:UTF-8格式,byte的集合,提供了一些解析byte为文本的方法。 rust的核心语言层面,只有一个字符串类型:字符串切片str(或&str)。 字符串切片:对存储在其他地方、UTF-8编码的字符串的引用 其中字符串字面值,存储在二进制文件中,也是字符串切片。 ......
字符串 字符 rust 16

15_rust的常用集合_vector

常用集合——vector 集合的数据存放在堆里,无需在编译时确定大小。 使用vector vector可存放多个值,Vec<T>叫做vector。 由标准库提供 可存储多个值 只能存储相同类型的数据 值在内存中连续存放 1)创建vector: 使用Vec::new函数 let v: Vec<i32> ......
常用 vector rust 15

17. 从零开始编写一个类nginx工具, Rust中一些功能的实现

`wmproxy`将用`Rust`实现`http/https`代理, `socks5`代理, 反向代理, 静态文件服务器,后续将实现`websocket`代理, 内外网穿透等, 会将实现过程分享出来, 感兴趣的可以一起造个轮子法, 一些实现类nginx可能在rust会碰到的问题,一起探讨下一些实现在... ......
功能 工具 nginx Rust 17

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(模块)、 ......
路径 模块 Package Module 系统

esp32笔记[8]-rust的定时器中断点灯

摘要 使用rust开发esp32c3实现定时器中断点亮led灯. 超链接 esp32笔记[7]-使用rust+zig开发入门 平台信息 esp32c3 rust Mutex锁 use core::cell::RefCell; use critical_section::Mutex;//no-std库 ......
定时器 笔记 rust esp 32

esp32笔记[7]-使用rust+zig开发入门

摘要 使用rust(no-std)+zig⚡️开发esp32c3入门,测试例程,实现rust调用zig中的加法函数并通过串口打印. 平台信息 esp32c3 rust zig esp32c3简介 [https://docs.espressif.com/projects/esp-idf/zh_CN/l ......
笔记 rust esp zig 32