文章类型: 排序方式:
使用状态模式和零大小类型10倍提高Rust api性能
在这篇文章中,我们通过一步步实现一个真实项目的例子,来展示如何通过使用泛型、零大小类型及状态模式10倍提高Rust api的性能,同时还能防止API的使用者滥用API。
Rust并发控制之Condvar-两线程交替打印
在并发控制的面试里有个很喜欢考的点:如何控制两个并发线程交替打印 1 和 2。考察的是如何做并发线程的同步控制,实现的方式有很多,今天我们先用上篇提到的 condvar 试试。
你应该知道的7个Rust Cargo插件
在这篇文章中,我们将介绍你应该知道的7个Rust Cargo插件:Cargo watch,Cargo edit,Cargo modules,Cargo audit,Cargo tarpaulin,Cargo nextest,Cargo make。
如何使用Rust进行TLS开发?
TLS是一种安全协议,有助于在双方之间建立安全连接。TLS通过握手来验证双方彼此的身份,并就如何加密数据达成一致。
Rust中的设计模式:观察者模式(Observer)
观察者模式是一种软件设计模式,它允许对象(通常称为主题)维护一个称为观察者的依赖项列表,并自动通知它们任何状态更改。
Rust开发环境最佳设置
在这篇文章中,我们以VSCode作为Rust开发的IDE。VSCode 是我的首选,因为它可以在所有主流操作系统上使用,并且具有高度可配置性。
详解Rust编程中的生命周期
生命周期在Rust编程中是一个重要概念, 它能确保引用像预期的那样一直有效。在Rust语言中, 每一个引用都有其生命周期, 通俗讲就是每个引用在程序执行的过程中都有其自身的作用域, 一旦离开其作用域, 其生命周期也宣告结束, 值不再有效。幸运的是, 在绝大多数时间里, 生命周期是隐含且可以进行推断的, 类似于当有多种可能的类型时必须注明类型, 正因为如此, 所以Rust需要使用者使用泛型生命周期参数来注明它们的关系, 从而确保程序运行时实际使用的引用绝对有效。
Rust 开发路线图正式发布!
Rust将安全性、性能和并发性放在首位。它允许程序员使用低级语言的控制能力来创建应用程序,同时具备高级语言的强大抽象能力。总的来说,使用Rust您可以做很多事情,所以每个开发者都应该至少尝试一下。
Rust编程基础核心之所有权(下)
本节将介绍数据交互方式:克隆。如果我们 **确实** 需要深度复制 `String` 中堆上的数据,而不仅仅是栈上的数据,可以使用一个叫做 `clone` 的通用函数。
Rust编程基础核心之所有权(上)
Rust 的核心功能(之一)是 **所有权**(*ownership*)。虽然该功能很容易解释,但它对语言的其他部分有着深刻的影响。
Nginx模块现在可以用 Rust 编写了
Nginx是一款高性能、开源的 Web 服务器和反向代理服务器软件,大部分互联网网站都在使用它。NGINX 最初由Igor Sysoev于2002年创建,此后一直在发展,并广泛流行于 Web 托管、内容交付和应用程序部署领域。它的性能、可扩展性和多功能优势闻名于世,也因此成为提供 Web 内容和有效管理互联网流量的网站关键组件。
如何用Rust构建一个简单的Kafka生产者和消费者应用程序
在这篇文章中,我们将构建一个简单的Rust应用程序,由生产者和消费者组成,使用来自Hacker News的搜索数据。
你需要知道的32个Rust库 - 4
本期介绍:Getset,Mockall,QuickCheck,Proptest,Heck,num_cpus,Humantime。
2024年Rust将改变Web开发的四大方面
近年来,Rust已经成为最强大的编程语言,由于其安全性、速度和并发性,它是web开发中很有前途的语言之一。像Rocket和Actix这样的Rust框架提供了一套简化web开发过程的工具。
Rust结构体的定义和实例化
Rust的结构体跟元组类型比较类似,它们都包含多个相关的值。和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活:不需要依赖顺序来指定或访问实例中的值。
在Rust中实现依赖注入
依赖注入简单地说,就是类应该依赖于抽象,例如数据源的抽象,而不是具体的实现。这意味着类将依赖于接口而不是真正的类。
Rust中的异构集合
在某些情况下,当编写软件时,开发人员会遇到异构集合的需求——也就是说,可以存储不同类型对象的集合。在Rust中,开发人员可以通过不同的方式实现这一目标,并进行不同的权衡。
使用Rust构建一个CPU基准测试工具
在这篇文章中,我们将创建一个能执行的Rust脚本来测量CPU的性能。
如何加快rust构建时间
对于使用Rust编程语言的人来说,构建时间有时是非常痛苦的,对于基于LLVM的语言来说,缓慢的编译时间并不是什么新鲜事,但考虑到Rust的全面编译检查,时间消耗可能会迅速增长。
你需要知道的32个Rust库 - 2
本次介绍:Paste,Either、Num、Thiserror库。
你需要知道的32个Rust库 - 1
本期介绍6个Rust库:Tap,Strum,derive_more,derive_builder,insta,enum_dispatch。
Rust vs Go:后端开发技术综合比较
Rust和Go,功能各有所长,那么它们在后端开发方面谁要更强?
Rust - 访问者模式 vs 枚举
Rust中实现访问者模式,假设我们有两种具体的数据类型:X和Y,为简单起见,我们假设这些类只是没有方法的纯结构体,因此称之为Data。同时我们定义Action Trait表示我们想要应用于Data上的操作。
深入了解Rust的声明性标记
在Rust中,声明性标记是指放置在函数定义、模块、类型等上面的属性。它们提供额外的信息或改变代码的行为。Rust中的声明性标记以井号(#)开头,放在方括号([])内。例如,一个声明性标记可以表示成这样:#[attribute]。
WebAssembly 模块化与动态链接
模块化编程(modular programming)是一种软件设计模式,它将软件分解为若干独立的、可替换的、具有预定功能的模块,每个模块实现一个功能,各模块通过接口(输入输出部分)组合在一起形成最终程序。当下流行的JavaScript、Python、Rust、Java 等语言都有具有模块(包)管理,甚至 C++20 开始都引入了模块化系统。
为Rust二进制文件添加版本信息
在运行building时生成版本信息,然后我们只需要创建一个新标签,编译器就会自动处理这些信息。
如何在Rust中加载动态库?
动态库加载,也称为动态加载或运行时动态链接,是一种编程技术,它允许程序将外部库(也称为动态链接库或共享库)加载到内存中,并在运行时而不是编译时使用它们的功能。这些库包含可由程序执行的编译代码,从而支持模块化、代码重用和灵活性。
使用Rust Plotly实现数据可视化
Plotly是一个强大的数据可视化工具,可以使用它为Rust项目创建令人惊叹的图形、图表和其他可视化效果。Plotly是一个基于流行的Plotly.js库构建的开源库,它提供了一个用于创建交互式绘图的高级接口。
Rust通道和消息传递
并发编程是现代软件开发的一个关键方面,Rust为管理并发执行提供了强大的工具。Rust并发模型的核心是通道和消息传递,它们允许线程通信并同步它们的活动。
Rust代码安全:混淆的魔力
Rust以其安全特性而闻名,但你知道它还可以帮助你保护代码免受黑客攻击吗?通过将Rust强大的内存安全特性与字符串混淆结合使用,你可以创建既安全又难以逆向工程的代码。