草庐IT

rust-tokio

全部标签

36. 干货系列从零用Rust编写负载均衡及代理,内网穿透中内网代理的实现

wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy项目设计目标HTTP转发HTTPS转发(证书在服务器,内网为HTTP)TCP转发(纯粹的TCP转发,保持原样的协议)PROXY转发(服务端接收数据,内网的客户端当成PROXY客户端,相当于逆向访问内

《Rust权威指南》读书笔记10 - 编写自动化测试

10-WritingAutomatedTests  测试是保障程序正确性的重要手段。功能上的漏洞不能直接被编译器检测和捕获,必须通过执行一些测试例并比较期望结果得出。手动编写测试用例是一个较为冗长繁琐的过程,Rust提供了一些自动化测试方法,能够标准化、高效化进行功能的自动测试。编写测试Rust中的测试是一个测试函数,用于验证目标代码是否能够按照期望的方式运行,并输出期望结果。测试函数函数体一般包含三个部分:准备所需的数据或状态调用需要测试的代码使用**断言assert**检验运行结果与期望输出是否一致测试函数Rust的测试函数是一个标注有test属性的函数。**属性(attribute)**

Celeste:Rust 开发的多云端开源 GUI 文件同步客户端

当谈到与云文件同步时,我们有 Insync、FreeFileSync 等选项,以及 rclone 等几个命令行工具。无论哪种情况,你也可以使用云存储提供商的同步客户端(如果他们有适用于Linux或任何其他平台的同步客户端)。但是,这并不是与多个云存储服务同步内容的最佳方式。Insync是一款付费工具,而FreeFileSync或rclone对于Linux新用户来说可能是一种难以接受的选择。。Celeste,一个简单的GUI同步客户端,支持多个云提供商。📋该应用正在积极开发中。目前它可能没有足够的功能和贡献者。欢迎你探索并帮助该项目。适用于Linux的基于Rust的同步客户端Celeste是一款

入门Rust的固定套路:错误处理模式有三大类,帮你总结了

最近在学习总结Rust的各种场景的语法模式,也就是Rust写代码的模式。今天分享关于Rust的错误处理的三大类语法模式。先列出一个大纲第一类:有意不处理错误,忽略错误unwrap().fn()?符号,代替rust早期版本中的try!宏第二类:对错误做自定义信息提示使用expect()。第三类:推荐!根据正确和错误情况分开处理,错误还可以进一步分流处理match(包括match处理Result或 match处理Option,或使用map_err())使用ifletSome(value)=fn(){}else{}使用特定的函数:and_then()和or_else()我对Rust的错误处理的印象R

【一起学Rust | 进阶篇 | thesaurus-rs库】Rust 的离线同义词库——thesaurus-rs

文章目录前言后端比较一、安装与引用1.使用WordNet后端2.使用moby后端3.build下载crate二、使用步骤1.获取命令行参数2.取到同义词补充3.输出结果4.运行效果5.完整代码总结前言thesaurus-rs是一个完全基于Rust实现的离线的同义词库,可以使用wordnet和moby词库作为后端(白鲸和词网)。显而易见,thesaurus-rs就是通过你给出的一个单词,然后给出这个单词的同义词,就类似于字典。后端比较名称简单示例二进制包大小简单示例二进制包大小(剥离)可用词平均同义词数压缩字典大小授权Moby15M11M3015983.28711MUSPublicDomainW

7. 从零用Rust编写正反向代理, HTTP及TCP内网穿透原理及运行篇

wmproxywmproxy是由Rust编写,已实现http/https代理,socks5代理,反向代理,静态文件服务器,内网穿透,配置热更新等,后续将实现websocket代理等,同时会将实现过程分享出来,感兴趣的可以一起造个轮子法项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy内网、公网内网:也叫做局域网,通常指单一的网络环境。例如你家里的路由器网络、网吧、公司网络、学校网络。网络大小不定,内网中的主机可以互联互通,但是越出这个局域网访问,就无法访问该网络中的

Go 与 Rust:现代编程语言的深度对比

在快速发展的软件开发领域中,选择合适的编程语言对项目的成功至关重要。Go和Rust是两种现代编程语言,它们都各自拥有一系列独特的特性和优势。本文旨在深入比较Go和Rust,从不同的角度分析这两种语言,包括性能、语言特性、生态系统、适用场景以及社区支持。语言概览Go语言设计哲学:Go由Google开发,以简洁、高效和易读性著称。它是一种静态类型、编译型语言,具有优秀的并发支持。主要特性:并发模型(Goroutines和Channels)、垃圾回收、简单的语法结构。应用场景:云计算平台、微服务架构、网络服务器、分布式系统。Rust语言设计哲学:Rust由Mozilla研究院开发,强调安全性、速度和

算法leetcode|92. 反转链表 II(rust重拳出击)

文章目录92.反转链表II:样例1:样例2:提示:进阶:分析:题解:rust:go:c++:python:java:92.反转链表II:给你单链表的头指针head和两个整数left和right,其中left。请你反转从位置left到位置right的链表节点,返回反转后的链表。样例1:输入: head=[1,2,3,4,5],left=2,right=4 输出: [1,4,3,2,5]样例2:输入: head=[5],left=1,right=1 输出: [5]提示:链表中节点数目为n1-5001进阶:你可以使用一趟扫描完成反转吗?将链表分成3部分,即前面不需要反转的部分,中间需要反转的

33. 干货系列从零用Rust编写正反向代理,关于HTTP客户端代理的源码实现

wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy客户端代理客户端代理常见的为http/https代理及socks代理,我们通常利用代理来隐藏客户端地址,或者通过代理来访问某些不可达的资源。定义类///客户端代理类#[derive(Debug,Cl

Rust UI开发(一):使用iced构建UI时,如何在界面显示中文字符

注:此文适合于对rust有一些了解的朋友iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 iced的基本逻辑是:UI交互产生消息message,message传递给后台的update,在这个函数中编写逻辑,然后通过View函数更新UI。Taketheresultofourviewlogicandlayoutitswidgets.获取视图逻辑的结果并布局其小部件。Processeventsfromoursystemandproducemessagesforourupdatelogic.处理来自系统的事件,并为我们的更新逻辑生成消息。Drawtheresultinguserin