当前位置:   article > 正文

[Rust实战]初探 actix_web_rust actix-web

rust actix-web

 

Rust语言的特点

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

  • 可靠性 - Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

  • 生产力 - Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具 —— 包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。


Rust的应用

Rust 语言可以用于开发:

  • 传统命令行程序 - Rust 编译器可以直接生成目标可执行程序,不需要任何解释程序。
  • Web 应用 - Rust 可以被编译成 WebAssembly,WebAssembly 是一种 JavaScript 的高效替代品。
  • 网络服务器 - Rust 用极低的资源消耗做到安全高效,且具备很强的大规模并发处理能力,十分适合开发普通或极端的服务器程序。
  • 嵌入式设备 - Rust 同时具有JavaScript 一般的高效开发语法和 C 语言的执行效率,支持底层平台的开发。

环境搭建:

Rust 环境搭建 | 菜鸟教程

web-rust框架:https://github.com/actix/actix-web

actix_web

核心代码:main.rs

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

运行效果:访问localhost:8080

结论:

Rust和Go一样是一个高效率的工具,但是开源工具等脚手架还不够充分,导致很多时候需要自己创建,但是将来一片前景大好...

个人项目地址:

https://github.com/zld126126/my_rust

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/889198
推荐阅读
相关标签
  

闽ICP备14008679号