作者:anhkgg 日期:2017-11-16rustls已经支持tls1.3,但是测试分析中使用的tls1.2,所以后面分析主要集中在tls1.2。主要分析的源码内容:  1. client和server的握手协议流程  2. rustls是如何进行数据传输的  3. 数据传输是如何加密解密的源码结构分为client和server两部分公共接口session.rs定义了SessionCommon            
                
         
            
            
            
            linux中开发工具一般有如下四种: vim,gcc,gdb,make.vimVim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。gccGCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Ob            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-23 09:40:05
                            
                                37阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、定义编译:“““编译器是一种翻译程序,它用于将源语言(即用某种程序设计语言写成的)程序翻译为目标语言(即用二进制数表示的伪机器代码写成的)程序。后者在windows操作系统平台下,其文件的扩展名通常为.obj。该文件通常还要经过进一步的连接,生成可执行文件(机器代码写成的程序,文件扩展名为.exe)。通常有两种方式进行这种翻译,一种是编译,另一种是解释。后者并不生成可执行文件,只是翻译一条语句            
                
         
            
            
            
            用Rust重写我的移动游戏,并支持WASM机翻请谅解:上周我在这里分享了一篇文章,描述了一个重写我的手机游戏的项目,一堆人对源代码表示很感兴趣。所以我回来了,带着我承诺的代码回来了 你可以在 https://github.com/lucamoller/pandadoodle-rust-wasm 找到它。一些免责声明。这些代码是为了好玩而写的,最初只是给我看的。为了与大家分享,我试着把代码清理/整理            
                
         
            
            
            
            文章目录环境搭建官网下载安装包进入自定义安装设定默认主机为gnu类型开始安装工程搭建下载工程模板添加交叉编译支持编译下载调试安装 stlink 驱动安装 cortex-debug 插件添加调试配置最终效果 在windows上,搭建嵌入式 RUST开发环境,基于STM32L475芯片,使用 VS Code + Cortex-debug + STlink实现单步调试。环境搭建这一部分将安装RUST开            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-17 06:04:55
                            
                                116阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            最小Rust内核
    
   
  原作者 phil-opp 
   
   
 在这篇文章里我们将在x86架构上创建一个最小的64位Rust内核。我们将在上一篇文章一个独立的rust二进制程序的基础上创建一个磁盘启动镜像,并将一些内容显示在屏幕上。这个系列的blog在GitHub上开放开发,如果你有任何问题,请在这里开一个issuse来讨论。当然你也可以在底部留言。你可以在这里找到这篇文章的            
                
         
            
            
            
            「SO问答」既然两个可变引用不能别名为啥Rust编译器没有对其进行优化#Rust #stackoverflow该问题的作者描述,比如C代码中:void adds(int  *a, int *b) {
    *a += *b;
    *a += *b;
}两个指针a和b有可能互为别名(俩指针指向同一数据),所以clang在编译该代码的时候,会在寄存器中存储两次(%rsi),%eax来防止这种情况            
                
         
            
            
            
            随着 Rust 语言的大火,前端圈里掀起了一股 Rust 风 —— 一切能用 Rust 实现的都在尝试使用 Rust 重写,比如最近很火的对标 Babel 的 JavaScript/TypeScript 编译器 swc,相信很多人都已经尝试过了。对于我们前端来说,这么火的语言,当然不能放过了,必须跟上时代的潮流。一、什么是 RustRust 是由 Mozilla 主导开发的通用、编译型编程语言。设            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-15 16:09:56
                            
                                94阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            06 - 包和模块6.1 - 包Cargo.toml 文件可以列取包名,及其指定版本号。用于编译前取得。cargo build 的技巧:
--verbose 选项:了解包的协作方式;
--crate-type lib 选项:告诉 rustc 不要去找 main() 函数执行,而是生成一个.rlib 文件,其中包含编译后的代码,可供之后的 rustc 命令用作输入。
--crate-type bin            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-11 20:17:59
                            
                                507阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录   编译技术概念动态库的特点使用静态库FAQ只有在编译动态链接库时才会使用-fPIC编译器选项吗?能否在静态编译库的情况下使用呢?C++的动态库第三方包一般都是怎么交付的?查看二进制的常用命令构建过程中库文件定位规则重复的符号定义如何判断一个可执行文件是否使用了PIE?方法一方法二  编译技术概念编译:严格意义上讲,指的是将高级语言编写的源代码翻译成低级语言描述的代码的过程。 交叉编译:如果            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-13 16:37:36
                            
                                89阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            迅为I.MX8MM 开发平台是基于恩智浦的 NXP i.MX 8M Mini 处理器设计开发的一款产品。NXP i.MX 8M Mini 处理器致力于提供出色的视频和音频体验,将媒体的特定功能与针对低功耗优化的高性能处理相结合。 在平时的驱动开发中,经常需要在内核中配置某种功能,为了方便大家开发和学习,本小节讲解如何在内核中添加驱动。具体的讲解原理讲解请参考本手册的驱动教程。 1 首先进            
                
         
            
            
            
            元编程的另一种形式,即编译器插件,可以在编译时运行任意Rust代码。 这个特性是本书中唯一没有达到Rust稳定版本的特性(也许永远不会以这种形式出现),但它仍然被广泛使用,并且应该涵盖一个重要的差异化特征。本章预计会有一定程度的厚度和不确定性; 编译器插件是一个具有挑战性的功能,它们的Rust实现仍然非常不稳定。 这些概念应该相当稳定,但即使在发布日期后一年,实施细节也可能会有所不同。在本章中,我            
                
         
            
            
            
            我使用的是kernel 4.9.153版本,debian上测试过,但是编译环境可以是任何linux系统。第一步: 下载tarball从kernel.org 下载一个稳定版的kernel包,如linux-4.9.153.tar.xz, 然后解压出来到linux-4.9.153文件夹第二步:装好所需的工具sudo apt install build-essential bc python libncu            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-03 19:17:43
                            
                                594阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            什么是 Rust?Rust 是一种专注于安全和性能的多范式编程语言。它的构建考虑到了速度和效率,这意味着它可以提供零成本的抽象、继承和功能特性,对许多开发人员来说,这解决了其他底层语言(如 C 和 C++)的常见问题。使用 Rust 有什么优势?Rust 具有惊人的速度和内存效率。它丰富的类型系统和所有权模型保证了内存和线程的安全,从而能够在编译时消除许多典型的错误。零成本抽象确保你使用的抽象几乎            
                
         
            
            
            
            Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。Rust 语言由 Mozilla 开发,最早发布于 2014 年 9 月。Rust 的编译器是在 MIT License 和 Apache License 2.0 双重协议声明下的免费开源软件。截至目前( 2020 年 1 月)最新的编译器版本是 1.41.0            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-04 15:27:44
                            
                                114阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Vue 编译器:用 Rust 实现的高性能前端工具链 vue-compilerVue's template compiler reimplemented in Rust!项目地址:https://gitcode.com/gh_mirrors/vu/vue-compiler 1、项目介绍Vue-Compiler in Rust 是一个创新性的开源项目,它将 Evan You 的设想变为现实——用 R            
                
         
            
            
            
            快讯:Cranelift已成为Rustc编译器的后端之一此前的Rustc编译器基于LLVM后端开发。由红帽、Mozilla和英特尔等公司组成的“字节码联盟”发布了编译器后端软件Cranelift,它致力于功能和安全性,并完全使用Rust语言构成。评论认为,相比于目前的LLVM后端,Cranelift小幅提高了调试模式的编译速度。Cranelift的另一特色是,可以重复利用输出的字节码值,以提高生成            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-02 07:45:25
                            
                                95阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            介绍:对新手及一些非C系列开发人员补充一些知识点,供查阅,可跳过一、什么是标识符 标识符是指常量、 变量、语句标号以及用户自定义函数的名称。 例如,C语言规定标识符只能由字母、数字、 下划线组成,并且只能由字母、下划线开头。 一些标识符被赋于特定的含义就叫做保留字(或称为关键字)Rust的标识符是所有符合下面规则的非空的unicode字符串 规则1: A. 无论是首个字符还是首字符外的其它字符的            
                
         
            
            
            
            Rune,一个Rust的可嵌入的支持aysnc的动态语言Rune是一个 Rust 可以嵌入的动态语言. 使用 Rust 编写, 基于 Runestick VM. 你可以认为他是 Rust 中的 Luna,但是语法是类 Rust 的.具有以下特性:非常干净的 Rust 集成内存安全的(通过引用计数)模板字符串? opearatorPattern matchingStru            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-30 10:08:16
                            
                                107阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            代码编译器推荐对于需要编写代码的程序员来说,拥有一款适合自己的编译器是十分重要的,对于新手程序员来说也是十分有必要的,毕竟好的用的代码编辑器往往能够让代码的编辑更加流畅,我就为大家推荐几款我个人使用过的比较遍历的编译器。Notepad++ Ediplus Sublime Text3VS Code Jetbrains系列(IDEA 、WebStorm) Eclipse在线工具Notepad++