网站Logo 盹猫猫的博客
首页
Linux脚本库
Rust
Rust圣经官方文档
开发小工具
websocket测试二维码生成器跨域测试
我的
关于我的开源CSDN
市场哲学​
登录

Rust通道

本文详细介绍了Rust中`mpsc`通道的使用方法、常见陷阱及最佳实践,帮助读者掌握线程间通信的精髓。通道基于“生产者-消费者”模型,由发送者和接收者组成,支持多生产者单消费者的模式。文章通过多个示例展示了如何创建通道、发送和接收数据,并讨论了处理未实现`Copy`特性的类型、多发送者并发发送数据、循环发送与接收数据、同步通道以及发送多种类型的数据等核心特性。此外,还提供了常见陷阱(如接收者无限阻塞和数据发送后未被接收)及其解决方案。总结部分强调了`mpsc`通道在所有权安全、灵活性和易用性方面的优势,是Rust并发编程的基础工具。

2025-08-16
56
0
rust

rbpf虚拟机-打包和代码执行

本文介绍了rbpf虚拟机执行文件的打包和执行过程,旨在帮助理解Solana智能合约的执行方式。首先,文章详细说明了安装所需依赖如clang、内核头文件及llvm的方法。接着,通过示例展示了如何使用`clang`将C代码编译为BPF目标文件,并利用`llvm-objdump`查看生成的.o文件内容。随后,文章解释了如何使用Rust语言结合elf库读取该BPF文件并提取特定section中的字节码数据。最后,通过调用`vm.execute_program`方法来运行这些字节码。整个过程不仅加深了对rbpf虚拟机工作原理的理解,也为进一步研究基于其扩展的Solana合约提供了基础。

2025-06-18
64
0
rust

rbpf虚拟机-阶段整理

本文是对rbpf虚拟机相关文章的整理和回顾,涵盖了验证器、汇编器与反汇编器、即时编译器(JIT)、不同码的关系(op码、字节码、机器码)、call指令、打包及代码执行等内容。学习这些内容有助于理解Solana智能合约的执行机制,因为Solana基于扩展版的rbpf虚拟机。文章提供了详细的链接指向具体的技术讨论,并总结了各个组件的功能特点,例如验证器如何检查程序合法性,汇编/反汇编过程,以及JIT相较于解释执行的优势等。此外,作者还分享了自己的GitHub仓库链接,其中包含带有中文注释的理解版本代码,供读者参考学习。

2025-06-13
85
0
rust

rbpf虚拟机-即时编译器(JIT)

本文介绍了基于x86-64架构的eBPF即时编译器(JIT)的实现过程,重点在于理解Solana合约的执行方式。主要内容包括寄存器映射、指令发射、跳转处理和辅助函数调用等。在寄存器映射部分,文章详细描述了如何将eBPF的11个通用寄存器映射到x86-64的寄存器上。指令发射通过`emit_alu32`、`emit_mov`等函数生成算术逻辑单元指令和数据传输指令。此外,文章还展示了如何处理eBPF中的跳转指令以及如何调用辅助函数。关键代码部分则具体演示了寄存器上下文保存、存储中间值、内存缓冲区处理、初始化栈、指令翻译、收尾部分及恢复寄存器的过程。最后,文章总结了JIT是按照x86-64调用标准进行编写,并强调了不同架构下JIT实现的差异性。

2025-06-12
85
0
rust

Rust-引用借用规则

本文详细介绍了Rust语言中的引用借用规则,旨在帮助开发者理解和应用这些规则以确保程序的内存安全和避免数据竞争。文章首先概述了Rust通过严格的引用规则来保证代码的安全性,并解释了三个主要的借用规则:允许同一时间内存在多个不可变引用(&T),但只能有一个可变引用(&mut T),且不可变引用与可变引用不能同时存在于同一生命周期内。通过对每条规则的具体案例分析,文章进一步澄清了“同一时间”实际上指的是“同一生命周期”的概念,从而帮助读者更好地理解如何在实际编码中合理使用这些规则。最后,文章总结指出,虽然这些规则初看起来可能较为复杂,但通过实践可以有效地提高代码的安全性和效率。

2025-06-12
67
0
rust

Rocket-JWT鉴权

本文介绍了如何使用Rust语言和Rocket框架实现基于JWT的网页认证和鉴权。首先概述了Rocket框架的特点,接着详细列出了项目所需的依赖库,包括`chrono`、`dotenv`、`jsonwebtoken`、`rocket`和`serde`等,并解释了它们的功能。随后,文章逐步指导读者完成环境准备,包括创建项目、安装依赖、读取私钥信息以及定义和生成JWT Token。在Web鉴权部分,文章展示了如何通过自定义的`JwtGuard`结构体来验证请求中的Token,并提供了两个示例路由:一个用于生成Token,另一个用于验证Token的有效性。最后,文章总结了Rocket框架在实现Web鉴权方面的简洁性和高效性,同时强调了Rust语言在性能上的优势。

2025-06-10
36
0
jwt