Rust Rocket创建第一个hello world的Web程序 Rust Rocket开发常用网址和Rust常用命令
一、Rust Rocket简介
Rust Rocket 是一个用 Rust 语言编写的 Web 应用框架,它结合了 Rust 的安全性和性能优势,以及 Web 开发的便利性。以下是 Rust Rocket 框架的一些优点:
-
安全性:Rust 是一种注重安全性的编程语言,它在编译时就能捕获许多常见的编程错误,如空指针解引用、缓冲区溢出等。
-
性能:Rust 提供了与 C 和 C++ 相当的性能,但同时拥有更现代的语言特性和内存安全保证。
-
无垃圾回收:Rust 没有垃圾回收机制,它使用所有权和生命周期的概念来管理内存,这减少了运行时的开销。
-
并发性:Rust 的并发模型设计得既安全又高效,这使得在 Web 服务器中处理大量并发请求变得更加容易。
-
类型系统:Rust 的类型系统非常强大,它可以帮助开发者在编译时发现错误,减少运行时错误的可能性。
-
异步支持:Rust Rocket 支持异步编程,这使得它能够更有效地处理 I/O 密集型任务,如 Web 请求。
-
简洁的语法:Rust Rocket 提供了简洁的语法来定义路由和处理请求,这使得编写和理解代码更加容易。
-
社区和生态系统:虽然 Rust 的生态系统相对于其他一些语言来说还比较年轻,但它正在快速增长,社区活跃,有许多有用的库和工具。
-
跨平台:Rust Rocket 可以运行在多种操作系统上,包括 Windows、macOS、Linux 等。
-
测试和文档:Rust Rocket 提供了良好的测试支持,并且 Rust 社区非常重视文档的编写,这有助于开发者快速上手和解决问题。
-
错误处理:Rust 的错误处理机制使得错误处理更加明确和一致,这有助于减少错误和异常的混淆。
-
生命周期管理:Rust 的生命周期系统确保了引用有效性,避免了悬垂指针等问题,这对于 Web 应用中的资源管理尤其重要。
使用 Rust Rocket 开发 Web 应用,可以在保证应用安全性和性能的同时,享受到现代 Web 开发的便利。
二、Rust Rocket开发常用的网址
rust官网:
https://www.rust-lang.org/
rust包:
https://crates.io/
rust中文文档:
https://rustwiki.org/docs/
https://www.rustwiki.org.cn/
rocket框架官网
https://rocket.rs/
三、Rust开发常用的Cargo命令
cargo help
:查看更多 Cargo 命令和选项的帮助信息。
cargo help <命令>
:查看指定 Cargo 命令的帮助信息。
cargo new
: 创建项目
cargo init
:在当前目录初始化一个新的 Rust 项目,而不是创建一个新目录
–lib 标志
当你创建一个新的项目时,可以通过–lib标志指定你想创建一个库项目,而不是一个二进制项目。默认情况下,cargo new命令创建的是一个二进制项目,它包含一个可执行文件的入口点(main.rs)。如果你想创建一个库项目,你可以在命令中添加–lib标志,这样Cargo会创建一个库项目,其入口点为lib.rs,而不是main.rs。
例如,执行cargo new my_library --lib会创建一个名为my_library的库项目。
cargo build
: 编译项目
cargo build --release
:以优化模式编译项目,用于生产环境。
cargo run
: 运行项目
cargo add <依赖名称>
:命令自动添加依赖到 Cargo.toml 文件
cargo check
: 只检查编译错误,而不做代码优化以及生成可执行程序,非常适合在开发过程中快速检查语法、类型错误。
cargo clean
: 清理以前编译的结果。
cargo doc:
生成该项目的文档。
cargo test
: 执行单元测试。
cargo bench
: 执行 benchmark 性能测试。
cargo update
: 更新 Cargo.lock 文件中的依赖项到最新兼容版本。
cargo install:
安装可执行程序。这个命令非常有用,可以扩展 cargo 的子命令,为它增加新的功能。比如 可以使用 cargo install cargo-tree 命令,然后通过 cargo tree 打印依赖项的树形结构。
cargo uninstall
: 卸载可执行程序。
cargo publish
:将你的库项目发布到 crates.io
四、Rust Rocket创建第一个hello world的Web程序
要使用 Rust Rocket 创建一个简单的 “Hello, World!” Web 程序,你需要遵循以下步骤:
-
安装 Rust:如果你还没有安装 Rust,可以通过访问 Rust 官方网站 来安装。
-
创建一个新的 Rust 项目:使用 Cargo(Rust 的包管理器和构建工具)创建一个新的项目。
cargo new rust_rocket --bin cd rust_rocket
-
添加 Rocket 作为依赖:在项目的
Cargo.toml
文件中添加 Rocket 作为依赖。[dependencies] rocket = "0.5.0"
请注意,Rocket 的版本可能会随着时间更新,所以你应该检查 Rocket 的 GitHub 仓库 或 crates.io 以获取最新版本。
-
编写你的 Web 程序:使用 Rocket 的宏和函数来创建一个简单的路由,返回 “Hello, World!”。
打开
src/main.rs
文件,并用以下代码替换其内容:#[macro_use] extern crate rocket; // 使用 rocket 的宏#[launch] fn rocket() -> _ {rocket::build()// 注册路由.mount("/", routes![index]) }// 定义一个路由,当访问 '/' 路径时,返回 "Hello, World!" #[get("/")] fn index() -> &'static str {"Hello, world!" }
-
运行你的程序:使用 Cargo 运行你的 Rust 程序。
cargo run
-
访问你的 Web 程序:程序运行后,打开你的 Web 浏览器,访问
http://localhost:8000
。你应该能看到显示 “Hello, World!” 的页面。
以上步骤将创建并运行一个简单的 Rust Rocket Web 程序,它会在默认端口 8000 上提供服务,并响应根路径 /
的请求,返回 “Hello, World!” 文本。
相关文章:

Rust Rocket创建第一个hello world的Web程序 Rust Rocket开发常用网址和Rust常用命令
一、Rust Rocket简介 Rust Rocket 是一个用 Rust 语言编写的 Web 应用框架,它结合了 Rust 的安全性和性能优势,以及 Web 开发的便利性。以下是 Rust Rocket 框架的一些优点: 安全性:Rust 是一种注重安全性的编程语言,…...

第G9周:ACGAN理论与实战
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制🚀 文章来源:K同学的学习圈子 上一周已经给出代码,需要可以跳转上一周的任务 第G8周:ACGAN任…...

Linux网络部分——DNS域名解析服务
目录 1. 域名结构 2. 系统根据域名查找IP地址的过程 3.DNS域名解析方式 4.DNS域名解析的工作原理【☆】 5.域名解析查询方式 6.搭建主从DNS域名服务器 ①初始化操作主服务器和从服务器,安装BIND软件 ②修改主服务器的主配置文件、区域配置文件、区域数…...

预处理详解
乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…...
Python的创建和使用自定义模块
Python 的模块是组织代码的基本单元,它可以包含变量、函数、类等,并且可以被其他 Python 程序引用和重用。除了使用 Python 提供的标准库和第三方库外,开发者还可以创建自定义模块,用于组织和管理自己的代码。本文将详细介绍如何创…...

Python根据预设txt生成“你画我猜”题目PPT(素拓活动小工具)
Python根据预设txt生成“你画我猜”题目PPT(素拓活动小工具) 场景来源 去年单位内部的一次素拓活动,分工负责策划设置其中的“你画我猜”环节,网络上搜集到题目文字后,想着如何快速做成对应一页一页的PPT。第一时间想…...

小程序地理位置接口权限直接抄作业
小程序地理位置接口有什么功能? 随着小程序生态的发展,越来越多的小程序开发者会通过官方提供的自带接口来给用户提供便捷的服务。但是当涉及到地理位置接口时,却经常遇到申请驳回的问题,反复修改也无法通过,给的理由也…...

【Osek网络管理测试】[TG3_TC6]等待总线睡眠状态_2
🙋♂️ 【Osek网络管理测试】系列💁♂️点击跳转 文章目录 1.环境搭建2.测试目的3.测试步骤4.预期结果5.测试结果 1.环境搭建 硬件:VN1630 软件:CANoe 2.测试目的 验证DUT在满足进入等待睡眠状态的条件时是否进入该状态 …...

BEV下统一的多传感器融合框架 - FUTR3D
BEV下统一的多传感器融合框架 - FUTR3D 引言 在自动驾驶汽车或者移动机器人上,通常会配备许多种传感器,比如:光学相机、激光雷达、毫米波雷达等。由于不同传感器的数据形式不同,如RGB图像,点云等,不同模态…...
c#和python的flask接口的交互
一、灰度图像的传输 c#端的传输 //读入文件夹中的图像 Mat img2 new Mat(file, ImreadModes.AnyColor); //将图像的数据转换成和相机相同的buffer数据 byte[] image_buffer new byte[img2.Width * img2.Height]; int cn img2.Channels(); //通道数 if (cn 1){//将图像的数…...

Python测试框架Pytest的参数化详解
上篇博文介绍过,Pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升。 在实际工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余。这里,我们来了解一下pytest.mark.parametrize装饰器&…...

KernelSU 如何不通过模块,直接修改系统分区
刚刚看了术哥发的视频,发现kernelSU通过挂载OverlayFS实现无需模块,即可直接修改系统分区,很是方便,并且安全性也很高,于是便有了这篇文章。 下面的教程与原视频存在差异,建议观看原视频后再结合本文章进行操作。 在未进行修改前,我们打开/system/文件夹,并在里面创建…...

红日靶场ATTCK 1通关攻略
环境 拓扑图 VM1 web服务器 win7(192.168.22.129,10.10.10.140) VM2 win2003(10.10.10.135) VM3 DC win2008(10.10.10.138) 环境搭建 win7: 设置内网两张网卡,开启…...

CellMarker | 人骨骼肌组织细胞Marker大全!~(强烈建议火速收藏!)
1写在前面 分享一下最近看到的2篇paper关于骨骼肌组织的细胞Marker,绝对的Atlas级好东西。👍 希望做单细胞的小伙伴觉得有用哦。😏 2常用marker(一) general_mrkrs <- c( MYH7, TNNT1, TNNT3, MYH1, MYH2, "C…...
游戏名台词大赏
文章目录 原神(圈内) 崩坏:星穹铁道(圈内) 崩坏3(圈内) 原神 只要不失去你的崇高,整个世界都会为你敞开。 总会有地上的生灵,敢于直面雷霆的威光。 谁也没有见过风&…...

OpenCV如何在图像中寻找轮廓(60)
返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV如何模板匹配(59) 下一篇 :OpenCV检测凸包(61) 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 cv::findContours使用 OpenCV 函数 cv::d rawContours …...

java 泛型题目讲解
泛型的知识点 泛型仅存在于编译时期,编译期间JAVA将会使用Object类型代替泛型类型,在运行时期不存在泛型;且所有泛型实例共享一个泛型类 public class Main{public static void main(String[] args){ArrayList<String> list1new Arra…...
pptx 文件版面分析-- python-pptx(python 文档解析提取)
安装 pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple --ignore-installedpptx 解析代码实现 from pptx import Presentation file_name "rag_pptx/test1.pptx" # 打开.pptx文件 ppt Presentation(file_name) for slide in ppt.slides:#pr…...

http的basic 认证方式
写在前面 本文看下http的basic auth认证方式。 1:什么是basic auth认证 basic auth是一种http协议规范中的一种认证方式,即一种证明你就是你的方式。更进一步的它是一种规范,这种规范是这样子,如果是服务端使用了basic auth认证…...
【信息系统项目管理师练习题】信息系统治理
IT治理的核心是关注以下哪项内容? a) 人员培训和发展计划 b) IT定位和信息化建设与数字化转型的责权利划分 c) 业务流程的绩效管理 d) IT基础设施的优化利用 答案: b) IT定位和信息化建设与数字化转型的责权利划分 IT治理体系框架的组成部分包括以下哪些? a) IT战略目标、IT治…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...