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

Rust,linker but `link.exe` was not found

the msvc targets depend on the msvc linker but `link.exe` was not found 这是提示未安装vs studio c++组件,由于vsstudio组件较大,可以选择安装gnu的,具体如下: 命令行执行下边指令 rustup toolch ......
linker found Rust link but

rust笔记-变量

rust变量默认是不可变的,需要手动设置可变性。可变的变量给编程提供了灵活性,不可变的变量提供了安全性。而rust中需要根据实际场景来指定的变量类型。 变量声明 变量声明使用关键字 let,语法格式如下: let 变量名 = 值; 变量声明后,变量名可以被使用,但是值不能被修改。 这种方式申请的变量 ......
变量 笔记 rust

Rust: function

/** * file: nested.rs * * */ ///公有函数 pub fn function() { println!("called `my::nested::function()`"); } ///私有函数 #[allow(dead_code)] fn private_functio ......
function Rust