1、簡介
https://www.rust-lang.org/
Rust: 一種使每個人都能夠構(gòu)建可靠且高效的軟件的語言。
如今,全球有數(shù)百家公司在生產(chǎn)環(huán)境中使用 Rust,以提供快速、資源少、跨平臺的解決方案。您熟悉和喜愛的軟件,例如Firefox、 Dropbox和Cloudflare,都使用 Rust。從初創(chuàng)公司到大公司,從嵌入式設備到可擴展的 Web 服務,Rust 都非常適合。
-
高性能
Rust 速度驚人且內(nèi)存利用率極高。由于沒有運行時和垃圾回收,它能夠勝任對性能要求特別高的服務,可以在嵌入式設備上運行,還能輕松和其他語言集成。 -
可靠性
Rust 豐富的類型系統(tǒng)和所有權(quán)模型保證了內(nèi)存安全和線程安全——使您能夠在編譯時消除許多類別的錯誤。 -
生產(chǎn)率
Rust 有很棒的文檔、一個帶有有用錯誤消息的友好編譯器和一流的工具——一個集成的包管理器和構(gòu)建工具、具有自動完成和類型檢查的智能多編輯器支持、一個自動格式化程序等等。
2、開發(fā)環(huán)境配置
2.1 下載
https://www.rust-lang.org/tools/install
下載安裝程序 rustup-init.exe,直接運行即可完成安裝。
2.2 安裝
運行 rustup-init.exe,如下下圖所示:
2.3 編輯工具
Rust 支持很多的集成開發(fā)環(huán)境(IDE)或開發(fā)專用的文本編輯器。
無論您喜歡用命令行還是可視化編輯器,都有適合的 Rust 集成供您選擇。 您也可以使用 Rust DO_NOT_SUBMIT來為自己的編輯器添加 Rust 支持。
2.4 構(gòu)建工具
Cargo 是 Rust 的構(gòu)建工具,它將常用命令集于一身,無需引入其它命令。
- (1)安裝
crates.io 上擁有成千上萬的軟件包,您想要的解決方案在這里幾乎都能找到。 站在巨人的肩膀上,您的團隊可遠離重復,專注創(chuàng)新。 - (2)測試
Rust 出色的測試工具能讓您對代碼放心。cargo test 是 Rust 統(tǒng)一的測試方案。測試代碼既可寫在功能代碼之后,也可放在獨立文件中,它滿足您所有的測試需求。 - (3)部署
cargo build 可為不同平臺構(gòu)建精益的可執(zhí)行文件。僅需一行命令,您的代碼就能針對 Windows、Linux、macOS 和 Web 進行編譯。支持全部現(xiàn)代平臺接口,無需定制構(gòu)建文件。
2.5 自動化工具
利用自動化加速開發(fā)
- (1)Rustfmt
Rustfmt 用于自動格式化 Rust 代碼,使代碼更加容易閱讀、編寫和維護。最重要的一點是:您再也不必為空格或大括號位置而爭論了。 - (2)Clippy
“您似乎正在編寫一個迭代器?!?br> Clippy 能夠幫助所有不同經(jīng)驗水平的開發(fā)者編寫出符合慣例的代碼及推行標準寫法。 - (3)Cargo Doc
Cargo 文檔構(gòu)建器讓所有 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)
}
結(jié)語
如果您覺得該方法或代碼有一點點用處,可以給作者點個贊,或打賞杯咖啡;
╮( ̄▽ ̄)╭如果您感覺方法或代碼不咋地
//(ㄒoㄒ)//,就在評論處留言,作者繼續(xù)改進;
o_O???如果您需要相關(guān)功能的代碼定制化開發(fā),可以留言私信作者;
(????)感謝各位大佬童鞋們的支持!
( ′ ▽′ )? ( ′ ▽′)っ!??!文章來源:http://www.zghlxwxcb.cn/news/detail-470715.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-470715.html
到了這里,關(guān)于【小沐學Web】Rust實現(xiàn)Web服務器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!