草庐IT

tonic-Rust

全部标签

[Rust笔记] 为什么Rust英文文档普遍将【枚举值】记作variant而不是enum value?

为什么Rust英文文档普遍将【枚举值】记作variant而不是enumvalue?在阅读各类Rust英文技术资料时,你是否也曾经困惑过:为何每逢【枚举值】的概念出现时,作者都会以variant一词指代之?就字面含义而言,enumvalue岂不是更贴切与易理解。简单地讲,这馁馁地是Rust技术优越性·宣传软文的广告梗,而且是很高端的内行梗。Rustacean们看了往往报以会心一笑—似乎优秀尽在不言中。至于梗在何处,请耐心听我娓娓道来!在C++语境下,variant意味着什么首先,当variant被记作variantmember时,根据C++11标准,它指的就是Cunion数据结构中的字段。Cun

11. Linux驱动 - Rust编写Linux驱动

Rust编写Linux驱动转载自:https://rustcc.cn/article?id=3a9ea964-6692-4d6f-9a11-8c4abf35856fhttps://mp.weixin.qq.com/s/m2eZ0lEzQHjrNVC6YCC_IA背景|Linux内核模块Linux内核模块在概念和原理层面与动态链接模块(DLL或so)类似。但对于Linux来说,内核模块可以在系统运行期间动态扩展系统功能,而无须重新启动系统,更无须重新编译新的系统内核镜像。所以,内核模块这个特性为内核开发者提供了极大的便利,因为对于号称世界上最大软件项目的Linux来说,重启或重新编译的时间耗费肯

11. Linux驱动 - Rust编写Linux驱动

Rust编写Linux驱动转载自:https://rustcc.cn/article?id=3a9ea964-6692-4d6f-9a11-8c4abf35856fhttps://mp.weixin.qq.com/s/m2eZ0lEzQHjrNVC6YCC_IA背景|Linux内核模块Linux内核模块在概念和原理层面与动态链接模块(DLL或so)类似。但对于Linux来说,内核模块可以在系统运行期间动态扩展系统功能,而无须重新启动系统,更无须重新编译新的系统内核镜像。所以,内核模块这个特性为内核开发者提供了极大的便利,因为对于号称世界上最大软件项目的Linux来说,重启或重新编译的时间耗费肯

Tauri+Rust+Vue 跨平台桌面应用简明教程(1)环境创建+系统事件+自定义菜单

文章目录Tauri简介环境准备安装MicrosoftVisualStudioC++生成工具WebView2Rust创建项目项目结构添加关闭提示添加自定义菜单Tauri简介Tauri是一个工具包,可以帮助开发者为主要桌面平台制作应用程序(如mac,windows,linux等)。几乎支持现有的任何前端框架(如react,vue,vite等),其核心是使用Rust编写的。类似Electron的GUI框架,相比于Electron,其突出优点就是体积小。我们知道Electron相当于是打包了一个小型浏览器,体积比较大,还占内存。而Tauri开发的应用,前端使用操作系统的webview,后端集成了Rus

Tauri+Rust+Vue 跨平台桌面应用简明教程(1)环境创建+系统事件+自定义菜单

文章目录Tauri简介环境准备安装MicrosoftVisualStudioC++生成工具WebView2Rust创建项目项目结构添加关闭提示添加自定义菜单Tauri简介Tauri是一个工具包,可以帮助开发者为主要桌面平台制作应用程序(如mac,windows,linux等)。几乎支持现有的任何前端框架(如react,vue,vite等),其核心是使用Rust编写的。类似Electron的GUI框架,相比于Electron,其突出优点就是体积小。我们知道Electron相当于是打包了一个小型浏览器,体积比较大,还占内存。而Tauri开发的应用,前端使用操作系统的webview,后端集成了Rus

为什么 Python、Go 和 Rust 都不支持三元运算符?

在编程时,我们经常要作条件判断,并根据条件的结果选择执行不同的语句块。在许多编程语言中,最常见的写法是三元运算符,但是,Python并不支持三元运算符,无独有偶,两个最热门的新兴语言Go和Rust也不支持!为什么Python不支持三元运算符呢?本文将主要分析Python在设计条件选择语法时的过程,科普为什么它会采用现今的与众不同的实现方案,同时,我们也将考察为什么其它语言也要抛弃传统的三元运算符。在开篇之前,我再声明一下:就像“Python为什么”系列的大部分文章一样,本文关注的仅是一个很小的语法点,但它并不是“茴香豆有几种写法”那种毫无意义的话题。因为,细微之处见真功夫,深入研究语言设计背后

为什么 Python、Go 和 Rust 都不支持三元运算符?

在编程时,我们经常要作条件判断,并根据条件的结果选择执行不同的语句块。在许多编程语言中,最常见的写法是三元运算符,但是,Python并不支持三元运算符,无独有偶,两个最热门的新兴语言Go和Rust也不支持!为什么Python不支持三元运算符呢?本文将主要分析Python在设计条件选择语法时的过程,科普为什么它会采用现今的与众不同的实现方案,同时,我们也将考察为什么其它语言也要抛弃传统的三元运算符。在开篇之前,我再声明一下:就像“Python为什么”系列的大部分文章一样,本文关注的仅是一个很小的语法点,但它并不是“茴香豆有几种写法”那种毫无意义的话题。因为,细微之处见真功夫,深入研究语言设计背后

Rust如何引入源码作为依赖

问题描述通常我们在rust项目中引入第三方依赖包时,会直接指定包的版本,这种方式指定后,Cargo在编译时会从crates.io这个源中下载这些依赖包。[package]name="foo"version="0.1.0"edition="2021"[dependencies]j4rs=0.15.3比如这里我们就在项目中引用了j4rs这个包,这个包的主要作用是可以实现从Rust代码中调用Java代码。博主在使用这个包时发现,crates.io上发布的最新版本0.15.3有bug,这个版本依赖了logback的新版本,而logback的新版本使用了Java11进行编译。这就导致了j4rs0.15.

Rust如何引入源码作为依赖

问题描述通常我们在rust项目中引入第三方依赖包时,会直接指定包的版本,这种方式指定后,Cargo在编译时会从crates.io这个源中下载这些依赖包。[package]name="foo"version="0.1.0"edition="2021"[dependencies]j4rs=0.15.3比如这里我们就在项目中引用了j4rs这个包,这个包的主要作用是可以实现从Rust代码中调用Java代码。博主在使用这个包时发现,crates.io上发布的最新版本0.15.3有bug,这个版本依赖了logback的新版本,而logback的新版本使用了Java11进行编译。这就导致了j4rs0.15.

Rust 并发编程

Rust并发编程安全高效的处理并发是Rust诞生的目的之一,主要解决的是服务器高负载承受能力。并发(concurrent)的概念是指程序不同的部分独立执行,这与并行(parallel)的概念容易混淆,并行强调的是"同时执行"。并发往往会造成并行。本章讲述与并发相关的编程概念和细节。线程线程(thread)是一个程序中独立运行的一个部分。线程不同于进程(process)的地方是线程是程序以内的概念,程序往往是在一个进程中执行的。在有操作系统的环境中进程往往被交替地调度得以执行,线程则在进程以内由程序进行调度。由于线程并发很有可能出现并行的情况,所以在并行中可能遇到的死锁、延宕错误常出现于含有并发