电子说
如今,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-rs
开源许可证:Apache-2.0
项目地址:
https://gitee.com/salvo-rs/salvo
Salvo是一个简单易用的 Rust Web 后端框架,开发后端服务只需要基本的 Rust 知识。
1.新建一个全新的项目
cargo new hello_salvo --bin
2.添加Cargo.toml
[dependencies]
salvo = "*"
tokio = { version = "1", features = ["macros"] }
3.创建一个简单的函数处理程序main.rs
文件
use salvo::*;
#[handler]
async fn hello(res: &mut Response) {
res.render(Text::Plain("Hello World"));
}
4.创建一个根路由器及服务器,调用 bind 函数
use salvo::*;
#[handler]
async fn hello() -> &'static str {
"Hello World"
}
#[tokio::main]
async fn main() {
let router = Router::new().get(hello);
let acceptor = TcpListener::new("127.0.0.1:7878").bind().await;
Server::new(acceptor).serve(router).await;
}
恭喜你的一个 Salvo 程序已经完成. 只需要在命令行下运行 cargo run, 然后在浏览器里打开 http://127.0.0.1:7878
即可。
项目作者: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 下都可以得到相同的效果。
而带有contrast
字样的文档是对照文档,是在英文语句的后面追加了中文翻译语句,实现了英中文并列显示,在不同的 IDE 中有不同的效果。
在vscode
中,英中文会被合并为一行(没有解决方案):
而在JetBrains
系列 IDE 中,中英文会并列显示:
项目作者:Neil-鹏
开源许可证:MIT
项目地址:
https://gitee.com/shaipe/wechat-rs
Wechat-rs 是采用 Rust 语言的对接实现接口对接的 SDK ,支持微信公众号、开放平台、小程序、小商店、微信支付等接口,方便使用 Rust 语言进行微信开发的同学开箱即用。
项目作者针对每个子模块进行整体性说明,子模块采用 features 的方式进行设计规划,可以整体使用也可以独立使用按项目的需要进行引入。
例如:使用微信小程序模块时,在cargo.toml
中引入时添加 features
wechat = {version="0.1.0", features=["weapp"]}
项目作者:Tailmon-EDR
开源许可证:Apache-2.0
项目地址:
https://gitee.com/tailmon-edr/tailmond
Tailmond 的 Linux 终端主程序采用 Rust 开发,旨在为企业/个人站长构建网络安全检测与防御体系,主要功能包括:网络攻击防护、病毒查杀、漏洞检测、恶意进程监控、应用资产管理等。
下载安装包
tar zxvf tailmond-0.1.2-alpha-linux-x86_64-centos7.tar.gz
cd tailmond-0.1.2
修改配置
vim config/tailmond.toml
主要修改 Web 界面端口号、用户名、密码和网卡名称
# Web界面端口号
port = 8080
# Web界面登录用户名
username = "admin"
# Web界面登录密码
password = "修改为你的密码"
# 监控网卡
monitor-eth = "eth0"
启动
bin/tailmon-edr start
停止
bin/tailmon-edr stop
通过浏览器访问:
http://你的IP地址:8080
注意:
目前该项目只在阿里云 CentOS7 上测试通过,且处于非常早期开发阶段,暂不能用于生产环境部署。
项目作者: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
自 11 月 8 日以来,Gitee 企业版已经开启了 「年终狂欢季」 活动,点击文末 阅读原文,三重惊喜福利新老用户均可享受!
现在购买 Gitee 企业版任意版本,即可获得使用时长赠送,最多可享六个月使用时长,且购买任意版本两年及以上即可获赠价值 488 元的办公室好礼一份。
除了项目流水线 Gitee CI/CD 所有企业免费用之外,目前代码扫描引擎 Gitee Scan 已经实现四大升级,助力企业完美实现质量左移。
近期自动化工具 Gitee Automation 也将上线并免费提供给所有企业用户使用。感兴趣的快去 Gitee 企业版试试吧。
同时,Gitee 推荐官计划也将在活动期间火热升级,活动期间奖励提升至 150%,成为推荐官,最高躺赢 45% 现金!
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !