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

这篇具有很好参考价值的文章主要介绍了【小沐学Web】Rust实现Web服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

1、简介

https://www.rust-lang.org/

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

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

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

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

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

2、开发环境配置

2.1 下载

https://www.rust-lang.org/tools/install
下载安装程序 rustup-init.exe,直接运行即可完成安装。
【小沐学Web】Rust实现Web服务器

2.2 安装

运行 rustup-init.exe,如下下图所示:
【小沐学Web】Rust实现Web服务器

2.3 编辑工具

Rust 支持很多的集成开发环境(IDE)或开发专用的文本编辑器。
无论您喜欢用命令行还是可视化编辑器,都有适合的 Rust 集成供您选择。 您也可以使用 Rust DO_NOT_SUBMIT来为自己的编辑器添加 Rust 支持。
【小沐学Web】Rust实现Web服务器

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 = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/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???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

【小沐学Web】Rust实现Web服务器文章来源地址https://www.toymoban.com/news/detail-470715.html

到了这里,关于【小沐学Web】Rust实现Web服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小沐学前端】Node.js搭建HTTPS 服务器

    HTTPS是什么?HTTPS是基于TLS/SSL的HTTP协议。 HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存

    2024年02月03日
    浏览(49)
  • 【小沐学Python】Python实现Web图表功能(Dash)

    https://dash.plotly.com/ https://dash.gallery/Portal/ Dash 是一个用于构建Web应用程序的 Python 库,无需 JavaScript 。 Dash是下载量最大,最值得信赖的Python框架,用于构建ML和数据科学Web应用程序。 Dash是一个用来创建 web 应用的 python 库,它建立在 Plotly.js(同一个团队开发)、React 和 Flask 之上

    2024年02月04日
    浏览(64)
  • 用Rust设计一个并发的Web服务:常用Rust库如Tokio、Hyper等,基于TCP/IP协议栈,实现了一个简单的并发Web服务器,并结合具体的代码讲解如何编写并发Web服务器的程序

    作者:禅与计算机程序设计艺术 1994年,互联网泡沫破裂,一批优秀的程序员、工程师纷纷加入到web开发领域。而其中的Rust语言却备受瞩目,它是一种现代系统编程语言,专注于安全和并发。因此,Rust在当下成为最流行的编程语言之一,很多框架也开始使用Rust重构,这使得

    2024年02月06日
    浏览(62)
  • WebServer项目(四)->(基于Proactor的c++)Web服务器简介及简单实现

    Web Server(网页服务器)是一种软件程序,用于接收和处理来自客户端浏览器的HTTP请求,并向客户端浏览器提供HTML文档、图像、CSS和JavaScript等Web资源。 Web Server通常运行在服务器操作系统上,监听指定的端口,等待客户端浏览器发起HTTP请求。当收到HTTP请求后,Web Server会根据

    2024年02月12日
    浏览(55)
  • 【小沐学NLP】Python实现聊天机器人(微软Azure机器人服务)

    🍺NLP开发系列相关文章编写如下🍺: 1 🎈【小沐学NLP】Python实现词云图🎈 2 🎈【小沐学NLP】Python实现图片文字识别🎈 3 🎈【小沐学NLP】Python实现中文、英文分词🎈 4 🎈【小沐学NLP】Python实现聊天机器人(ELIZA))🎈 5 🎈【小沐学NLP】Python实现聊天机器人(ALICE)🎈 6

    2024年02月12日
    浏览(75)
  • 【小沐学Web】程序员必备的画图工具汇总

    《夏》 烈日灼灼, 水波清清, 热浪涛涛, 爽爽其心。 杨柳依依, 荷叶摇摇, 蜻蜓点点, 凉凉其身。 优秀的作图工具有许多,例如文本绘图工具 PlantUML,流程图设计工具 Draw.io,还有专业绘图工具 Sketch 和 Figma 等。 官网地址: https://www.draw.io/index.html https://www.diagrams.net/

    2024年02月07日
    浏览(65)
  • Rust编程语言入门之最后的项目:多线程 Web 服务器

    在 socket 上监听 TCP 连接 解析少量的 HTTP 请求 创建一个合适的 HTTP 响应 使用线程池改进服务器的吞吐量 优雅的停机和清理 注意:并不是最佳实践 创建项目 main.rs 文件 修改一: 修改二: 修改三: 修改四: 修改五: hello.html 文件 404.html 文件 单线程Web服务器 开启线程 lib.r

    2023年04月25日
    浏览(58)
  • 【小沐学C#】WPF中嵌入web网页控件(WebBrowser、WebView2、CefSharp)

    使用 Windows Presentation Foundation (WPF),你可以创建适用于 Windows 且具有非凡视觉效果的桌面客户端应用程序。 WPF 的核心是一个与分辨率无关且基于矢量的呈现引擎,旨在充分利用现代图形硬件。 WPF 通过一套完善的应用程序开发功能对该核心进行了扩展,这些功能包括可扩展应

    2024年02月03日
    浏览(56)
  • 【小沐学Python】Python实现语音识别(SpeechRecognition)

    https://pypi.org/project/SpeechRecognition/ https://github.com/Uberi/speech_recognition SpeechRecognition用于执行语音识别的库,支持多个引擎和 API,在线和离线。 Speech recognition engine/API 支持如下接口: 以上几个中只有 recognition_sphinx()可与CMU Sphinx 引擎脱机工作, 其他六个都需要连接互联网。另

    2024年02月04日
    浏览(67)
  • 【小沐学Python】Python实现语音识别(Whisper)

    https://github.com/openai/whisper Whisper 是一种通用的语音识别模型。它是在包含各种音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。 Open AI在2022年9月21日开源了号称其英文语音辨识能力已达到人类水准的Whisper神经网络,且它亦支

    2024年02月04日
    浏览(190)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包