• Rust 学习笔记


    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

    1. use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder};
    2. #[get("/")]
    3. async fn hello() -> impl Responder {
    4. HttpResponse::Ok().body("Hello world! by")
    5. }
    6. #[post("/echo")]
    7. async fn echo(req_body: String) -> impl Responder {
    8. HttpResponse::Ok().body(req_body)
    9. }
    10. async fn manual_hello() -> impl Responder {
    11. HttpResponse::Ok().body("Hey there! by keny")
    12. }
    13. #[actix_web::main]
    14. async fn main() -> std::io::Result<()> {
    15. HttpServer::new(|| {
    16. App::new()
    17. .service(hello)
    18. .service(echo)
    19. .route("/hey", web::get().to(manual_hello))
    20. })
    21. .bind(("127.0.0.1", 8080))?
    22. .run()
    23. .await.
    24. }

     自己运行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版本

  • 相关阅读:
    线程安全问题的原因和解决方案
    AHB- hreadyin 与 hreadyout
    【博学谷学习记录】超强总结,用心分享|Hadoop读写流程
    [100天算法】-连通网络的操作次数(day 46)
    Java Streams:流操作及示例
    动态规划:09 0-1背包理论基础I
    django认证重写,用户表使用新表,不用默认auth_user
    单一职责原则 (Single Responsibility Principle)
    OpenGL 波浪特效
    vlunhub靶场之EMPIRE: LUPINONE
  • 原文地址:https://blog.csdn.net/keny88888/article/details/133274521