5. Actix

Actix是一个Web框架

我们新建一个文件夹并打开

Last login: Thu Apr  7 13:49:07 on ttys002
qinjianquan@MacBook-Pro-10 ~ % cargo new wsCreated binary (application) `ws` package
qinjianquan@MacBook-Pro-10 ~ % cd ws
qinjianquan@MacBook-Pro-10 ws % code .

然后在toml文件中添加一个成员

/Users/qinjianquan/ws/Cargo.toml

[workspace]members = ["webservice"]

再在命令行创建如下项目

qinjianquan@MacBook-Pro-10 ws % cargo new webserviceCreated binary (application) `webservice` package

再添加依赖

/Users/qinjianquan/ws/webservice/Cargo.toml

[package]
name = "webservice"
version = "0.1.0"
edition = "2018"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]actix-web = "3"
cargo build
axtix-rt = "1.1.1"[[bin]]
name = "server1"

我们继续编写route并运行

use actix_web::{web,App,HttpResponse,HttpServer,Responder};
use std::io;//configure route
pub fn general_routes(cfg:&mut web::ServiceConfig) {cfg.route("/health",web::get().to(health_check_handler));
}//configure handler
pub async fn health_check_handler()->impl Responder {HttpResponse::Ok().json("Actix Web Service is Running!")
}//instantiate and run HTTP server#[actix_rt::main]
async fn main() -> io::Result<()> {//construct App and configure routelet app = move || App::new().configure(general_routes);//run HTTP serverHttpServer::new(app).bind("127.0.0.1:3000")?.run().await
}

运行并在终端查看localhost:3000/health,能够查到预期结果

cargo run -p webservice --bin server1

Axtix的基本组件

浏览器请求 - Actix HTTP Server - Actix Route - Actix Handler

Axtix并发

支持两类:1 异步IO :给定的OS原生线程在等待I/O时执行其他任务(例如侦听网络连接);2 多线程并行:默认情况下启动OS原生线程的数量与系统逻辑CPU数量相同

Rust 全栈开发 - 5 Actix相关推荐

  1. 2022 全栈开发值得关注的技术产品

    随着「云原生」以及「serverless」等概念的兴起,越来越多的公司开始不再刻意强调前后端之分,身处其中,我们也能感觉到,前后端的边界越来越模糊,更多的划分更接近于应用开发和基础设施建设,大公司着力 ...

  2. 扶贫干部拍胸脯认证,AI开发者上手零门槛,百度打造 “云智一体”全栈开发杀手锏...

    "我可以拍着胸脯说识别准确率很高."扶贫干部刘乐这样评价他在使用百度EasyDL平台助力扶贫的效果,他是陕西省汉中市扶贫信息中心副主任,也是一名热爱编程的程序员. 在近期百度智能云 ...

  3. mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务

    1.前言 上一篇文章介绍了如何设计后端的Mysql数据库:Alex Wang:全栈开发踩坑之路3-MySql数据库设计,本文介绍如何用MyBatis实现后端服务. 本后端项目的Github地址(撰写中 ...

  4. 预告:Javascript全栈开发的系列文章

    自从一年前发布了Vuejs小书的电子书,也有些日子没有碰过它们了,现在因为项目的缘故,需要使用JavaScript全栈开发.所以,我得把这个全栈环境搭建起来. 说起来搭建JS全栈开发环境,设计到的东西 ...

  5. 《JavaScript快速全栈开发》作者Azat Mardanov:现在是拥抱Node技术栈的最佳时机

    非商业转载请注明作译者.出处,并保留本文的原始链接:http://www.ituring.com.cn/article/195742 Azat Mardanov是一位有着12年开发经验的资深软件工程师 ...

  6. 从编程小白到全栈开发:基于框架开发服务端

    上文中,我们了解了关于服务器端的一些概念知识,尤其是HTTP协议相关的最基本知识点,今天我想跟大家分享一下在平时正真的开发中,是如何来利用和体现这些内容的. 还记得我在<从编程小白到全栈开发:改 ...

  7. PYTHON高级全栈开发工程师-老男孩教育

    PYTHON高级全栈开发工程师 最近开班日期:2016年4月17号                               课程周期:4至4.5个月 学习方式:全脱产面授学习(周一至周五,早9:3 ...

  8. vue java 插件开发_实习模块vue+java小型全栈开发(三)

    实习模块vue+java小型全栈开发(三) --dx 背景 首先,先给自己一个答案:这篇博客我定义为(三),因为之前的两个模块页面,内容都是一样的,但是被改了几次需求,就一直拖着没有上传. 今天是真正 ...

  9. python利器手机版-将安卓手机打造成你的python全栈开发利器

    超神利器- 相信多数安卓用户都使用过Qpython这款移动端的Python编辑器吧?之前我也研究过一阵子这个工具,但因为一次简单的爬虫让我对它失望之极.Qpython不支持lxml这个模块,然而pyt ...

最新文章

  1. luogu 3796 【模板】AC自动机(加强版)
  2. git工具tig用法
  3. bzoj3252攻略(线段树+dfs序)或者(树链剖分+dfs)
  4. mysql数据库version版本控制_MySQL数据库版本控制
  5. AndroidStudio_android通过服务,检测本程序是否已经终止运行_终止运行后发送通知给Http服务器---Android原生开发工作笔记246
  6. 计算机控制液压同步顶升系统,PLC多点控制液压同步顶升系统的运用
  7. cameraLink
  8. 手机连无线显示服务器超时,手机wifi为什么会连接超时
  9. push notifications step1 打不开
  10. html价格划掉的样式,用css布局价格划线_价钱中划线_价格中间贯穿删除线效果样式布局...
  11. 赵丽颖冯绍峰官宣 | 微博服务器瘫痪!运维:该拿什么拯救我?
  12. kafka自带的zk启动_kafka单机安装和启动
  13. 为什么说大数据就业前景一片光明?
  14. Python多子图总标题title
  15. C语言实验03_判断语句
  16. 学IT,是不是穷人家孩子获得高收入的唯一出路?
  17. 张一鸣:Stay hungry, Stay young
  18. 微信小程序数据绑定与模板语法
  19. 分布式系统 - CAP, BASE, ACID之间的关系 - 学习/实践
  20. 路由表转发最长匹配原则

热门文章

  1. 转载:关于动漫与动画
  2. java获取到的引号quot;会转换成amp;quot;问题
  3. TCP/IP 开胃菜 之 HTTP
  4. 常用汇率查询货币列表实时汇率查询换算小demo
  5. 怎么关掉android升级提示,【技巧】手机不停提示软件更新,是更新好还是不更新好?怎么去掉提示?...
  6. 【Python】爬虫入门6:爬取百度图片搜索结果(基于关键字爬图)
  7. 第一部分:基础知识(第一章)一个XNA 手机程序
  8. MobTech袤博荣获2020年度最佳企业服务商
  9. 从零开始的博客建站之旅——准备工作
  10. 各种3sum 4sum