草庐IT

rust-tokio

全部标签

Rust 编译为 WebAssembly 在前端项目中的使用

前言最近,加大了对Rust相关文章的输出。在评论区或者私信区有一些不同的声音说:“Rust没有前途,然后...."。其实呢,看一个技术是否有需要学习的动力。想必大家的底层理由都是「一切都是向钱看」,毕竟在国内大家都是业务为主,想自己纯手搞一套符合自己的技术框架和范式,这是不切实际的。(当然也不能一杆子打死,还是有很多技术大牛的)现在大家纠结或者对这个技术属于观望态度,无非就是在平时开发工作中没有涉及到的点。同时,由于国内技术的「滞后性」,有一些应用场景其实还是处于蛮荒的状态。(不是崇洋媚外,事实确实如此)。所以,在一些可以用到新的技术点的方向上,国内还是处于蓝海阶段。所以,本着对该技术的独有关

【Rust笔记】Rust与Java交互-JNI模块编写-实践总结

近期工作中有Rust和Java互相调用需求,这篇文章主要介绍如何用Rust通过JNI和Java进行交互,还有记录一下开发过程中遇到的一些坑。JNI简单来说是一套Java与其他语言互相调用的标准,主要是C语言,官方也提供了基于C的C++接口。既然是C语言接口,那么理论上支持CABI的语言都可以和Java语言互相调用,Rust就是其中之一。关于JNI的历史背景以及更详细的介绍可以参考官方文档在Rust中和Java互相调用,可以使用原始的JNI接口,也就是自己声明JNI的C函数原型,在Rust里按照C的方式去调用,但这样写起来会很繁琐,而且都是unsafe的操作;不过Rust社区里已经有人基于原始的

rust std

目录一,std基本数据结构1,std::option2,std::resultruststd文档一,std基本数据结构1,std::option(1)定义pubenumOption{None,Some(T),}这是一个枚举值,要么等于None,要么等于泛型Some(2)is_some、is_none letx:Option=Some(2); assert_eq!(x.is_some(),true); assert_eq!(x.is_none(),false); letx:Option=None; assert_eq!(x.is_some(),false); assert_eq!(x.is_no

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

std git:(master) ✗ tree.├── Cargo.toml├── benches│   ├── hash│   │   ├── map.rs│   │   ├── mod.rs│   │   └── set_ops.rs│   └── lib.rs├── build.rs├── src│   ├── alloc.rs│   ├── ascii.rs│   ├── backtrace│   │   └── tests.rs│   ├── backtrace.rs│   ├── collections│   │   ├── hash│   │   │   ├── map│   │

算法leetcode|85. 最大矩形(rust重拳出击)

文章目录85.最大矩形:样例1:样例2:样例3:样例4:样例5:提示:分析:题解:rust:go:c++:python:java:85.最大矩形:给定一个仅包含0和1、大小为rowsxcols的二维二进制矩阵,找出只包含1的最大矩形,并返回其面积。样例1:输入: matrix=[["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]] 输出: 6 解释: 最大矩形如上图所示。样例2:输入: matrix=[] 输出: 0样例3:输入: matrix=[["0"]]

Rust中的宏:声明宏和过程宏

Rust中的声明宏和过程宏宏是Rust语言中的一个重要特性,它允许开发人员编写可重用的代码,以便在编译时扩展和生成新的代码。宏可以帮助开发人员减少重复代码,并提高代码的可读性和可维护性。Rust中有两种类型的宏:声明宏和过程宏。声明宏:声明宏是一种用于定义新的宏的语法。它使用macro_rules!关键字定义,并遵循特定的语法规则。声明宏通常用于定义简单的宏,例如计算两个数字之和或打印一条消息。例如,下面是一个简单的声明宏,用于计算两个数字之和:macro_rules!add{($x:expr,$y:expr)=>{$x+$y};}fnmain(){letx=5;lety=6;println!

【Rust基础】Rustlings答案及解析

系列综述:💞目的:本篇文章是个人通过Rustlings学习Rust过程中整理的,整理期间苛求每个知识点,平衡理解简易度与深入程度。🥰来源:材料主要源于Rustlings进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。🤭结语:如果有帮到你的地方,就点个赞和关注一下呗,谢谢🎈🎄🌷!!!文章目录使用前提IntroIntro.1Intro.2Variables基本知识点Variables.1Variables.2Variables.3Variables.4Variables.5Variables.5FunctionsFunctions.1Functions.2

Rust更换Cargo国内源,镜像了寂寞

换皮不换身换了国内源,构建时该卡还会卡。因为它所谓的换源,只是更换crates.io“索引”的源,而不是package“内容”的源。换了国内源后,在国内编译时访问crates.io-index自然会快很多,可是crates.io-index里面的信息含量本身就不多,主要是package名称/版本/依赖/特性等,Cargo还要去crates.io网站查询指定package的下载地址,而下载地址也是指向crates.io网站的。最终网络访问瓶颈还是境外的crates.io网站。换国内源清华https://mirrors.tuna.tsinghua.edu.cn/help/crates.io-ind

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

wmproxywmproxy将用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,后续将实现websocket代理,内外网穿透等,会将实现过程分享出来,感兴趣的可以一起造个轮子法项目地址gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy日志功能为了更容易理解程序中发生的情况,我们可能想要添加一些日志语句。通常在编写应用程序时这很容易。「在某种程度上,日志记录与使用println!相同,只是你可以指定消息的重要性」。在rust中定义的日志级别有5种分别为erro

8. 用Rust手把手编写一个wmproxy(代理,内网穿透等), HTTP改造篇之HPACK原理

用Rust手把手编写一个wmproxy(代理,内网穿透等),HTTP改造篇之HPACK原理项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxyHTTP/2的简介HTTP/1.1发表于1999年,该协议持续被使用到了至今HTTP/2标准于2015年5月以RFC7540正式发表。由于HTTP2对1.1协议保持有高度的兼容,并且主要以字节传输,相比于1.1有更好的传输效率和更强大的传输能力,所以他快速流行起来在2017年5月,全球排名前1000万的网站中,有13.7%支持了