写点什么

​Rust

1 人感兴趣 · 28 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/c5/c5a29674b922614541e3188760040e96.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

KCL v0.4.5 发布 - 更好的编写便利性改进,稳定性,体验提升与多平台支持

用户头像
Peefy
02-27

KCL 团队很高兴地宣布 KCL v0.4.5 版本现在已经可用!本次发布主要为 KCL 语言编写便利性和稳定性提升,错误信息改进以及更多平台包括 windows 版本支持以及更多下载方式支持。在 KCL v0.4.5 版本中,用户可以通过编写更少的 KCL 代码消除更多的配置模版;在

https://static001.geekbang.org/infoq/78/785bd45e8c1f6a28e93f79493a98e40b.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

我为什么要使用 Tauri 构建 macOS 磁盘清理工具 PrettyClean

用户头像
NinetyH
2022-10-10

我为什么要使用 Tauri 构建 macOS 磁盘清理工具 PrettyClean? 为什么 Rust 是最好的选择? 我使用了哪些 Tauri 特点构建 PrettyClean

https://static001.geekbang.org/infoq/eb/eb457afbb686e29ff0c704f15e1a5a0a.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Rust 异步初探

用户头像
CodeWithBuff
2022-09-16

Rust于2018年引入异步,四年后的今天,我第一次接触Rust且使用async/await实现了一个小的IM(即时通讯)系统,带着原本对于Rust的好奇和对于异步的疑惑,翻阅了一些文章和参考,最后得到了一些答案。

使用 Rust 开发后端——Actix-Web

用户头像
CodeWithBuff
2022-09-16

actix-web使用一个HttpServer+多个App来完成功能,而且是一个线程一个App,也就是一个后端服务可能存在多个App实例。同时因为路由之后的处理都是在App里进行的,所以不同的App之间的同名handler可能是不相通的,这就涉及到数据共享(其实就是多线程数据共享问

https://static001.geekbang.org/infoq/26/26b2298af2700582c67bf34ce4fce0fd.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「23」回顾基本概念

用户头像
Samson
2022-09-08

类型系统是对值的区分,包含了值在内存中的长度、对齐方式以及值允许的操作方式等。指针是一个持有内存地址的值,引用与指针非常类似,可以看作是受限访问的指针。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「22」内存:堆与栈

用户头像
Samson
2022-09-07

栈是程序运行的基础。在计算机内存中,栈是自顶向下(高地址向低地址)扩张的,堆是自底向上扩张的。当需要动态大小的内存时,只能使用堆,例如可变长度的数组、列表、哈希表、字典等。

https://static001.geekbang.org/infoq/26/26b2298af2700582c67bf34ce4fce0fd.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「21」Unsafe Rust

用户头像
Samson
2022-08-31

到目前为止,我们学习的所有内容都是在 Rust 严格的安全性要求之下的。那 Rust 中有没有一些特殊的场景,需要我们破坏或者说暂时不遵循其严格的安全性要求?当然,那就是 unsafe Rust,我们今天学习的主题。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「20」网络编程(二)

用户头像
Samson
2022-08-30

今天我们接着昨天的主题来学习一下 Rust 中的网络编程。上节中我们学习了使用 std::net 构建一般网络程序的方法。今天我们将主要学习下网络应用开发中的问题以及常见的网络通讯模型。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「19」网络编程(一)

用户头像
Samson
2022-08-29

今天的学习主题是,在 Rust 中如何进行网络开发。主要学习目标是学习如何使用 Rust 标准库及生态系统中的第三方库来进行网络开发,包括创建网络连接、处理网络数据等。让我们开始吧。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「18」类型系统进阶(二)

用户头像
Samson
2022-08-28

今天的课程主题是实战中的 trait object 使用方法。在运行时,我们只关注类型表现出某个 trait 的行为,而不关心其具体类型时就可以使用 trait object,用法时 &dyn T 或 Box<dyn T>。Trait object 是一个固定大小的胖指针,同时指向具体类型值和 vtable。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「17」类型系统进阶(一)

用户头像
Samson
2022-08-27

到目前为止,我们已经学习了 Rust 中大部分基础支持,而且在实践课中我们也跟着老师一起构建了一个 kv server 系统。从某种程度上讲,我们也算是一个入门的 Rustaceans 了。从今天开始,我们开始跟着老师学习进阶知识了。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「16」实践课之 kv-server(二)

用户头像
Samson
2022-08-26

今天仍然是实践课,目标是基本实现 KV server。让我们开始吧!

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「15」实践课之 kv-server(一)

用户头像
Samson
2022-08-25

今天是实践课程,我们一起跟着老师来构建一个 KV server。在此之前,我们先来学习下 Rust 中一个 package 典型的目录结构。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「14」错误处理

用户头像
Samson
2022-08-24

今天我们来学习基础课程中的最后一节,异常处理。在任何一门编程语言当中,异常或错误处理都是非常重要的内容,它用来处理异常流程。处理正常流程的 if / while 等,与异常流程一同组成了程序控制流程。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「13」数据结构(四)闭包

用户头像
Samson
2022-08-23

今天我们来学习数据结构系列中的最后一讲内容,闭包。闭包是函数编程语言中非常重要的一个工具,它可以作为参数传递给函数,也可作为返回值被函数返回。Rust 中的闭包与其他编程语言中的闭包都有所不同。接下来,我们将跟着老师一起,慢慢解开闭包的神秘面纱

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「12」数据结构(三)哈希表

用户头像
Samson
2022-08-22

在上节课程中,我们学习了 Rust 中的切片,今天我们将一块学习下哈希表。哈希表在任何一门开发语言中都是非常重要的容器数据结构,甚至很多语言都将哈希表作为一种内置的数据结构,例如 Java。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「11」数据结构(二)切片

用户头像
Samson
2022-08-20

今天要学习的数据结构是集合容器。像其他语言一样,容器例如数组、列表,是非常重要的数据结构。其实,只要是把某些特定的数据封装在某个数据结构中,这个数据结构就能称为容器。例如 Option<T> 封装了存在(Some)或不存在(None)的容器。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「10」数据结构(一)智能指针

用户头像
Samson
2022-08-19

在前面学习所有权时,我们学习了几个常用的智能指针,包括 Rc、Box、RefCell 等。智能指针是 Rust 中最容易令人感到困惑的一种数据结构。今天我们将跟着大佬一块再深入学习这块内容。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「09」类型系统(三)

用户头像
Samson
2022-08-17

合理地定义和使用 trait,会让代码结构具有很好的扩展性,让系统变得非常灵活。今天我们将学习几个常用的 trait。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「08」类型系统(二)

用户头像
Samson
2022-08-16

今天我们将继续学习多态的另外两种方式:特设多态和子类型多态。首先来简单回顾一下:特设多态指同一种行为有很多不同的实现,例如面向对象语言中的方法重载;子类型多态是指子类型可以当作父类型使用,例如面向对象语言中的里氏替换原则。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「07」类型系统(一)

用户头像
Samson
2022-08-15

在前面的课程中,我们学习了变量所有权、借用以及生命周期等 Rust 中非常重要且比较难懂的内容。今天我们将开始跟着老师一起学习 Rust 中的类型系统。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「06」内存管理

用户头像
Samson
2022-08-14

在前面的课程中,我们学习了 Rust 的所有权、生命周期等比较重要的概念。今天,我们将跟着陈天老师一起学习内存管理,即数据在内存中如何创建、如何存放以及如何销毁。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「05」生命周期

用户头像
Samson
2022-08-12

Rust 中的值或其引用,根据其作用域的大小,可以划分为两类:静态生命周期,其贯穿整个进程的生命周期;动态生命周期,即定义在某个作用域的生命周期。今天我们来跟着陈天老师学习一下。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「04」常用的智能指针

用户头像
Samson
2022-08-11

除了引用外,指针类型还有其他的成员,例如引用计数 Rc。它们与引用相比,具有更复杂的数据结构,例如元数据(当前长度、最大可用长度等)。而且,引用并不具备值的所有权,而智能指针可以拥有它们指向的数据。

https://static001.geekbang.org/infoq/26/26b2298af2700582c67bf34ce4fce0fd.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「03」Borrow 语义与引用

用户头像
Samson
2022-08-10

所有权原则为 Rust 带来了非常多的好处,例如不需要设计 GC。但是,所有权转移也使得开发者在赋值、函数调用和返回时必须谨慎地处理值的所有权问题,否则将会导致失去所有权而无法访问原来的值。

https://static001.geekbang.org/infoq/be/bef85cfcd792d48b4e72fd0eaf6d0e29.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

每日一 R「02」所有权与 Move 语义

用户头像
Samson
2022-08-09

今天我们要学习的概念是变量的所有权。对 Rust 有点了解的同学可能知道,所有权是 Rust 有别于其他语言的一个关键特性,也是 Rust 初学者吐槽最多和最容易混淆的特性之一。今天我们将跟着陈天老师来学习下所有权原则。

https://static001.geekbang.org/infoq/37/37ac044b8e411c33cdafc4e38e193c0c.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

️前端研发的新基础设施 - Rust ️🦀️

用户头像
阿里技术
2022-08-01

​Rust 连续7年成为最受开发者喜欢的语言,在相关领域有了更多的应用,让我们先看看Rust在相关领域的应用,再来关注为什么大家都不约而同地选择了Rust。

​Rust_​Rust技术文章_InfoQ写作社区