草庐IT

rust-tokio

全部标签

2311rust无畏并发.

原文Rust无畏并发Rust是为了解决两个麻烦问题:1,如何安全系统编程2,如何无畏并发最初,这些问题似乎是无关的,但令惊讶的是,方法竟然是相同的:使Rust安全的相同工具也可帮助解决并发问题.内存安全和并发错误,一般认为是代码在不应访问数据时访问数据.Rust依靠所有权为你静态检查.对内存安全,即可在无垃集时编程,也不必担心段错误,因为Rust会发现你的错误.对并发性,即可从(传递消息,共享状态,无锁,纯函数式)中选择,而Rust帮助你避免常见的陷阱.以下是Rust中的并发性:1,通道转移了发送消息的所有权,因此可从一个线程发送指针到另一个线程,而不必担心线程竞争.Rust通道强制隔离线程.

rust变量绑定、拷贝、转移、引用

目录一,clone、copy1,基本类型2,类型的clone特征3,显式声明结构体的clone特征4,类型的copy特征5,显式声明结构体的clone特征5,变量和字面量的特征6,特征总结二,变量绑定1,clone拷贝场景2,copy拷贝场景3,所有权转移场景4,转移的永久性三,引用1,对常量的引用2,对变量的不可变引用3,对变量的可变引用5,函数调用四,引用总结1,引用的生命周期2,对字面量的引用3,对普通变量的引用4,对引用变量的引用5,对同一变量的引用6,链式引用一,clone、copy1,基本类型rust基本类型包括:所有整数类型,比如 u32布尔类型,bool,它的值是 true 和

听GPT 讲Rust源代码--library/std(15)

题图来自AnIn-DepthComparisonofRustandC++[1]File:rust/library/std/src/os/wasi/io/fd.rs文件路径:rust/library/std/src/os/wasi/io/fd.rs该文件的作用是实现与文件描述符(FileDescriptor)相关的操作,具体包括打开文件、读写文件、修改文件状态等功能。以下是该文件的详细内容介绍:引用use crate::io::{self, Initializer, IoSlice, IoSliceMut};use crate::mem;use crate::ptr;use crate::sys

记录C# WinForm项目调用Rust生成的dll库

一、开发环境1.RustRover(version:2023.3EAP)2.VisualStudio2019(version:16.11.30)3.Windows1064位OS4.Win+R:控制台程序,cmd.exe二、使用RustRover编译Rust脚本为dll1.下载安装Rust,https://www.rust-lang.org/tools/install2.双击rustup-init.exe直接安装。3.安装完后,为rust添加x86编译链接器的支持,后续为生成供C#WinForm目标平台为32位的做准备。按Win+R,输入cmd,回车,输入rustuptargetaddi686-

Rust核心功能之一(所有权)

目录1、什么是所有权?1.1 所有权规则 1.2变量作用域1.3String类型1.4内存与分配变量与数据交互的方式(一):移动变量与数据交互的方式(二):克隆只在栈上的数据:拷贝1.5所有权与函数1.6返回值与作用域1、什么是所有权?所有权(系统)是Rust最为与众不同的特性,对语言的其他部分有着深刻含义。它让Rust无需垃圾回收(garbagecollector)即可保障内存安全,因此理解Rust中所有权如何工作是十分重要的。所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的内存;在另一些语言中,程序员必须亲自分配和释放内存。Ru

24. 从零用Rust编写正反向代理,细说HTTP行为中的几种定时器

wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy敏感的时间  现实生活中大家都对时间有着概念,比如“快上班了,要不然要迟到了。”、“这班怎么这么久,怎么还没下班?”、“啊?已经晚上12点啦,等我这把游戏玩完。”、“叮叮叮,起床闹钟一直在催着你起床了。”  闹钟

算法leetcode|87. 扰乱字符串(rust重拳出击)

文章目录87.扰乱字符串:样例1:样例2:样例3:提示:分析:题解:rust:go:c++:python:java:87.扰乱字符串:使用下面描述的算法可以扰乱字符串s得到字符串t:如果字符串的长度为1,算法停止如果字符串的长度>1,执行下述步骤:在一个随机下标处将字符串分割成两个非空的子字符串。即,如果已知字符串s,则可以将其分成两个子字符串x和y,且满足s=x+y。随机决定是要「交换两个子字符串」还是要「保持这两个子字符串的顺序不变」。即,在执行这一步骤之后,s可能是s=x+y或者s=y+x。在x和y这两个子字符串上继续从步骤1开始递归执行此算法。给你两个长度相等的字符串s1和s2,判断s

Rust : 与C交互动态库和静态库的尝试

rust调用C端的库函数,有很多方法,场景也有所不同。包括windows还是linux,内置库还是自定义库,还是三方库等等。一、rust调用其内置的C库这个很简单,直接把extern"C"引入即可:比如,在rust端main.rs中:usestd::os::raw::c_int;//f32usestd::os::raw:c_double;//f64extern"C"{ fnabs(num:c_int)->c_int; fnsqrt(num:c_double)->c_double;}fnmain{ println!("callc->abs:{}",unsafe{abs(-32)}); print

Rust 语言常见的一些概念(下)

目录1、函数参数语句和表达式具有返回值的函数2、注释文档注释多行注释3、控制流3.1if表达式3.2使用esleif处理多重条件3.3 在let语句中使用if3.4使用循环重复执行使用loop重复执行代码从循环中返回值循环标签:在多个循环之间消除歧义while条件循环使用for遍历集合1、函数函数在Rust代码中非常普遍。你已经见过语言中最重要的函数之一:main 函数,它是很多程序的入口点。你也见过 fn 关键字,它用来声明新函数。Rust代码中的函数和变量名使用 snakecase 规范风格,也就是蛇形命名规范,跟python语言是一样的。在snakecase中,所有字母都是小写并使用下划

23. 从零用Rust编写正反向代理,流控小姐姐的温柔一刀!

wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy温柔的小姐姐  我的名字叫流控,至于我的工作你们看到我的名字也想必很清楚,我被创造出来为了的这世界更美好,期望这世界永远不会堵车,所以他们称我为温柔的小姐姐。与数据不得不说的故事  数据是个急性子的家伙,每次看他