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

use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder};// curl "127.0.0.1:8080"
#[get("/")]
async fn hello() -> impl Responder {HttpResponse::Ok().body("Hello world!")
}// curl "127.0.0.1:8080/echo" -H "Content-Type: application/json" -d "{"name":"dong"}"
#[post("/echo")]
async fn echo(req_body: String) -> impl Responder {HttpResponse::Ok().body(req_body)
}// curl "127.0.0.1:8080/hey"
async fn manual_hello() -> impl Responder {HttpResponse::Ok().body("Hey there!")
}#[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
}

运行效果:访问localhost:8080

结论:

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

个人项目地址:

https://github.com/zld126126/my_rust

[Rust实战]初探 actix_web相关推荐

  1. 对象拼接 请求路径_Tensorflow Rust实战下篇[整合actix-web提供http服务]

    上一篇我写的文章Tensorflow Rust实战上篇. 这一次我们看看使用tensorflow建立了什么,并通过http接口提供服务.随着Actix Web1.0版本发布,我认为用它构建一些东西将是 ...

  2. Rust实战系列-基本语法

    本文是<Rust in action>学习总结系列的第二部分,更多内容请看已发布文章: 一.Rust实战系列-Rust介绍 " 主要介绍 Rust 的语法.基本类型和数据结构,通 ...

  3. rust实战入门到进阶(2)

    Cargo是构建系统和包装管理.大多数Rustaceans使用这个工具来管理他们的Rust项目,因为Cargo处理许多任务,比如构建代码.下载代码所依赖的库以及构建这些库. lxaipro@insta ...

  4. rust实战入门到进阶(1)

    1.自适应安装 (1)在Unix/Linux下,使用curl https://sh.rustup.rs -sSf | sh在Shell中运行,它自动启动安装过程:首先,下载并运行rustup-init ...

  5. rust实战入门到进阶(4)

    web网页-hello,world extern crate iron; extern crate time;use iron::prelude::*; use iron::{BeforeMiddle ...

  6. rust实战入门到进阶(3)

    绑定变量 fn main() {println!("Hello, world!");let x=1;let mut y=2;println!("{}-{}",x ...

  7. 留言获赠书 | 朱春雷:Rust编程:入门 实战与进阶

    祝微信公众号 乐生活与爱IT 的读者朋友们,五一劳动节,吃好喝好睡好玩好,节日快乐! 今天给读者朋友们一个福利,请您在文章后面留言,留言比较精彩的,且获赞数比较多的朋友(至少3位),将有机会获得一本, ...

  8. GO、Rust 这些新一代高并发编程语言为何都极其讨厌共享内存?

    作者 | 马超   责编 | 王晓曼 出品 | CSDN博客 今天我想再来讨论一下高并发的问题,我们看到最近以Rust.Go为代表的云原生.Serverless时代的语言,在设计高并发编程模式时往往都 ...

  9. 8月8本程序员新书:Rust、软技能、Python、量子...

    8月推荐8本新书,其中有4本即将上架. 1.与量子比特共舞 量子计算是下一个颠覆性的技术.本书旨在带领读者探究量子计算的工作原理,并深入解释背后的数学基础.同时,本书清晰地介绍了构建量子计算机的工程思 ...

最新文章

  1. 3、计算机图形学——模型视图变换、投影变换与视口变换
  2. 编程之美-寻找数组中的最大值和最小值方法整理
  3. simple-android-flux,深入浅出Flux
  4. .Net程序猿玩转Android开发---(7)相对布局RelativeLayout
  5. 【Spring Boot】1.基础知识
  6. 把一个div的属性都打印出来
  7. android显示3d模型_Creator3D:太厉害了!3D模型原来可以这样显示在2DUI上
  8. Spring 3.1,Cloud Foundry和本地开发
  9. 同源策略为什么可以防csrf_Spring Security 如何预防CSRF跨域攻击?
  10. linux 环境 安装nginx
  11. centos6.5下postgresql9.4.3安装与配置
  12. 有哪些方法下载外文文献?
  13. 全国省市区表完整版(自己整理)
  14. centos7 离线安装 rar 解压缩软件
  15. 达内python第一次月考题目_第一次月考试卷分析
  16. 考研复试-数据结构-面试题
  17. android摄像头方向与屏方向,Android开发中关于摄像头方向的理解
  18. WRF模式运行出错记录(基本已解决)
  19. windows7计算机窗口介绍,windows7使用技巧详细介绍【图解】
  20. 湖南科技大学计算机科学与工程,【计算机学院】湖南科技大学计算机科学与工程学院前来我校计算机学院进行访问与交流...

热门文章

  1. 易优cms伪静态,EyouCms去除URL中的index.php
  2. while和do—while循环语句
  3. java调用url505_java – 从服务器获得505响应
  4. 在微信小程序中如何使用wx.onLocationChange(function callback)
  5. 微信小程序开发个人笔记(2)
  6. matplotlib命令与格式:标题(title),标注(annotate),文字说明(text)-------(含绘图实例演示)
  7. 电化学工作站的原理与应用
  8. 英语语法总结1(词性、简单句)
  9. Redis 的 漏斗限流
  10. finalshell强劲功能介绍