0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Rust受欢迎程度肉眼可见

jf_wN0SrCdH 来源:Rust语言中文社区 2023-01-29 11:21 次阅读

如今,Rust 受欢迎程度肉眼可见。

时间线拉到最近:TIOBE 十一月编程语言榜单中,Rust 的“大爆发”(在 TIOBE 编程语言排名 Top 20站住了脚)成为了开发者们的期待之中,意料之外。

TIOBE CEO Paul Jansen 对此表示:多年来,我们一直期待着 Kotlin、Dart、Julia 等语言进入 TIOBE 前 20 名,但他们都没有成功,而唯一的例外似乎是 Rust

除了 TIOBE 之外,知名开发者调查分析公司 SlashData 近期发布的《2022开发者报告(第23版)》也显示出 Rust 语言社区增长速度很快。

这里有一组调查数据:过去两年里, Rust 社区的开发者从 2020年 Q3 的 80 万增长到 2022 年 Q3 的 280 万人。这个诞生于 2015 年的新编程语言以锐不可当之势成为大多数开发者心中的编程语言“黑马”。

实际上,围绕着 Rust 的描述有很多,有人说它没有历史包袱,能够将表达力、高性能、内存安全集于一身,甚至说掌握了 Rust 就掌握了许多语言精髓。这种说法不无道理,毕竟现在有人用 Rust 替代 Python 去写机器学习相关的应用,有人拿它写前端 UI,有人用它去实现区块链,有人拿它重建技术栈,甚至于 Linux 官方还接受 Rust 作为除 C 语言之外唯一可以进行内核开发的语言。

种种外在加持皆可看出 Rust 正处于一个态势渐佳的发展局面。高性能与安全性吸引开发者入门,然而 Rust 从语法到特性的复杂程度却又劝退不少人。

都说实践中见真知,比起闷着头看文档,不如从一些小工具上亲自上手,看看 Rust 是如何应用在不同领域的。基于此,今天我们给大家梳理 5 个用 Rust 编写的开源项目,虽不能面面俱到,但是希望以此抛砖引玉,让大家对 Rust 实现的应用有所认识。如果你有更简单易用的 Rust 开源项目,欢迎推荐给我们,或者前往 Gitee 分享你的实践成果。

salvo

项目作者:salvo-rs

开源许可证:Apache-2.0

项目地址:

https://gitee.com/salvo-rs/salvo

Salvo是一个简单易用的 Rust Web 后端框架,开发后端服务只需要基本的 Rust 知识。

如何安装?

1.新建一个全新的项目

cargonewhello_salvo--bin

2.添加Cargo.toml

[dependencies]
salvo="*"
tokio={version="1",features=["macros"]}

3.创建一个简单的函数处理程序main.rs文件

usesalvo::*;

#[handler]
asyncfnhello(res:&mutResponse){
res.render(Text::Plain("HelloWorld"));
}

4.创建一个根路由器及服务器,调用 bind 函数

usesalvo::*;

#[handler]
asyncfnhello()->&'staticstr{
"HelloWorld"
}
#[tokio::main]
asyncfnmain(){
letrouter=Router::new().get(hello);
letacceptor=TcpListener::new("127.0.0.1:7878").bind().await;
Server::new(acceptor).serve(router).await;
}

恭喜你的一个 Salvo 程序已经完成. 只需要在命令行下运行 cargo run, 然后在浏览器里打开 http://127.0.0.1:7878即可。

rust-library-chinese

项目作者:wtklbm

开源许可证:Apache-2.0

项目地址:

https://gitee.com/wtklbm/rust-library-chinese

这是一个 Rust 核心库和标准库中文翻译,它将作为 IDE 工具的智能提示,生成本地 API 文档。

如何通过脚本安装

Windows

#在`Powershell`中执行
#该脚本会请求并执行当前项目下的`bin/install.ps1`

powershell.exe-encodedCommand([Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes((Invoke-WebRequest-Uri"https://gitee.com/wtklbm/rust-library-chinese/raw/main/bin/install.ps1").Content)))

macOS 或 Linux

#在终端中执行
#该脚本会请求并执行当前项目下的`bin/install.sh`

bash<(curl -fsSLk https://gitee.com/wtklbm/rust-library-chinese/raw/main/bin/install.sh)

效果显示

dist目录下一共提供了两个文件,它们都是构建好的中文文档,其中一个文件的后缀是带有contrast字样。这两个文件有一些区别:

不带有contrast字样的文档是纯中文文档,英文内容都被直接替换为中文了,且在任何 IDE 下都可以得到相同的效果。

d46c8670-9f75-11ed-bfe3-dac502259ad0.png

而带有contrast字样的文档是对照文档,是在英文语句的后面追加了中文翻译语句,实现了英中文并列显示,在不同的 IDE 中有不同的效果。

vscode中,英中文会被合并为一行(没有解决方案):

d47d415e-9f75-11ed-bfe3-dac502259ad0.png

而在JetBrains系列 IDE 中,中英文会并列显示:

d48a437c-9f75-11ed-bfe3-dac502259ad0.png

wechat-rs

项目作者:Neil-鹏

开源许可证:MIT

项目地址:

https://gitee.com/shaipe/wechat-rs

Wechat-rs 是采用 Rust 语言的对接实现接口对接的 SDK ,支持微信公众号、开放平台、小程序、小商店、微信支付等接口,方便使用 Rust 语言进行微信开发的同学开箱即用。

如何操作

项目作者针对每个子模块进行整体性说明,子模块采用 features 的方式进行设计规划,可以整体使用也可以独立使用按项目的需要进行引入。

例如:使用微信小程序模块时,在cargo.toml中引入时添加 features

wechat={version="0.1.0",features=["weapp"]}

tailmond

项目作者:Tailmon-EDR

开源许可证:Apache-2.0

项目地址:

https://gitee.com/tailmon-edr/tailmond

Tailmond 的 Linux 终端主程序采用 Rust 开发,旨在为企业/个人站长构建网络安全检测与防御体系,主要功能包括:网络攻击防护、病毒查杀、漏洞检测、恶意进程监控、应用资产管理等。

如何安装?

下载安装包

tarzxvftailmond-0.1.2-alpha-linux-x86_64-centos7.tar.gz
cdtailmond-0.1.2

修改配置

vimconfig/tailmond.toml

主要修改 Web 界面端口号、用户名、密码和网卡名称

#Web界面端口号
port=8080

#Web界面登录用户名
username="admin"

#Web界面登录密码
password="修改为你的密码"

#监控网卡
monitor-eth="eth0"

启动

bin/tailmon-edrstart

停止

bin/tailmon-edrstop

通过浏览器访问:

http://你的IP地址:8080

注意:

目前该项目只在阿里云 CentOS7 上测试通过,且处于非常早期开发阶段,暂不能用于生产环境部署。

chimes-rust

项目作者:poethxp

开源许可证:Apache-2.0

项目地址:

https://gitee.com/poethxp/chimes-rust

chimes-rust 主要实现了 eladmin 中的系统管理功能,以及登录和用户中心。其中,应用后台管理程序使用 Rust 实现,前端则是采用最新的eladmin 前端,经过少量修改实现。主要修改是API路径的,以及表格或表单的字段绑定(因为Rust的命名规范的要求进行了一些字段的修改)。

如何安装?

1.创建数据chimesrust,并导入数据 sql/chimesrust.sql

2.编译 backend/chimes-rust,可以进入该目录后,直接执行cargo r

3.打包前端 frontend/eladmin-web

4.后端的一些配置可以修改backend/chimes-rust/conf/app.yml

效果显示

d497c7e0-9f75-11ed-bfe3-dac502259ad0.pngd4a59ae6-9f75-11ed-bfe3-dac502259ad0.png

年终狂欢季,福利没停过

自 11 月 8 日以来,Gitee 企业版已经开启了 「年终狂欢季」 活动,点击文末 阅读原文,三重惊喜福利新老用户均可享受!

新老同享 好礼畅领

现在购买 Gitee 企业版任意版本,即可获得使用时长赠送,最多可享六个月使用时长,且购买任意版本两年及以上即可获赠价值 488 元的办公室好礼一份。

d4b2fd12-9f75-11ed-bfe3-dac502259ad0.png

高阶功能 不限时免

除了项目流水线 Gitee CI/CD 所有企业免费用之外,目前代码扫描引擎 Gitee Scan 已经实现四大升级,助力企业完美实现质量左移。

近期自动化工具 Gitee Automation 也将上线并免费提供给所有企业用户使用。感兴趣的快去 Gitee 企业版试试吧。

d4c1a79a-9f75-11ed-bfe3-dac502259ad0.pngd4d0d968-9f75-11ed-bfe3-dac502259ad0.png

友福同享 荐者有份

同时,Gitee 推荐官计划也将在活动期间火热升级,活动期间奖励提升至 150%,成为推荐官,最高躺赢 45% 现金!

d4e1284a-9f75-11ed-bfe3-dac502259ad0.png

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    3256

    浏览量

    42415
  • Rust
    +关注

    关注

    1

    文章

    228

    浏览量

    6574

原文标题:Rust 真香却难学?不如先从开源项目试试

文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何用Rust编写一个ChatGPT桌面应用(保姆级教程)

    用IDEA开发的java仔) 安装 Rust 语言工具链:首先,请确保你已安装了 Rust 编程语言工具链,包括 Rust 编译器 (rustc) 和包管理工具 (cargo)。可以通过访问
    的头像 发表于 09-25 11:19 302次阅读
    如何用<b class='flag-5'>Rust</b>编写一个ChatGPT桌面应用(保姆级教程)

    未来嵌入式系统的黄金搭档 MCX N947遇上Rust

      Rust 介绍 Rust 是一门注重安全的语言,相比于 C/C++/ASM 有着更高级的抽象能力、编译器带来的安全特性与广泛友好的社区支持。 Linux 与 Windows 内核也都
    的头像 发表于 07-25 09:14 1298次阅读
    未来嵌入式系统的黄金搭档 MCX N947遇上<b class='flag-5'>Rust</b>

    Vector和HighTec推出基于Rust和AUTOSAR Classic实现安全应用的解决方案

    Vector和HighTec两家公司成功展示了Rust应用程序与基于C语言的AUTOSAR Classic基础软件的集成,这在行业内还属首次。这样一来,Rust及其优势可以被应用在有最高功能安全要求的汽车ECU中。
    的头像 发表于 07-17 14:42 660次阅读
    Vector和HighTec推出基于<b class='flag-5'>Rust</b>和AUTOSAR Classic实现安全应用的解决方案

    FC-135是一款受欢迎的32.768kHz晶振

    了,爱普生晶振FC-135是一款受欢迎的32.768KHz晶振,小体积尺寸3.2x1.5mm无源晶振,石英晶体谐振器,超小型,轻薄型,非常适用于钟表电子,智能手平板电脑,
    的头像 发表于 06-07 11:48 413次阅读
    FC-135是一款<b class='flag-5'>受欢迎</b>的32.768kHz晶振

    esp32s3开发时,每次改动,rust编译的时间都很长为什么?

    esp32s3 开发时,每次改动,rust编译时间太长
    发表于 06-05 06:36

    在Aurix Tc375Lk上使用Rust编程语言可以吗?

    您好,如果我想在 Aurix Tc375Lk 上使用 Rust 编程语言,可以吗?如果是,链接 rust 编译器 ADS 和 freetoolchain 的步骤是什么?你有在 ADS 或 freetoolchian 中链接编译器的用户指南吗? 请详细说明谢谢
    发表于 05-17 13:42

    [鸿蒙]OpenHarmony4.0的Rust开发

    中集成 Rust 代码,并最大程度发挥 Rust 和 OpenHarmony 中原有 C/C++ 代码的交互性,采用 GN 作为统一构建工具,即通过 GN 构建 Rus
    的头像 发表于 02-26 17:28 809次阅读
    [鸿蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>开发

    谷歌捐款100万美元给Rust基金会,以增强C++与Rust的交互性

    如今,谷歌多项核心业务仍以 C++为主要编程语言,虽然无法直接使用Rust替代现有的C++程序,但谷歌依然选择支持Rust基金会的“Interop Initiative”计划,帮助那些选用C++的机构更为顺畅地过渡至Rust上。
    的头像 发表于 02-19 15:41 612次阅读

    鸿蒙OS之Rust开发

    Rust是一门静态强类型语言,具有更安全的内存管理、更好的运行性能、原生支持多线程开发等优势。
    的头像 发表于 01-29 17:19 904次阅读

    一次Rust重写基础软件的实践

    受到2022年“谷歌使用Rust重写Android系统且所有Rust代码的内存安全漏洞为零” [1] 的启发,最近笔者怀着浓厚的兴趣也顺应Rust 的潮流,尝试着将一款C语言开发的基础软件转化
    的头像 发表于 01-25 11:21 597次阅读

    低功耗蓝牙模块备受欢迎的原因有哪些?

    近些年来,低功耗蓝牙模块在物联网领域应用非常广泛,主要体现在智能家居、电子工业、智慧医疗、智能农场等,为什么低功耗蓝牙模块如此受欢迎呢?其主要原因在于低功耗蓝牙模块具备以下7个特点。 一、跳频
    的头像 发表于 01-23 09:45 397次阅读
    低功耗蓝牙模块备<b class='flag-5'>受欢迎</b>的原因有哪些?

    从Rustup出发看Rust编译生态

    从Rustup出发看Rust编译生态 1. Rust和LLVM的关系是怎样的? 2. Rustup中targets是什么,为什么可以安装多个? 3. Rust在windows上为什么需要安装Visual studio?
    的头像 发表于 01-02 11:00 504次阅读

    基于Rust的嵌入式符合ACID的键值数据库

    surrealkv -- 基于 Rust 的 low level、版本化、嵌入式、符合 ACID 的键值数据库
    的头像 发表于 12-28 11:29 863次阅读

    从WasmEdge运行环境读写Rust Wasm应用的时序数据

    WebAssembly (Wasm) 正在成为一个广受欢迎的编译目标,帮助开发者构建可迁移平台的应用。最近 Greptime 和 WasmEdge 协作,支持了在 WasmEdge 平台上的 Wasm 应用通过 MySQL 协议读写 GreptimeDB 中的时序数据。
    的头像 发表于 12-22 11:03 955次阅读

    电力测功机为什么受欢迎

    电力测功机受欢迎的原因有以下几个方面: 首先,电力测功机是一种高效、环保的测功设备,它采用电力驱动,不会产生废气和噪音,对环境没有污染。在当前环保意识日益提高的背景下,这种环保的特点使得电力测功机
    的头像 发表于 12-19 10:26 341次阅读
    电力测功机为什么<b class='flag-5'>受欢迎</b>?