草庐IT

rust-tokio

全部标签

40. 干货系列从零用Rust编写负载均衡及代理,websocket的实现

wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy简单介绍websocketWebSocket是一种在单个TCP连接上进行全双工通信的协议,它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。WebSocket通信协议于

Rust 使用包、Crate 和模块管理不断增长的项目

目录包和Crate定义模块来控制作用域与私有性在模块中对相关代码进行分组引用模块项目的路径使用pub关键字暴露路径二进制和库crate包的最佳实践super开始的相对路径创建公有的结构体和枚举使用use关键字将路径引入作用域创建惯用的use路径.使用use引入函数使用use引入结构体、枚举和其他项使用use的例外用法使用as关键字提供新的名称使用pubuse重导出名称使用外部包嵌套路径来消除大量的use行通过glob运算符将所有的公有定义引入作用域将模块拆分成多个文件另一种文件路径本文在原文有删减,原文参考使用包、Crate和模块管理不断增长的项目。Rust有许多功能可以管理代码的组织,包括:

Rust 使用包、Crate 和模块管理不断增长的项目

目录包和Crate定义模块来控制作用域与私有性在模块中对相关代码进行分组引用模块项目的路径使用pub关键字暴露路径二进制和库crate包的最佳实践super开始的相对路径创建公有的结构体和枚举使用use关键字将路径引入作用域创建惯用的use路径.使用use引入函数使用use引入结构体、枚举和其他项使用use的例外用法使用as关键字提供新的名称使用pubuse重导出名称使用外部包嵌套路径来消除大量的use行通过glob运算符将所有的公有定义引入作用域将模块拆分成多个文件另一种文件路径本文在原文有删减,原文参考使用包、Crate和模块管理不断增长的项目。Rust有许多功能可以管理代码的组织,包括:

2024三掌柜赠书活动第三期:Rust系统编程

目录前言Rust语言概念关于《Rust系统编程》Rust系统编程的核心点Rust系统编程的关键技术和工具编辑推荐内容简介作者简介图书目录书中前言/序言《Rust系统编程》全书速览结束语前言在技术圈,最近的编程语言新秀当属Rust莫属,Rust是一种现代化的系统编程语言,具有强大的性能、内存安全和并发性,它旨在提供高效的低级控制和抽象,使开发人员能够编写高性能、可靠且安全的系统级应用程序。据悉在StackOverflow的年度开发者调查报告中,Rust连续多年被评为“最受喜爱的编程语言”,越来越多的大公司如谷歌、微软、腾讯等都开始将Rust运用于各类项目中。本文就来简单聊聊Rust系统编程的基本

40. 干货系列从零用Rust编写负载均衡及代理,websocket的实现

wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy简单介绍websocketWebSocket是一种在单个TCP连接上进行全双工通信的协议,它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。WebSocket通信协议于

Rust 常用集合(上)

目录1、使用Vector储存列表1.1 新建vector1.2 更新vector1.3 读取vector的元素1.4 遍历vector中的元素1.5 使用枚举来储存多种类型1.6 丢弃vector时也会丢弃其所有元素2、使用字符串储存UTF-8编码的文本2.1 什么是字符串?2.2 新建字符串2.3 更新字符串2.3.1 使用push_str和push附加字符串2.3.2 使用+运算符或format!宏拼接字符串2.3.3 索引字符串2.3.4 字符串slice2.3.5 遍历字符串的方法2.3.6 字符串并不简单Rust标准库中包含一系列被称为 集合(collections)的非常有用的数据

生态系统:有哪些常有的Rust库可以为我所用?

大家好!我是lincyang。今天我们将探索Rust生态系统中的一些常用库。Rust的生态系统日益成熟,拥有丰富的库和框架,支持从Web服务到嵌入式开发的各种应用。我们将从不同的开发领域出发,来看看哪些Rust库可以为我们所用。基础库serde:一种用于序列化和反序列化Rust数据结构的框架。几乎是Rust中处理JSON、XML等格式的标准选择。rand:提供随机数生成功能。在进行测试或需要随机数据时非常有用。log:一个提供日志记录功能的简单日志记录宏的集合。它允许库用户选择自己的日志记录实现。regex:用于Rust的正则表达式库,提供高性能和安全的正则表达式处理。Web和Web服务开发R

有了GPT+Copilot,学习 Rust 直接起飞

大家好,我是渔夫。Rust前中期学习曲线会更陡峭一些,但是今天咱们有了AI辅助,学任何编程语言,似乎也没那么难了,不懂就往GPT去问,至少前期你会很快解决掉问题的。比如,我想读一个CSV文件,直接上GPT去咨询。它连csv里面的内容都给你生成了,这效率真高啊。首先,我们来添加外部包:使用csv和serde包。这些包可以通过在你的Cargo.toml文件中添加它们来引入。也可以选择,命令行添加:cargoaddserde--featuresderivecargoaddcsvcargoaddserde--featuresderive添加后,我们尝试遍历这个文件是否真的存在数据。代码如下:usecs

Rust编程基础核心之所有权

什么是所有权?Rust的核心功能(之一)是 所有权(ownership)。虽然该功能很容易解释,但它对语言的其他部分有着深刻的影响。所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的内存,例如:Java、Go;在另一些语言中,程序员必须亲自分配和释放内存,例如:C、C++。Rust则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规则,程序都不能编译。在运行时,所有权系统的任何功能都不会减慢程序。因为所有权对很多程序员来说都是一个新概念,需要一些时间来适应。随着你对Rust和所有权

Rust 拖慢开发速度,刚来实习生被折磨哭了

大家好,我叫渔夫。Rust如果你掌握了,开发速度也是惊人的,如还不够熟悉基本概念、特性、标准库等使用,那么写Rust无疑就是和编辑器做斗争的,前期非常痛苦,还好现在的IDE非常智能。今天,我们来一起看这个非常实用的Trait。DropDrop 的作用就是释放实现者的实例拥有的资源,意思是当一个值的拥有者消失的时候,Rust会丢弃这个值,通常用于资源清理。实际中,比如关闭文件、网络连接或释放内存等等场景。例子:structFileResource{}implDropforFileResource{fndrop(&mutself){println!("FileResource被销毁,资源被释放。"