200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【小沐学前端】Rust实现Web服务器

【小沐学前端】Rust实现Web服务器

时间:2023-03-10 12:38:29

相关推荐

【小沐学前端】Rust实现Web服务器

文章目录

1、简介2、开发环境配置2.1 下载2.2 安装2.3 编辑工具2.4 构建工具2.5 自动化工具 3、Hello World4、TCP/UDP通信5、Web服务器结语

1、简介

https://www.rust-/

Rust: 一种使每个人都能够构建可靠且高效的软件的语言。

如今,全球有数百家公司在生产环境中使用 Rust,以提供快速、资源少、跨平台的解决方案。您熟悉和喜爱的软件,例如Firefox、 Dropbox和Cloudflare,都使用 Rust。从初创公司到大公司,从嵌入式设备到可扩展的 Web 服务,Rust 都非常适合。

高性能

Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

可靠性

Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全——使您能够在编译时消除许多类别的错误。

生产率

Rust 有很棒的文档、一个带有有用错误消息的友好编译器和一流的工具——一个集成的包管理器和构建工具、具有自动完成和类型检查的智能多编辑器支持、一个自动格式化程序等等。

2、开发环境配置

2.1 下载

https://www.rust-/tools/install

下载安装程序 rustup-init.exe,直接运行即可完成安装。

2.2 安装

运行 rustup-init.exe,如下下图所示:

2.3 编辑工具

Rust 支持很多的集成开发环境(IDE)或开发专用的文本编辑器。

无论您喜欢用命令行还是可视化编辑器,都有适合的 Rust 集成供您选择。 您也可以使用 Rust DO_NOT_SUBMIT来为自己的编辑器添加 Rust 支持。

2.4 构建工具

Cargo 是 Rust 的构建工具,它将常用命令集于一身,无需引入其它命令。

(1)安装

crates.io 上拥有成千上万的软件包,您想要的解决方案在这里几乎都能找到。 站在巨人的肩膀上,您的团队可远离重复,专注创新。(2)测试

Rust 出色的测试工具能让您对代码放心。cargo test 是 Rust 统一的测试方案。测试代码既可写在功能代码之后,也可放在独立文件中,它满足您所有的测试需求。(3)部署

cargo build 可为不同平台构建精益的可执行文件。仅需一行命令,您的代码就能针对 Windows、Linux、macOS 和 Web 进行编译。支持全部现代平台接口,无需定制构建文件。

2.5 自动化工具

利用自动化加速开发

(1)Rustfmt

Rustfmt 用于自动格式化 Rust 代码,使代码更加容易阅读、编写和维护。最重要的一点是:您再也不必为空格或大括号位置而争论了。(2)Clippy

“您似乎正在编写一个迭代器。”

Clippy 能够帮助所有不同经验水平的开发者编写出符合惯例的代码及推行标准写法。(3)Cargo Doc

Cargo 文档构建器让所有 API 都有文档。 您可以通过 cargo doc 在本地生成文档, 还可以通过 docs.rs 在线获取公开的 crate 文档。

3、Hello World

fn main() {println!("Hello World!");}

4、TCP/UDP通信

5、Web服务器

Cargo.toml

[package]name = "testweb"version = "0.1.0"edition = ""# See more keys and their definitions at https://doc.rust-/cargo/reference/manifest.html[dependencies]iron = "0.5.1"mime = "0.2.3"router = "0.5.1"urlencoded = "0.5.0"

main.rs

extern crate iron;#[macro_use] extern crate mime;use iron::prelude::*;use iron::status;//use iron::Response;fn main() {println!("Serving on http://0.0.0.0:8080...");Iron::new(get_form).http("0.0.0.0:8080").unwrap();}fn get_form(_request: &mut Request) -> IronResult<Response> {let mut response = Response::new();response.set_mut(status::Ok);response.set_mut(mime!(Text/Html; Charset=Utf8));response.set_mut(r#"<html><body>Hello!</body></html>"#);Ok(response)}

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭

如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???

如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)

感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。