Rust 学习笔记
Hello world 代码一
fn main() {
// 在这里编写你的 Rust 代码
println!("Hello world!");
}
什么是Rust 语言?
Rust是一门系统编写语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式等编程范式的多范式语言。Rust在语法上和C++类似 ,设计者想要在保证性能的同时提供更好的内存安全。 Rust最初是研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。 Rust的设计者们通过在研发Servo网站浏览器布局引擎过程中积累的经验优化了Rust语言和Rust编译器。
Rust 安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Rust 由工具 rustup 安装和管理。因而不同时期存在大量不同的 Rust 构建版本。 rustup
用于管理不同平台下的 Rust 构建版本并使其互相兼容, 支持安装由 Beta 和 Nightly 频道发布的版本,并支持其他用于交叉编译的编译版本。
如果您曾经安装过 rustup
,可以执行 rustup update
来升级 Rust。
效率
下面从三个角度来谈谈 Rust 的效率:学习、运行、开发。
安装VsCode的Rust插件
Rust-analyer 安装插件
crate的插件
Hello_world.rs
use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder};#[get("/")]
async fn hello() -> impl Responder {HttpResponse::Ok().body("Hello world! by")
}#[post("/echo")]
async fn echo(req_body: String) -> impl Responder {HttpResponse::Ok().body(req_body)
}async fn manual_hello() -> impl Responder {HttpResponse::Ok().body("Hey there! by keny")
}#[actix_web::main]
async fn main() -> std::io::Result<()> {HttpServer::new(|| {App::new().service(hello).service(echo).route("/hey", web::get().to(manual_hello))}).bind(("127.0.0.1", 8080))?.run().await.
}
自己运行Gargo build hello_world
运行Hello_world的Web
127.0.0.1:8080/hello
127.0.0.1:8080/hey
Actix Web
很久以前,ActixWeb是建立在activixactor框架之上的。现在,ActixWeb在很大程度上与actor框架无关,而是使用不同的系统构建的。尽管activx仍然保持着,但随着未来和异步/等待生态系统的成熟,它作为一种通用工具的有用性正在减弱。此时,只有WebSocket端点才需要使用activx。
我们称Actix Web为一个强大而实用的框架。从所有的意图和目的来看,这是一个有一些曲折的微观框架。如果你已经是一名Rust程序员,你可能会很快发现自己在家,但即使你来自另一种编程语言,你也应该发现Actix Web很容易上手。
使用ActixWeb开发的应用程序将公开包含在本机可执行文件中的HTTP服务器。您可以将其放在另一个HTTP服务器(如nginx)后面,也可以按原样提供。即使在完全没有其他HTTP服务器的情况下,Actix Web也足够强大
rust 使用为use actix
use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder};
第一行写actix_web 告诉编译需要使用actix_web的包
配置Cargo.toml
可以看出是actix-web为4.4.0版本